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

Commit b4e75f8e authored by Sarah Chin's avatar Sarah Chin Committed by Sarah Kim
Browse files

NetworkTypeController use PCC list from indication instead of SST

Test: atest NetworkTypeControllerTest
Test: manual test
Bug: 298233308
Bug: 323186076
Change-Id: I6dcad426ecd0bb9ac456036a570fad2e93a04b3f
parent 22345890
Loading
Loading
Loading
Loading
+33 −20
Original line number Diff line number Diff line
@@ -366,7 +366,8 @@ public class NetworkTypeController extends StateMachine {
        String overrideSecondaryTimerRule = config.getString(
                CarrierConfigManager.KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING);
        createTimerRules(nrIconConfiguration, overrideTimerRule, overrideSecondaryTimerRule);
        updatePhysicalChannelConfigs();
        updatePhysicalChannelConfigs(
                mPhone.getServiceStateTracker().getPhysicalChannelConfigList());
    }

    private void createTimerRules(String icons, String timers, String secondaryTimers) {
@@ -598,6 +599,7 @@ public class NetworkTypeController extends StateMachine {
    private final class DefaultState extends State {
        @Override
        public boolean processMessage(Message msg) {
            AsyncResult ar;
            if (DBG) log("DefaultState: process " + getEventName(msg.what));
            switch (msg.what) {
                case EVENT_UPDATE:
@@ -623,12 +625,12 @@ public class NetworkTypeController extends StateMachine {
                    transitionToCurrentState();
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIG_NOTIF_CHANGED:
                    AsyncResult result = (AsyncResult) msg.obj;
                    mIsPhysicalChannelConfigOn = (boolean) result.result;
                    ar = (AsyncResult) msg.obj;
                    mIsPhysicalChannelConfigOn = (boolean) ar.result;
                    if (DBG) {
                        log("mIsPhysicalChannelConfigOn changed to: " + mIsPhysicalChannelConfigOn);
                    }
@@ -668,7 +670,8 @@ public class NetworkTypeController extends StateMachine {
                    transitionToCurrentState();
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                    }
@@ -720,6 +723,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("LegacyState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -748,7 +752,8 @@ public class NetworkTypeController extends StateMachine {
                    mIsNrRestricted = isNrRestricted();
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                        if (mIsTimerResetEnabledForLegacyStateRrcIdle && !isPhysicalLinkActive()) {
@@ -758,7 +763,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    if (mIsTimerResetEnabledForLegacyStateRrcIdle && !isPhysicalLinkActive()) {
                        if (DBG) log("Reset timers since timer reset is enabled for RRC idle.");
@@ -801,6 +806,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("IdleState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -829,7 +835,8 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                        if (isPhysicalLinkActive()) {
@@ -841,7 +848,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    if (isPhysicalLinkActive()) {
                        transitionWithTimerTo(mLteConnectedState);
@@ -885,6 +892,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("LteConnectedState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -913,7 +921,8 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                        if (!isPhysicalLinkActive()) {
@@ -925,7 +934,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    if (!isPhysicalLinkActive()) {
                        transitionWithTimerTo(mIdleState);
@@ -969,6 +978,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("NrIdleState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -994,7 +1004,8 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                    }
@@ -1006,7 +1017,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    if (isPhysicalLinkActive()) {
                        transitionWithTimerTo(mNrConnectedState);
@@ -1047,6 +1058,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("NrConnectedState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -1072,7 +1084,8 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                    }
@@ -1084,7 +1097,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    if (!isPhysicalLinkActive() && mFeatureFlags.supportNrSaRrcIdle()) {
                        transitionWithTimerTo(mNrIdleState);
@@ -1126,6 +1139,7 @@ public class NetworkTypeController extends StateMachine {
        public boolean processMessage(Message msg) {
            if (DBG) log("NrConnectedAdvancedState: process " + getEventName(msg.what));
            updateTimers();
            AsyncResult ar;
            switch (msg.what) {
                case EVENT_SERVICE_STATE_CHANGED:
                    mServiceState = mPhone.getServiceStateTracker().getServiceState();
@@ -1158,7 +1172,8 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED:
                    updatePhysicalChannelConfigs();
                    ar = (AsyncResult) msg.obj;
                    updatePhysicalChannelConfigs((List<PhysicalChannelConfig>) ar.result);
                    if (isUsingPhysicalChannelConfigForRrcDetection()) {
                        mPhysicalLinkStatus = getPhysicalLinkStatusFromPhysicalChannelConfig();
                    }
@@ -1170,7 +1185,7 @@ public class NetworkTypeController extends StateMachine {
                    }
                    break;
                case EVENT_PHYSICAL_LINK_STATUS_CHANGED:
                    AsyncResult ar = (AsyncResult) msg.obj;
                    ar = (AsyncResult) msg.obj;
                    mPhysicalLinkStatus = (int) ar.result;
                    break;
                default:
@@ -1191,9 +1206,7 @@ public class NetworkTypeController extends StateMachine {
    private final NrConnectedAdvancedState mNrConnectedAdvancedState =
            new NrConnectedAdvancedState();

    private void updatePhysicalChannelConfigs() {
        List<PhysicalChannelConfig> physicalChannelConfigs =
                mPhone.getServiceStateTracker().getPhysicalChannelConfigList();
    private void updatePhysicalChannelConfigs(List<PhysicalChannelConfig> physicalChannelConfigs) {
        boolean isPccListEmpty = physicalChannelConfigs == null || physicalChannelConfigs.isEmpty();
        if (isPccListEmpty && isUsingPhysicalChannelConfigForRrcDetection()) {
            log("Physical channel configs updated: not updating PCC fields for empty PCC list "
+59 −26
Original line number Diff line number Diff line
@@ -285,7 +285,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        doReturn(NetworkRegistrationInfo.NR_STATE_NOT_RESTRICTED).when(mServiceState).getNrState();
        setPhysicalLinkStatus(false);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals("not_restricted_rrc_idle", getCurrentState().getName());
@@ -335,7 +337,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        doReturn(NetworkRegistrationInfo.NR_STATE_NOT_RESTRICTED).when(mServiceState).getNrState();
        setPhysicalLinkStatus(true);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals("not_restricted_rrc_con", getCurrentState().getName());
@@ -621,32 +625,37 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        physicalChannelConfigs.add(pcc2);
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();

        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should stay ratcheted even if an empty PCC list is sent
        doReturn(new ArrayList<>()).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, new ArrayList<>(), null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should stay ratcheted as long as anchor NR cell is the same
        physicalChannelConfigs.remove(pcc2);
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should no longer be ratcheted if anchor NR cell changes
        // add pcc3 to front of list to ensure anchor NR cell changes from 1 -> 3
        physicalChannelConfigs.add(0, pcc3);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected", getCurrentState().getName());

        physicalChannelConfigs.add(pcc2);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());
    }
@@ -680,20 +689,23 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        physicalChannelConfigs.add(pcc2);
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();

        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should stay ratcheted even if an empty PCC list is sent
        doReturn(new ArrayList<>()).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, new ArrayList<>(), null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should change if PCC list changes
        physicalChannelConfigs.remove(pcc2);
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected", getCurrentState().getName());
    }
@@ -729,19 +741,22 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        physicalChannelConfigs.add(pcc2);
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();

        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());

        // bands and bandwidths should not stay the same even if an empty PCC list is sent
        doReturn(new ArrayList<>()).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, new ArrayList<>(), null));
        processAllMessages();
        assertEquals("connected", getCurrentState().getName());

        // bands and bandwidths should change if PCC list changes
        doReturn(physicalChannelConfigs).when(mSST).getPhysicalChannelConfigList();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();
        assertEquals("connected_mmwave", getCurrentState().getName());
    }
@@ -769,7 +784,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        testTransitionToCurrentStateNrConnectedMmwave();
        doReturn(NetworkRegistrationInfo.NR_STATE_NOT_RESTRICTED).when(mServiceState).getNrState();
        setPhysicalLinkStatus(true);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);

        processAllMessages();
@@ -806,7 +823,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        doReturn(true).when(mServiceState).isUsingCarrierAggregation();
        doReturn(new int[] {30000}).when(mServiceState).getCellBandwidths();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA,
@@ -834,7 +853,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        // LTE -> LTE+
        doReturn(true).when(mServiceState).isUsingCarrierAggregation();
        doReturn(new int[] {30000}).when(mServiceState).getCellBandwidths();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA,
@@ -862,7 +883,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        // LTE -> LTE+
        doReturn(true).when(mServiceState).isUsingCarrierAggregation();
        doReturn(new int[] {30000}).when(mServiceState).getCellBandwidths();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA,
@@ -891,7 +914,9 @@ public class NetworkTypeControllerTest extends TelephonyTest {
        testTransitionToCurrentStateLteConnectedSupportPhysicalChannelConfig1_6();
        doReturn(ServiceState.FREQUENCY_RANGE_MMWAVE).when(mServiceState).getNrFrequencyRange();
        setPhysicalLinkStatus(false);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null,
                        mPhone.getServiceStateTracker().getPhysicalChannelConfigList(), null));
        mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
        processAllMessages();
        assertEquals("not_restricted_rrc_idle", getCurrentState().getName());
@@ -1369,7 +1394,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
                .setNetworkType(TelephonyManager.NETWORK_TYPE_NR)
                .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
                .build());
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected", getCurrentState().getName());
@@ -1379,7 +1405,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        // switch to connected_rrc_idle
        physicalChannelConfigs.clear();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected_rrc_idle", getCurrentState().getName());
@@ -1438,7 +1465,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
                .setNetworkType(TelephonyManager.NETWORK_TYPE_NR)
                .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
                .build());
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected", getCurrentState().getName());
@@ -1448,7 +1476,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        // switch to connected_rrc_idle
        physicalChannelConfigs.clear();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected_rrc_idle", getCurrentState().getName());
@@ -1473,7 +1502,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
                .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
                .setBand(41)
                .build());
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));

        // secondary timer expires
        moveTimeForward(30 * 1000);
@@ -1517,7 +1547,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
                .setNetworkType(TelephonyManager.NETWORK_TYPE_NR)
                .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
                .build());
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected", getCurrentState().getName());
@@ -1527,7 +1558,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {

        // switch to connected_rrc_idle
        physicalChannelConfigs.clear();
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected_rrc_idle", getCurrentState().getName());
@@ -1552,7 +1584,8 @@ public class NetworkTypeControllerTest extends TelephonyTest {
                .setNetworkType(TelephonyManager.NETWORK_TYPE_NR)
                .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
                .build());
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */);
        mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
                new AsyncResult(null, physicalChannelConfigs, null));
        processAllMessages();

        assertEquals("connected_rrc_idle", getCurrentState().getName());