Loading src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +41 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -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()); } Loading tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java +28 −1 Original line number Diff line number Diff line Loading @@ -221,6 +221,28 @@ public class EnabledNetworkModePreferenceControllerTest { TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); } @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); Loading Loading @@ -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); } } Loading @@ -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(); } } Loading
src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +41 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -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()); } Loading
tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java +28 −1 Original line number Diff line number Diff line Loading @@ -221,6 +221,28 @@ public class EnabledNetworkModePreferenceControllerTest { TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); } @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); Loading Loading @@ -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); } } Loading @@ -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(); } }