diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-10-30 01:46:39 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-10-30 01:46:39 +0000 |
commit | afca31b5dd038fc400a3c582e7a824ad8cb4e3bf (patch) | |
tree | 4d0edb7c243a3c03c409fab4c50a3c4ccfc6c65e | |
parent | 3945f309c86a2df9000f53d73d0c13dd943c27f0 (diff) | |
parent | 78b33b3824235784dfbbc2dcd2041e6d5f10b2be (diff) | |
download | Settings-android11-qpr1-s1-release.tar.gz |
Merge cherrypicks of [12952231, 12952640, 12952469, 12952586, 12952232, 12952587, 12952588, 12952589, 12952107, 12952470, 12952641] into rvc-qpr1-releaseandroid-11.0.0_r27android-11.0.0_r26android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r19android11-qpr1-s1-release
Change-Id: If730b967cbab1c4993bcca0a99328dce10eb802b
2 files changed, 69 insertions, 2 deletions
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java index 63273759ba1..fd585a151d2 100644 --- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java @@ -365,9 +365,15 @@ public class EnabledNetworkModePreferenceController extends } private int getPreferredNetworkMode() { - return Settings.Global.getInt(mContext.getContentResolver(), + int networkMode = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.PREFERRED_NETWORK_MODE + mSubId, TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE); + if (!showNrList()) { + Log.d(LOG_TAG, "Network mode :" + networkMode + " reduce NR"); + networkMode = reduceNrToLteNetworkType(networkMode); + } + Log.d(LOG_TAG, "getPreferredNetworkMode: " + networkMode); + return networkMode; } private EnabledNetworks getEnabledNetworkType() { @@ -635,6 +641,40 @@ public class EnabledNetworkModePreferenceController extends } } + /** + * Transform NR5G network mode to LTE network mode. + * + * @param networkType an 5G network mode. + * @return the corresponding network mode without 5G. + */ + private static int reduceNrToLteNetworkType(int networkType) { + switch(networkType) { + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE: + return TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO: + return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: + return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: + return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; + case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + return TelephonyManagerConstants + .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; + default: + return networkType; // do nothing + } + } + private void setPreferenceValueAndSummary() { setPreferenceValueAndSummary(getPreferredNetworkMode()); } diff --git a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java index e38bd62dc66..e519b9ad264 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java @@ -222,6 +222,28 @@ public class EnabledNetworkModePreferenceControllerTest { } @Test + public void updateState_NrEnableBoolFalse_5gOptionHidden() { + mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA); + mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); + mPersistableBundle.putBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL, false); + + mController.init(mLifecycle, SUB_ID); + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, + TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA); + + mController.updateState(mPreference); + + assertThat(mPreference.getValue()).isEqualTo( + String.valueOf( + TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); + assertThat(mPreference.getEntryValues()) + .asList() + .doesNotContain( + String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA)); + } + + @Test public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() { mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE); @@ -393,6 +415,11 @@ public class EnabledNetworkModePreferenceControllerTest { } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) { mockPhoneType(TelephonyManager.PHONE_TYPE_GSM); mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true); + } else if (networkMode + == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA) { + mockPhoneType(TelephonyManager.PHONE_TYPE_GSM); + mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true); + mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true); } } @@ -407,6 +434,6 @@ public class EnabledNetworkModePreferenceControllerTest { } private void mockPhoneType(int phoneType) { - doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType(); + doReturn(phoneType).when(mTelephonyManager).getPhoneType(); } } |