summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-10-30 01:46:39 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-10-30 01:46:39 +0000
commitafca31b5dd038fc400a3c582e7a824ad8cb4e3bf (patch)
tree4d0edb7c243a3c03c409fab4c50a3c4ccfc6c65e
parent3945f309c86a2df9000f53d73d0c13dd943c27f0 (diff)
parent78b33b3824235784dfbbc2dcd2041e6d5f10b2be (diff)
downloadSettings-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
-rw-r--r--src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java42
-rw-r--r--tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java29
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();
}
}