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

Commit 7d25aab6 authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Fixed crash when RAT changes with tethering on" into pi-dev

am: 50e68daf

Change-Id: I2c0fad2d768d321a4dea0c1b31aa930a6796f220
parents e6490bb5 50e68daf
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -936,7 +936,6 @@ public class DataConnection extends StateMachine {
        result.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);

        if (mApnSetting != null) {
            ApnSetting securedDunApn = mDct.fetchDunApn();
            for (String type : mApnSetting.types) {
                if (!mRestrictedNetworkOverride
                        && (mConnectionParams != null && mConnectionParams.mUnmeteredUseOnly)
@@ -953,11 +952,7 @@ public class DataConnection extends StateMachine {
                        result.addCapability(NetworkCapabilities.NET_CAPABILITY_IMS);
                        result.addCapability(NetworkCapabilities.NET_CAPABILITY_CBS);
                        result.addCapability(NetworkCapabilities.NET_CAPABILITY_IA);
                        // check if this is the DUN apn as well as returned by fetchDunApn().
                        // If yes, add DUN capability too.
                        if (mApnSetting.equals(securedDunApn)) {
                        result.addCapability(NetworkCapabilities.NET_CAPABILITY_DUN);
                        }
                        break;
                    }
                    case PhoneConstants.APN_TYPE_DEFAULT: {
@@ -973,9 +968,7 @@ public class DataConnection extends StateMachine {
                        break;
                    }
                    case PhoneConstants.APN_TYPE_DUN: {
                        if (securedDunApn == null || securedDunApn.equals(mApnSetting)) {
                        result.addCapability(NetworkCapabilities.NET_CAPABILITY_DUN);
                        }
                        break;
                    }
                    case PhoneConstants.APN_TYPE_FOTA: {
@@ -1725,6 +1718,7 @@ public class DataConnection extends StateMachine {
            misc.subscriberId = mPhone.getSubscriberId();

            setNetworkRestriction();
            if (DBG) log("mRestrictedNetworkOverride = " + mRestrictedNetworkOverride);
            mNetworkAgent = new DcNetworkAgent(getHandler().getLooper(), mPhone.getContext(),
                    "DcNetworkAgent", mNetworkInfo, getNetworkCapabilities(), mLinkProperties,
                    50, misc);
+59 −0
Original line number Diff line number Diff line
@@ -129,6 +129,34 @@ public class DataConnectionTest extends TelephonyTest {
            "",                     // mvno_type
            "");                    // mnvo_match_data

    private ApnSetting mApn2 = new ApnSetting(
            2164,                   // id
            "44010",                // numeric
            "sp-mode",              // name
            "spmode.ne.jp",         // apn
            "",                     // proxy
            "",                     // port
            "",                     // mmsc
            "",                     // mmsproxy
            "",                     // mmsport
            "",                     // user
            "",                     // password
            -1,                     // authtype
            new String[]{"default", "dun"},     // types
            "IP",                   // protocol
            "IP",                   // roaming_protocol
            true,                   // carrier_enabled
            0,                      // bearer
            0,                      // bearer_bitmask
            0,                      // profile_id
            false,                  // modem_cognitive
            0,                      // max_conns
            0,                      // wait_time
            0,                      // max_conns_time
            0,                      // mtu
            "",                     // mvno_type
            "");                    // mnvo_match_data

    private class DataConnectionTestHandler extends HandlerThread {

        private DataConnectionTestHandler(String name) {
@@ -174,6 +202,7 @@ public class DataConnectionTest extends TelephonyTest {
                ServiceState.RIL_RADIO_TECHNOLOGY_UMTS);
        doReturn(mApn1).when(mApnContext).getApnSetting();
        doReturn(PhoneConstants.APN_TYPE_DEFAULT).when(mApnContext).getApnType();
        doReturn(true).when(mDcTracker).isDataEnabled();

        mDcFailBringUp.saveParameters(0, 0, -2);
        doReturn(mDcFailBringUp).when(mDcTesterFailBringUpAll).getDcFailBringUp();
@@ -374,6 +403,36 @@ public class DataConnectionTest extends TelephonyTest {
        return (NetworkCapabilities) method.invoke(mDc);
    }

    @Test
    @SmallTest
    public void testNetworkCapability() throws Exception {
        mContextFixture.getCarrierConfigBundle().putStringArray(
                CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[] { "default" });
        doReturn(mApn2).when(mApnContext).getApnSetting();
        testConnectEvent();

        assertTrue("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_DUN));
        assertTrue("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET));
        assertFalse("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS));

        mDc.sendMessage(DataConnection.EVENT_DISCONNECT, mDcp);
        waitForMs(100);
        doReturn(mApn1).when(mApnContext).getApnSetting();
        mDc.sendMessage(DataConnection.EVENT_CONNECT, mCp);
        waitForMs(200);

        assertFalse("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_DUN));
        assertTrue("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET));
        assertTrue("capabilities: " + getNetworkCapabilities(), getNetworkCapabilities()
                .hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL));
    }

    @Test
    @SmallTest
    public void testMeteredCapability() throws Exception {