From 85398a503ea4c225089b00bc7de2d34a6d1d4bee Mon Sep 17 00:00:00 2001 From: Lei Yu Date: Wed, 8 May 2019 16:55:07 -0700 Subject: [PATCH] Add check KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL If it is true, then hide: 1. Network Select settings 2. Apn settings Fixes: 131709441 Test: RunSettingsRoboTests Change-Id: I203cda570564a41c5bb54a3ad9e60c7f35c0d30c --- .../telephony/ApnPreferenceController.java | 5 ++++- .../network/telephony/MobileNetworkUtils.java | 2 ++ .../gsm/AutoSelectPreferenceController.java | 1 - ...NetworkSelectPagePreferenceController.java | 1 - .../ApnPreferenceControllerTest.java | 12 +++++++++++ .../telephony/MobileNetworkUtilsTest.java | 21 +++++++++++++++++++ 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/network/telephony/ApnPreferenceController.java b/src/com/android/settings/network/telephony/ApnPreferenceController.java index 9fdb6ead962..98c1f5b6fd1 100644 --- a/src/com/android/settings/network/telephony/ApnPreferenceController.java +++ b/src/com/android/settings/network/telephony/ApnPreferenceController.java @@ -65,8 +65,11 @@ public class ApnPreferenceController extends TelephonyBasePreferenceController i final boolean isGsmApn = MobileNetworkUtils.isGsmOptions(mContext, subId) && carrierConfig != null && carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL); + final boolean hideCarrierNetwork = carrierConfig == null + || carrierConfig.getBoolean( + CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL); - return isCdmaApn || isGsmApn + return !hideCarrierNetwork && (isCdmaApn || isGsmApn) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 939598b5ec3..a722a422f49 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -350,6 +350,8 @@ public class MobileNetworkUtils { || carrierConfig == null || !carrierConfig.getBoolean( CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL) + || carrierConfig.getBoolean( + CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL) || (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL) && !telephonyManager.isManualNetworkSelectionAllowed())) { return false; diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java index adfb1d8ad2d..56d0b2dcc69 100644 --- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java +++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java @@ -52,7 +52,6 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon private static final long MINIMUM_DIALOG_TIME_MILLIS = TimeUnit.SECONDS.toMillis(1); private final Handler mUiHandler; - private int mSubId; private TelephonyManager mTelephonyManager; private boolean mOnlyAutoSelectInHome; private List mListeners; diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java index 9ac0d1275a9..46171bc2ab8 100644 --- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java +++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java @@ -42,7 +42,6 @@ public class OpenNetworkSelectPagePreferenceController extends TelephonyBasePreferenceController implements AutoSelectPreferenceController.OnNetworkSelectModeListener { - private int mSubId; private TelephonyManager mTelephonyManager; private Preference mPreference; diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java index e2ac8ce22d0..ce4c9a2fcd5 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java @@ -123,6 +123,18 @@ public class ApnPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } + + @Test + public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() { + doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType(); + final PersistableBundle bundle = new PersistableBundle(); + bundle.putBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL, true); + bundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, true); + doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); + + assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); + } + @Test public void handPreferenceTreeClick_fireIntent() { ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java index 7dfe520b614..61599e68ee7 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java @@ -198,4 +198,25 @@ public class MobileNetworkUtilsTest { assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)) .isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID); } + + @Test + public void shouldDisplayNetworkSelectOptions_HideCarrierNetwork_returnFalse() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, + true); + + assertThat(MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, SUB_ID_1)) + .isFalse(); + } + + @Test + public void shouldDisplayNetworkSelectOptions_allCheckPass_returnTrue() { + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, + false); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true); + mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false); + when(mTelephonyManager.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_GSM); + + assertThat(MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, SUB_ID_1)) + .isTrue(); + } }