From 2a0ad1efdfef072ad3d64a2bb634aae585337031 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 12 Feb 2025 14:19:47 +0000 Subject: [PATCH] Return UNSUPPORTED_ON_DEVICE in network/imei when no telephony If the device does not have any telephony support (either via the build-time config_show_sim_info=false boolean flag, or when not declaring the PackageManager.FEATURE_TELEPHONY_DATA feature flag), returning UNSUPPORTED_ON_DEVICE makes more sense than CONDITIONALLY_UNAVAILABLE, as there is no runtime change that would make it available. This change also aligns the behavior with the deviceinfo/imei entry. Bug: 395714454 Flag: EXEMPT bugfix Test: atest MobileNetworkImeiPreferenceControllerTest Change-Id: Ia01cf3812f8343eabd8ea6970b691ac71432e8bd --- .../MobileNetworkImeiPreferenceController.kt | 12 ++++++------ .../MobileNetworkImeiPreferenceControllerTest.kt | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt index 6b3f903f803..79807ecd2e9 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt +++ b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt @@ -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) + || !mContext.userManager.isAdminUser -> CONDITIONALLY_UNAVAILABLE + else -> AVAILABLE } override fun displayPreference(screen: PreferenceScreen) { 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 ce2e2827d30..9d80d983107 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 @@ -176,7 +176,7 @@ class MobileNetworkImeiPreferenceControllerTest { whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false) val availabilityStatus = controller.availabilityStatus - assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE) + assertThat(availabilityStatus).isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE) } @Test @@ -196,7 +196,7 @@ class MobileNetworkImeiPreferenceControllerTest { whenever(Utils.isWifiOnly(context)).thenReturn(true) val availabilityStatus = controller.availabilityStatus - assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE) + assertThat(availabilityStatus).isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE) } private companion object {