Loading src/java/com/android/internal/telephony/NetworkTypeController.java +9 −6 Original line number Diff line number Diff line Loading @@ -513,7 +513,8 @@ public class NetworkTypeController extends StateMachine { int value = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE; if ((getDataNetworkType() == TelephonyManager.NETWORK_TYPE_LTE_CA || mServiceState.isUsingCarrierAggregation()) && getBandwidth() > mLtePlusThresholdBandwidth) { && IntStream.of(mServiceState.getCellBandwidths()).sum() > mLtePlusThresholdBandwidth) { value = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA; } if (isLteEnhancedAvailable()) { Loading Loading @@ -1275,9 +1276,15 @@ public class NetworkTypeController extends StateMachine { return false; } int bandwidths = mPhone.getServiceStateTracker().getPhysicalChannelConfigList() .stream() .filter(config -> config.getNetworkType() == TelephonyManager.NETWORK_TYPE_NR) .map(PhysicalChannelConfig::getCellBandwidthDownlinkKhz) .mapToInt(Integer::intValue) .sum(); // Check if meeting minimum bandwidth requirement. For most carriers, there is no minimum // bandwidth requirement and mNrAdvancedThresholdBandwidth is 0. if (mNrAdvancedThresholdBandwidth > 0 && getBandwidth() < mNrAdvancedThresholdBandwidth) { if (mNrAdvancedThresholdBandwidth > 0 && bandwidths < mNrAdvancedThresholdBandwidth) { return false; } Loading Loading @@ -1325,10 +1332,6 @@ public class NetworkTypeController extends StateMachine { : nri.getAccessNetworkTechnology(); } private int getBandwidth() { return IntStream.of(mServiceState.getCellBandwidths()).sum(); } private String getEventName(int event) { try { return sEvents[event]; Loading tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -1240,11 +1240,16 @@ public class NetworkTypeControllerTest extends TelephonyTest { doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mServiceState).getDataNetworkType(); doReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED).when(mServiceState).getNrState(); doReturn(ServiceState.FREQUENCY_RANGE_MMWAVE).when(mServiceState).getNrFrequencyRange(); doReturn(new int[] {20001}).when(mServiceState).getCellBandwidths(); List<PhysicalChannelConfig> lastPhysicalChannelConfigList = new ArrayList<>(); lastPhysicalChannelConfigList.add(new PhysicalChannelConfig.Builder() .setNetworkType(TelephonyManager.NETWORK_TYPE_NR) .setCellBandwidthDownlinkKhz(20001) .build()); doReturn(lastPhysicalChannelConfigList).when(mSST).getPhysicalChannelConfigList(); mBundle.putInt(CarrierConfigManager.KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT, 20000); broadcastCarrierConfigs(); mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */); mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED */); processAllMessages(); assertEquals("connected_mmwave", getCurrentState().getName()); } Loading Loading
src/java/com/android/internal/telephony/NetworkTypeController.java +9 −6 Original line number Diff line number Diff line Loading @@ -513,7 +513,8 @@ public class NetworkTypeController extends StateMachine { int value = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE; if ((getDataNetworkType() == TelephonyManager.NETWORK_TYPE_LTE_CA || mServiceState.isUsingCarrierAggregation()) && getBandwidth() > mLtePlusThresholdBandwidth) { && IntStream.of(mServiceState.getCellBandwidths()).sum() > mLtePlusThresholdBandwidth) { value = TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA; } if (isLteEnhancedAvailable()) { Loading Loading @@ -1275,9 +1276,15 @@ public class NetworkTypeController extends StateMachine { return false; } int bandwidths = mPhone.getServiceStateTracker().getPhysicalChannelConfigList() .stream() .filter(config -> config.getNetworkType() == TelephonyManager.NETWORK_TYPE_NR) .map(PhysicalChannelConfig::getCellBandwidthDownlinkKhz) .mapToInt(Integer::intValue) .sum(); // Check if meeting minimum bandwidth requirement. For most carriers, there is no minimum // bandwidth requirement and mNrAdvancedThresholdBandwidth is 0. if (mNrAdvancedThresholdBandwidth > 0 && getBandwidth() < mNrAdvancedThresholdBandwidth) { if (mNrAdvancedThresholdBandwidth > 0 && bandwidths < mNrAdvancedThresholdBandwidth) { return false; } Loading Loading @@ -1325,10 +1332,6 @@ public class NetworkTypeController extends StateMachine { : nri.getAccessNetworkTechnology(); } private int getBandwidth() { return IntStream.of(mServiceState.getCellBandwidths()).sum(); } private String getEventName(int event) { try { return sEvents[event]; Loading
tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -1240,11 +1240,16 @@ public class NetworkTypeControllerTest extends TelephonyTest { doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mServiceState).getDataNetworkType(); doReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED).when(mServiceState).getNrState(); doReturn(ServiceState.FREQUENCY_RANGE_MMWAVE).when(mServiceState).getNrFrequencyRange(); doReturn(new int[] {20001}).when(mServiceState).getCellBandwidths(); List<PhysicalChannelConfig> lastPhysicalChannelConfigList = new ArrayList<>(); lastPhysicalChannelConfigList.add(new PhysicalChannelConfig.Builder() .setNetworkType(TelephonyManager.NETWORK_TYPE_NR) .setCellBandwidthDownlinkKhz(20001) .build()); doReturn(lastPhysicalChannelConfigList).when(mSST).getPhysicalChannelConfigList(); mBundle.putInt(CarrierConfigManager.KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT, 20000); broadcastCarrierConfigs(); mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */); mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED */); processAllMessages(); assertEquals("connected_mmwave", getCurrentState().getName()); } Loading