Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 414f8b8f authored by SongFerngWang's avatar SongFerngWang Committed by SongFerng Wang
Browse files

Add corresponding code for the new NR condition

Bug: 155915216
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
EnabledNetworkModePreferenceControllerTest (Pass)

Change-Id: I171ea0a8adc621ad5e9dc5cd2090e431b923e775
parent a5eb6150
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -204,13 +204,16 @@ public class EnabledNetworkModePreferenceController extends
                    .createForSubscriptionId(mSubId);

            final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
            final boolean isNrEnabledFromCarrierConfig = carrierConfig != null
                    && carrierConfig.getBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL);
            mAllowed5gNetworkType = checkSupportedRadioBitmask(
                    mTelephonyManager.getAllowedNetworkTypes(),
                    TelephonyManager.NETWORK_TYPE_BITMASK_NR);
            mSupported5gRadioAccessFamily = checkSupportedRadioBitmask(
                    mTelephonyManager.getSupportedRadioAccessFamily(),
            mSupported5gRadioAccessFamily = isNrEnabledFromCarrierConfig
                    && checkSupportedRadioBitmask(mTelephonyManager.getSupportedRadioAccessFamily(),
                    TelephonyManager.NETWORK_TYPE_BITMASK_NR);
            mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
                    && carrierConfig != null
                    && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
            mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
@@ -573,7 +576,7 @@ public class EnabledNetworkModePreferenceController extends
         */
        private void add5gEntry(int value) {
            boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
            if (mSupported5gRadioAccessFamily && mAllowed5gNetworkType && isNRValue) {
            if (showNrList() && isNRValue) {
                mEntries.add(mContext.getString(R.string.network_5G)
                        + mContext.getString(R.string.network_recommended));
                mEntriesValue.add(value);
@@ -592,7 +595,7 @@ public class EnabledNetworkModePreferenceController extends
                    + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
                    + " allowed5GNetworkType: " + mAllowed5gNetworkType);
            mEntries.add(mContext.getString(R.string.network_global));
            if (mSupported5gRadioAccessFamily & mAllowed5gNetworkType) {
            if (showNrList()) {
                mEntriesValue.add(
                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
            } 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)".
         */
        private void addLteEntry(int value) {
            if (mSupported5gRadioAccessFamily) {
            if (showNrList()) {
                mEntries.add(mContext.getString(R.string.network_lte_pure));
            } else {
                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)".
         */
        private void add4gEntry(int value) {
            if (mSupported5gRadioAccessFamily) {
            if (showNrList()) {
                mEntries.add(mContext.getString(R.string.network_4G_pure));
            } else {
                mEntries.add(mContext.getString(R.string.network_4G));
+4 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
    Preference mPreference;
    private PhoneCallStateListener mPhoneStateListener;
    private boolean mShow5gLimitedDialog;
    boolean mIsNrEnabledFromCarrierConfig;
    private boolean mHas5gCapability;
    @VisibleForTesting
    Integer mCallState;
@@ -95,6 +96,8 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc

        mShow5gLimitedDialog = carrierConfig.getBoolean(
                CarrierConfigManager.KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL);
        mIsNrEnabledFromCarrierConfig = carrierConfig.getBoolean(
                CarrierConfigManager.KEY_NR_ENABLED_BOOL);
        return this;
    }

@@ -244,7 +247,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc

    private boolean isDialogNeeded() {
        Log.d(TAG, "Has5gCapability:" + mHas5gCapability);
        return mShow5gLimitedDialog && mHas5gCapability;
        return mShow5gLimitedDialog && mHas5gCapability && mIsNrEnabledFromCarrierConfig;
    }

    private void show5gLimitedDialog(ImsMmTelManager imsMmTelManager) {
+2 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ public class EnabledNetworkModePreferenceControllerTest {

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

    @Test
    public void updateState_selectedOn5gItem() {
        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL, true);
        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
        mController.init(mLifecycle, SUB_ID);