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

Commit 29c27573 authored by Sarah Chin's avatar Sarah Chin
Browse files

Use NR configs for minimum NR advanced bandwidth threshold

Test: manual verify
Test: atest NetworkTypeControllerTest
Bug: 257135958
Bug: 260007418
Change-Id: I164b43d1dd5b491e22277bc7b5b99093f34b6e34
parent 73e65855
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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()) {
@@ -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;
        }

@@ -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];
+7 −2
Original line number Diff line number Diff line
@@ -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());
    }