Merge "Restore legacy types when registering mobile requests" am: 85f67dc60a am: 47453e01cb am: 1a1a7f6e75
am: 7ae809eea6
Change-Id: I17e7bae58cc75bd176c57324f446552950e3682e
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user