From b76feffe4f5c174e095940d9fc5d3b73fc66a1bb Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Thu, 24 Mar 2022 18:47:34 +0800 Subject: [PATCH] Gray out the network mode UI before the carrier config is ready Bug: 202167671 Test: atest EnabledNetworkModePreferenceControllerTest Change-Id: Ib502ac19ea2c19dae95025302dd82aa2b1c7ff88 --- .../EnabledNetworkModePreferenceController.java | 3 ++- .../EnabledNetworkModePreferenceControllerTest.java | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java index cb5b5d0fe68..919913f3efd 100644 --- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java @@ -87,7 +87,8 @@ public class EnabledNetworkModePreferenceController extends final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { visible = false; - } else if (carrierConfig == null) { + } else if (carrierConfig == null + || !CarrierConfigManager.isConfigForIdentifiedCarrier(carrierConfig)) { visible = false; } else if (carrierConfig.getBoolean( CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL) diff --git a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java index 5672df793b3..c9452063a95 100644 --- a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java @@ -106,6 +106,7 @@ public class EnabledNetworkModePreferenceControllerTest { mPersistableBundle = new PersistableBundle(); doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfig(); doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfigForSubId(SUB_ID); + mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true); mPreference = new ListPreference(mContext); mController = new EnabledNetworkModePreferenceController(mContext, KEY); mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE); @@ -145,6 +146,14 @@ public class EnabledNetworkModePreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } + @UiThreadTest + @Test + public void getAvailabilityStatus_carrierConfigNotReady_returnUnavailable() { + mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false); + + assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); + } + @UiThreadTest @Test public void getAvailabilityStatus_notWorldPhone_returnAvailable() {