Merge "Add corresponding code for the new NR condition" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-20 06:26:52 +00:00
committed by Android (Google) Code Review
3 changed files with 19 additions and 7 deletions

View File

@@ -204,13 +204,16 @@ public class EnabledNetworkModePreferenceController extends
.createForSubscriptionId(mSubId); .createForSubscriptionId(mSubId);
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId); final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
final boolean isNrEnabledFromCarrierConfig = carrierConfig != null
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL);
mAllowed5gNetworkType = checkSupportedRadioBitmask( mAllowed5gNetworkType = checkSupportedRadioBitmask(
mTelephonyManager.getAllowedNetworkTypes(), mTelephonyManager.getAllowedNetworkTypes(),
TelephonyManager.NETWORK_TYPE_BITMASK_NR); TelephonyManager.NETWORK_TYPE_BITMASK_NR);
mSupported5gRadioAccessFamily = checkSupportedRadioBitmask( mSupported5gRadioAccessFamily = isNrEnabledFromCarrierConfig
mTelephonyManager.getSupportedRadioAccessFamily(), && checkSupportedRadioBitmask(mTelephonyManager.getSupportedRadioAccessFamily(),
TelephonyManager.NETWORK_TYPE_BITMASK_NR); TelephonyManager.NETWORK_TYPE_BITMASK_NR);
mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled() mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
&& carrierConfig != null
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL); && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean( mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
@@ -573,7 +576,7 @@ public class EnabledNetworkModePreferenceController extends
*/ */
private void add5gEntry(int value) { private void add5gEntry(int value) {
boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY; boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
if (mSupported5gRadioAccessFamily && mAllowed5gNetworkType && isNRValue) { if (showNrList() && isNRValue) {
mEntries.add(mContext.getString(R.string.network_5G) mEntries.add(mContext.getString(R.string.network_5G)
+ mContext.getString(R.string.network_recommended)); + mContext.getString(R.string.network_recommended));
mEntriesValue.add(value); mEntriesValue.add(value);
@@ -592,7 +595,7 @@ public class EnabledNetworkModePreferenceController extends
+ " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+ " allowed5GNetworkType: " + mAllowed5gNetworkType); + " allowed5GNetworkType: " + mAllowed5gNetworkType);
mEntries.add(mContext.getString(R.string.network_global)); mEntries.add(mContext.getString(R.string.network_global));
if (mSupported5gRadioAccessFamily & mAllowed5gNetworkType) { if (showNrList()) {
mEntriesValue.add( mEntriesValue.add(
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
} else { } else {
@@ -601,11 +604,15 @@ public class EnabledNetworkModePreferenceController extends
} }
} }
private boolean showNrList() {
return mSupported5gRadioAccessFamily && mAllowed5gNetworkType;
}
/** /**
* Add LTE entry. If device supported 5G, show "LTE" instead of "LTE (recommended)". * Add LTE entry. If device supported 5G, show "LTE" instead of "LTE (recommended)".
*/ */
private void addLteEntry(int value) { private void addLteEntry(int value) {
if (mSupported5gRadioAccessFamily) { if (showNrList()) {
mEntries.add(mContext.getString(R.string.network_lte_pure)); mEntries.add(mContext.getString(R.string.network_lte_pure));
} else { } else {
mEntries.add(mContext.getString(R.string.network_lte)); mEntries.add(mContext.getString(R.string.network_lte));
@@ -617,7 +624,7 @@ public class EnabledNetworkModePreferenceController extends
* Add 4G entry. If device supported 5G, show "4G" instead of "4G (recommended)". * Add 4G entry. If device supported 5G, show "4G" instead of "4G (recommended)".
*/ */
private void add4gEntry(int value) { private void add4gEntry(int value) {
if (mSupported5gRadioAccessFamily) { if (showNrList()) {
mEntries.add(mContext.getString(R.string.network_4G_pure)); mEntries.add(mContext.getString(R.string.network_4G_pure));
} else { } else {
mEntries.add(mContext.getString(R.string.network_4G)); mEntries.add(mContext.getString(R.string.network_4G));

View File

@@ -55,6 +55,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
Preference mPreference; Preference mPreference;
private PhoneCallStateListener mPhoneStateListener; private PhoneCallStateListener mPhoneStateListener;
private boolean mShow5gLimitedDialog; private boolean mShow5gLimitedDialog;
boolean mIsNrEnabledFromCarrierConfig;
private boolean mHas5gCapability; private boolean mHas5gCapability;
@VisibleForTesting @VisibleForTesting
Integer mCallState; Integer mCallState;
@@ -95,6 +96,8 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
mShow5gLimitedDialog = carrierConfig.getBoolean( mShow5gLimitedDialog = carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL); CarrierConfigManager.KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL);
mIsNrEnabledFromCarrierConfig = carrierConfig.getBoolean(
CarrierConfigManager.KEY_NR_ENABLED_BOOL);
return this; return this;
} }
@@ -244,7 +247,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
private boolean isDialogNeeded() { private boolean isDialogNeeded() {
Log.d(TAG, "Has5gCapability:" + mHas5gCapability); Log.d(TAG, "Has5gCapability:" + mHas5gCapability);
return mShow5gLimitedDialog && mHas5gCapability; return mShow5gLimitedDialog && mHas5gCapability && mIsNrEnabledFromCarrierConfig;
} }
private void show5gLimitedDialog(ImsMmTelManager imsMmTelManager) { private void show5gLimitedDialog(ImsMmTelManager imsMmTelManager) {

View File

@@ -155,6 +155,7 @@ public class EnabledNetworkModePreferenceControllerTest {
@Test @Test
public void updateState_5gWorldPhone_GlobalHasNr() { public void updateState_5gWorldPhone_GlobalHasNr() {
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL, true);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
mController.init(mLifecycle, SUB_ID); mController.init(mLifecycle, SUB_ID);
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true); mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
@@ -168,6 +169,7 @@ public class EnabledNetworkModePreferenceControllerTest {
@Test @Test
public void updateState_selectedOn5gItem() { public void updateState_selectedOn5gItem() {
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL, true);
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
mController.init(mLifecycle, SUB_ID); mController.init(mLifecycle, SUB_ID);