Loading src/java/com/android/internal/telephony/NetworkTypeController.java +33 −20 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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: Loading @@ -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); } Loading Loading @@ -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(); } Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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."); Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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); Loading Loading @@ -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(); Loading @@ -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(); } Loading @@ -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); Loading Loading @@ -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(); Loading @@ -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(); } Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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(); } Loading @@ -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: Loading @@ -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 " Loading tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java +59 −26 Original line number Diff line number Diff line Loading @@ -286,7 +286,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()); Loading Loading @@ -336,7 +338,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()); Loading Loading @@ -622,32 +626,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()); } Loading Loading @@ -681,20 +690,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()); } Loading Loading @@ -730,19 +742,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()); } Loading Loading @@ -770,7 +785,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(); Loading Loading @@ -807,7 +824,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, Loading Loading @@ -835,7 +854,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, Loading Loading @@ -863,7 +884,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, Loading Loading @@ -892,7 +915,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()); Loading Loading @@ -1418,7 +1443,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()); Loading @@ -1428,7 +1454,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()); Loading Loading @@ -1487,7 +1514,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()); Loading @@ -1497,7 +1525,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()); Loading @@ -1522,7 +1551,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); Loading Loading @@ -1566,7 +1596,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()); Loading @@ -1576,7 +1607,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()); Loading @@ -1601,7 +1633,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()); Loading Loading
src/java/com/android/internal/telephony/NetworkTypeController.java +33 −20 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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: Loading @@ -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); } Loading Loading @@ -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(); } Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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."); Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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()) { Loading @@ -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); Loading Loading @@ -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(); Loading @@ -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(); } Loading @@ -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); Loading Loading @@ -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(); Loading @@ -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(); } Loading @@ -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); Loading Loading @@ -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(); Loading Loading @@ -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(); } Loading @@ -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: Loading @@ -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 " Loading
tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java +59 −26 Original line number Diff line number Diff line Loading @@ -286,7 +286,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()); Loading Loading @@ -336,7 +338,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()); Loading Loading @@ -622,32 +626,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()); } Loading Loading @@ -681,20 +690,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()); } Loading Loading @@ -730,19 +742,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()); } Loading Loading @@ -770,7 +785,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(); Loading Loading @@ -807,7 +824,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, Loading Loading @@ -835,7 +854,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, Loading Loading @@ -863,7 +884,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, Loading Loading @@ -892,7 +915,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()); Loading Loading @@ -1418,7 +1443,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()); Loading @@ -1428,7 +1454,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()); Loading Loading @@ -1487,7 +1514,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()); Loading @@ -1497,7 +1525,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()); Loading @@ -1522,7 +1551,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); Loading Loading @@ -1566,7 +1596,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()); Loading @@ -1576,7 +1607,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()); Loading @@ -1601,7 +1633,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()); Loading