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

Commit a3eb7743 authored by Ling Ma's avatar Ling Ma
Browse files

Wrap PLMN change with carrier config

Wrap PLMN change with nr_timers_reset_on_plmn_change_bool. Also use numeric value as PLMN.

Bug: 316425342
Test: voice call + data browsing
Change-Id: I0ad16ca0e59a7fdf2a77bd728654092060b6a2cb
parent f8a1d2df
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@ public class NetworkTypeController extends StateMachine {
    private boolean mIsPrimaryTimerActive;
    private boolean mIsSecondaryTimerActive;
    private boolean mIsTimerResetEnabledForLegacyStateRrcIdle;
    private boolean mIsTimerResetEnabledOnPlmnChanges;
    private int mLtePlusThresholdBandwidth;
    private int mNrAdvancedThresholdBandwidth;
    private boolean mIncludeLteForNrAdvancedThresholdBandwidth;
@@ -304,6 +305,8 @@ public class NetworkTypeController extends StateMachine {
                CarrierConfigManager.KEY_SHOW_CARRIER_DATA_ICON_PATTERN_STRING);
        mIsTimerResetEnabledForLegacyStateRrcIdle = config.getBoolean(
                CarrierConfigManager.KEY_NR_TIMERS_RESET_IF_NON_ENDC_AND_RRC_IDLE_BOOL);
        mIsTimerResetEnabledOnPlmnChanges = config.getBoolean(
                CarrierConfigManager.KEY_NR_TIMERS_RESET_ON_PLMN_CHANGE_BOOL);
        mLtePlusThresholdBandwidth = config.getInt(
                CarrierConfigManager.KEY_LTE_PLUS_THRESHOLD_BANDWIDTH_KHZ_INT);
        mNrAdvancedThresholdBandwidth = config.getInt(
@@ -1206,12 +1209,13 @@ public class NetworkTypeController extends StateMachine {

    /** On service state changed. */
    private void onServiceStateChanged() {
        ServiceState newSS = mPhone.getServiceStateTracker().getServiceState();
        if (!TextUtils.equals(mServiceState.getOperatorAlpha(), newSS.getOperatorAlpha())) {
            log("PLMN changed, reset any timers");
        ServiceState ss = mPhone.getServiceStateTracker().getServiceState();
        if (mIsTimerResetEnabledOnPlmnChanges
                && !TextUtils.equals(mServiceState.getOperatorNumeric(), ss.getOperatorNumeric())) {
            log("Reset any timers due to nr_timers_reset_on_plmn_change_bool");
            resetAllTimers();
        }
        mServiceState = newSS;
        mServiceState = ss;
        if (DBG) log("ServiceState updated: " + mServiceState);
    }

+3 −1
Original line number Diff line number Diff line
@@ -1779,6 +1779,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
    @Test
    public void testNrTimerResetWhenPlmnChanged() throws Exception {
        testTransitionToCurrentStateNrConnectedMmwave();
        mBundle.putBoolean(CarrierConfigManager.KEY_NR_TIMERS_RESET_ON_PLMN_CHANGE_BOOL,
                true);
        mBundle.putString(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING,
                "connected_mmwave,any,10;connected,any,10;not_restricted_rrc_con,any,10");
        mBundle.putString(CarrierConfigManager.KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING,
@@ -1798,7 +1800,7 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        // PLMN changed, should cancel any active timers
        ServiceState newSS = mock(ServiceState.class);
        doReturn("different plmn").when(newSS).getOperatorAlpha();
        doReturn("different plmn").when(newSS).getOperatorNumeric();
        doReturn(newSS).when(mSST).getServiceState();
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();