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

Commit 388f31e1 authored by Erik Kline's avatar Erik Kline Committed by android-build-merger
Browse files

Merge "Restore legacy types when registering mobile requests" am: 85f67dc6...

Merge "Restore legacy types when registering mobile requests" am: 85f67dc6 am: 47453e01 am: 1a1a7f6e
am: 7ae809ee

Change-Id: I17e7bae58cc75bd176c57324f446552950e3682e
parents b3a20ee4 7ae809ee
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.server.connectivity.tethering;

import static android.net.ConnectivityManager.TYPE_MOBILE_DUN;
import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
@@ -142,7 +145,11 @@ public class UpstreamNetworkMonitor {
        // message to aid in any subsequent debugging
        if (DBG) Log.d(TAG, "requesting mobile upstream network: " + mobileUpstreamRequest);

        cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback);
        // The following use of the legacy type system cannot be removed until
        // after upstream selection no longer finds networks by legacy type.
        // See also b/34364553.
        final int apnType = mDunRequired ? TYPE_MOBILE_DUN : TYPE_MOBILE_HIPRI;
        cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback, 0, apnType);
    }

    public void releaseMobileNetworkRequest() {
+23 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.connectivity.tethering;

import static android.net.ConnectivityManager.TYPE_MOBILE_DUN;
import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI;
import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -114,6 +116,9 @@ public class UpstreamNetworkMonitorTest {
        mUNM.registerMobileNetworkRequest();
        assertTrue(mUNM.mobileNetworkRequested());
        assertEquals(1, mCM.requested.size());
        assertEquals(1, mCM.legacyTypeMap.size());
        assertEquals(Integer.valueOf(TYPE_MOBILE_HIPRI),
                mCM.legacyTypeMap.values().iterator().next());
        assertFalse(mCM.isDunRequested());

        mUNM.stop();
@@ -137,6 +142,9 @@ public class UpstreamNetworkMonitorTest {
        mUNM.registerMobileNetworkRequest();
        assertTrue(mUNM.mobileNetworkRequested());
        assertEquals(1, mCM.requested.size());
        assertEquals(1, mCM.legacyTypeMap.size());
        assertEquals(Integer.valueOf(TYPE_MOBILE_DUN),
                mCM.legacyTypeMap.values().iterator().next());
        assertTrue(mCM.isDunRequested());

        mUNM.stop();
@@ -148,6 +156,7 @@ public class UpstreamNetworkMonitorTest {
        public Set<NetworkCallback> trackingDefault = new HashSet<>();
        public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>();
        public Map<NetworkCallback, NetworkRequest> requested = new HashMap<>();
        public Map<NetworkCallback, Integer> legacyTypeMap = new HashMap<>();

        public TestConnectivityManager(Context ctx, IConnectivityManager svc) {
            super(ctx, svc);
@@ -156,7 +165,8 @@ public class UpstreamNetworkMonitorTest {
        boolean isEmpty() {
            return trackingDefault.isEmpty() &&
                   listening.isEmpty() &&
                   requested.isEmpty();
                   requested.isEmpty() &&
                   legacyTypeMap.isEmpty();
        }

        boolean isListeningForDun() {
@@ -183,6 +193,17 @@ public class UpstreamNetworkMonitorTest {
            requested.put(cb, req);
        }

        @Override
        public void requestNetwork(NetworkRequest req, NetworkCallback cb,
                int timeoutMs, int legacyType) {
            assertFalse(requested.containsKey(cb));
            requested.put(cb, req);
            assertFalse(legacyTypeMap.containsKey(cb));
            if (legacyType != ConnectivityManager.TYPE_NONE) {
                legacyTypeMap.put(cb, legacyType);
            }
        }

        @Override
        public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb) {
            assertFalse(listening.containsKey(cb));
@@ -203,6 +224,7 @@ public class UpstreamNetworkMonitorTest {
                listening.remove(cb);
            } else if (requested.containsKey(cb)) {
                requested.remove(cb);
                legacyTypeMap.remove(cb);
            }

            assertFalse(trackingDefault.contains(cb));