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

Commit 85f67dc6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Restore legacy types when registering mobile requests"

parents b3edbd74 dd8e8911
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));