Merge changes from topic "settings-visibility-return-fixes" into main

* changes:
  Return DISABLED_FOR_USER in deviceinfo/simstatus availability if not admin user
  Return UNSUPPORTED_ON_DEVICE in deviceinfo/simstatus when no telephony
  Added unit tests for SimStatusPreferenceController visibility
  Return DISABLED_FOR_USER in IMEI availability if not admin user
  Return UNSUPPORTED_ON_DEVICE in network/imei when no telephony
  Added unit test for MobileNetworkImeiPreferenceController visibility
  Added unit tests for ImeiInfoPreferenceController visibility
  Return UNSUPPORTED_ON_DEVICE in network/phonenumber when no telephony
This commit is contained in:
Aleksander Morgado
2025-02-18 00:10:26 -08:00
committed by Android (Google) Code Review
8 changed files with 168 additions and 42 deletions

View File

@@ -132,10 +132,13 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
mContext.getSystemService(UserManager.class).isAdminUser() &&
!Utils.isWifiOnly(mContext);
return isAvailable ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
if (!SubscriptionUtil.isSimHardwareVisible(mContext) || Utils.isWifiOnly(mContext)) {
return UNSUPPORTED_ON_DEVICE;
}
if (!mContext.getSystemService(UserManager.class).isAdminUser()) {
return DISABLED_FOR_USER;
}
return AVAILABLE;
}
@Override

View File

@@ -37,7 +37,6 @@ import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.Utils;
import com.android.settingslib.search.SearchIndexableRaw;
import java.util.ArrayList;
import java.util.List;
public class SimStatusPreferenceController extends BasePreferenceController {
@@ -74,13 +73,15 @@ public class SimStatusPreferenceController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
if (getSimSlotIndex() == SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
if (!SubscriptionUtil.isSimHardwareVisible(mContext)
|| Utils.isWifiOnly(mContext)
|| getSimSlotIndex() == SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
return UNSUPPORTED_ON_DEVICE;
}
boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
mContext.getSystemService(UserManager.class).isAdminUser() &&
!Utils.isWifiOnly(mContext);
return isAvailable ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
if (!mContext.getSystemService(UserManager.class).isAdminUser()) {
return DISABLED_FOR_USER;
}
return AVAILABLE;
}
@Override

View File

@@ -64,12 +64,12 @@ class MobileNetworkImeiPreferenceController(context: Context, key: String) :
}
override fun getAvailabilityStatus(subId: Int): Int = when {
!Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
SubscriptionManager.isValidSubscriptionId(subId)
&& SubscriptionUtil.isSimHardwareVisible(mContext)
&& mContext.userManager.isAdminUser
&& !Utils.isWifiOnly(mContext) -> AVAILABLE
else -> CONDITIONALLY_UNAVAILABLE
!SubscriptionUtil.isSimHardwareVisible(mContext)
|| Utils.isWifiOnly(mContext) -> UNSUPPORTED_ON_DEVICE
!Flags.isDualSimOnboardingEnabled()
|| !SubscriptionManager.isValidSubscriptionId(subId) -> CONDITIONALLY_UNAVAILABLE
!mContext.userManager.isAdminUser -> DISABLED_FOR_USER
else -> AVAILABLE
}
override fun displayPreference(screen: PreferenceScreen) {

View File

@@ -44,10 +44,10 @@ constructor(
}
override fun getAvailabilityStatus(subId: Int): Int = when {
!SubscriptionUtil.isSimHardwareVisible(mContext)
|| Utils.isWifiOnly(mContext) -> UNSUPPORTED_ON_DEVICE
!Flags.isDualSimOnboardingEnabled()
|| !SubscriptionManager.isValidSubscriptionId(subId)
|| !SubscriptionUtil.isSimHardwareVisible(mContext)
|| Utils.isWifiOnly(mContext) -> CONDITIONALLY_UNAVAILABLE
|| !SubscriptionManager.isValidSubscriptionId(subId) -> CONDITIONALLY_UNAVAILABLE
!mContext.userManager.isAdminUser -> DISABLED_FOR_USER
else -> AVAILABLE
}