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

Commit 81d272b8 authored by Sarah Chin's avatar Sarah Chin
Browse files

Add logic for NR roaming meteredness

NR can only be unmetered when not roaming or carrier config says
unmetered while roaming is allowed.

Test: atest DcTrackerTest
Bug: 152541872
Change-Id: Ieda1f190868f266caea22eb02e1e0fbc0cb91c99
Merged-In: Ieda1f190868f266caea22eb02e1e0fbc0cb91c99
parent 2d13062f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -325,6 +325,7 @@ public class DcTracker extends Handler {
    private boolean mNrSaAllUnmetered = false;
    private boolean mNrSaMmwaveUnmetered = false;
    private boolean mNrSaSub6Unmetered = false;
    private boolean mRoamingUnmetered = false;

    /* Used to check whether 5G timers are currently active and waiting to go off */
    private boolean mHysteresis = false;
@@ -4032,7 +4033,8 @@ public class DcTracker extends Handler {
        boolean nrUnmetered = isNetworkTypeUnmetered(NETWORK_TYPE_NR);
        boolean nrNsaUnmetered = isNrNsaFrequencyRangeUnmetered();
        boolean nrSaUnmetered = isNrSaFrequencyRangeUnmetered();
        if (nrUnmetered || nrNsaUnmetered || nrSaUnmetered) {
        if ((nrUnmetered || nrNsaUnmetered || nrSaUnmetered)
                && !mPhone.getServiceState().getRoaming() || mRoamingUnmetered) {
            if (DBG) log("NR is unmetered");
            if ((nrUnmetered || nrNsaUnmetered) && mPhone.getServiceState().getNrState()
                    == NetworkRegistrationInfo.NR_STATE_CONNECTED
@@ -4156,7 +4158,7 @@ public class DcTracker extends Handler {
        TelephonyDisplayInfo telephonyDisplayInfo =
                new TelephonyDisplayInfo(dataNetworkType, displayNetworkType);
        if (!telephonyDisplayInfo.equals(mTelephonyDisplayInfo)) {
            log("Display info changed. " + telephonyDisplayInfo);
            log("Display info changed: " + telephonyDisplayInfo);
            mTelephonyDisplayInfo = telephonyDisplayInfo;
            mPhone.notifyDisplayInfoChanged(telephonyDisplayInfo);
            return true;
@@ -5230,6 +5232,8 @@ public class DcTracker extends Handler {
                        CarrierConfigManager.KEY_UNMETERED_NR_SA_MMWAVE_BOOL);
                mNrSaSub6Unmetered = b.getBoolean(
                        CarrierConfigManager.KEY_UNMETERED_NR_SA_SUB6_BOOL);
                mRoamingUnmetered = b.getBoolean(
                        CarrierConfigManager.KEY_UNMETERED_NR_NSA_WHEN_ROAMING_BOOL);
            }
        }

+4 −4
Original line number Diff line number Diff line
@@ -1831,9 +1831,9 @@ public class DcTrackerTest extends TelephonyTest {
        setUpSubscriptionPlans(true);
        setUpWatchdogTimer();

        // Hysteresis active for 10s
        // Hysteresis active for 100s
        doReturn(1).when(mPhone).getSubId();
        mBundle.putInt(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_SEC_INT, 10000);
        mBundle.putInt(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_SEC_INT, 100);
        Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
        intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, mPhone.getPhoneId());
        intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, mPhone.getSubId());
@@ -1901,9 +1901,9 @@ public class DcTrackerTest extends TelephonyTest {
        waitForLastHandlerAction(mDcTrackerTestHandler.getThreadHandler());
        assertFalse(getWatchdogStatus());

        // Hysteresis active for 10s
        // Hysteresis active for 100s
        doReturn(1).when(mPhone).getSubId();
        mBundle.putInt(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_SEC_INT, 10000);
        mBundle.putInt(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_SEC_INT, 100);
        Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
        intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, mPhone.getPhoneId());
        intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, mPhone.getSubId());