From 64fb695d9bb3c8baaf551d30d4cdacf5375bf408 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 11 Feb 2025 22:01:40 +0000 Subject: [PATCH] Return DISABLED_FOR_USER in IMEI availability if not admin user The correct return when checking for the IMEI field availability for non-admin users is DISABLED_FOR_USER. UNSUPPORTED_ON_DEVICE should only be used when the setting is unconditionally hidden as the device does not support the feature. Bug: 395714454 Flag: EXEMPT bugfix Test: atest ImeiInfoPreferenceControllerTest Test: atest MobileNetworkImeiPreferenceControllerTest Change-Id: I4ee89a84953993daad539d33d3a2e576540c580f --- .../deviceinfo/imei/ImeiInfoPreferenceController.java | 11 +++++++---- .../MobileNetworkImeiPreferenceController.kt | 4 ++-- .../imei/ImeiInfoPreferenceControllerTest.java | 2 +- .../MobileNetworkImeiPreferenceControllerTest.kt | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java index ff55184741a..13e26cc4c3a 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java @@ -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 diff --git a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt index 79807ecd2e9..ea51c9afef1 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt +++ b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt @@ -67,8 +67,8 @@ class MobileNetworkImeiPreferenceController(context: Context, key: String) : !SubscriptionUtil.isSimHardwareVisible(mContext) || Utils.isWifiOnly(mContext) -> UNSUPPORTED_ON_DEVICE !Flags.isDualSimOnboardingEnabled() - || !SubscriptionManager.isValidSubscriptionId(subId) - || !mContext.userManager.isAdminUser -> CONDITIONALLY_UNAVAILABLE + || !SubscriptionManager.isValidSubscriptionId(subId) -> CONDITIONALLY_UNAVAILABLE + !mContext.userManager.isAdminUser -> DISABLED_FOR_USER else -> AVAILABLE } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java index 007bbb6b36a..8cf286c35e4 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java @@ -265,7 +265,7 @@ public class ImeiInfoPreferenceControllerTest { when(mUserManager.isAdminUser()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo( - BasePreferenceController.UNSUPPORTED_ON_DEVICE); + BasePreferenceController.DISABLED_FOR_USER); } private void mockService(String serviceName, Class serviceClass, T service) { diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt index 9d80d983107..024b8d202ca 100644 --- a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt @@ -187,7 +187,7 @@ class MobileNetworkImeiPreferenceControllerTest { } val availabilityStatus = controller.availabilityStatus - assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE) + assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER) } @Test