Merge "Restore legacy types when registering mobile requests" am: 85f67dc60a am: 47453e01cb
am: 1a1a7f6e75
Change-Id: I9eb1ca8a19cca3a28e81392dbd988e5c2cee02c7
This commit is contained in:
@@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
package com.android.server.connectivity.tethering;
|
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.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.ConnectivityManager.NetworkCallback;
|
import android.net.ConnectivityManager.NetworkCallback;
|
||||||
@@ -142,7 +145,11 @@ public class UpstreamNetworkMonitor {
|
|||||||
// message to aid in any subsequent debugging
|
// message to aid in any subsequent debugging
|
||||||
if (DBG) Log.d(TAG, "requesting mobile upstream network: " + mobileUpstreamRequest);
|
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() {
|
public void releaseMobileNetworkRequest() {
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.server.connectivity.tethering;
|
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 android.net.NetworkCapabilities.NET_CAPABILITY_DUN;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
@@ -114,6 +116,9 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
mUNM.registerMobileNetworkRequest();
|
mUNM.registerMobileNetworkRequest();
|
||||||
assertTrue(mUNM.mobileNetworkRequested());
|
assertTrue(mUNM.mobileNetworkRequested());
|
||||||
assertEquals(1, mCM.requested.size());
|
assertEquals(1, mCM.requested.size());
|
||||||
|
assertEquals(1, mCM.legacyTypeMap.size());
|
||||||
|
assertEquals(Integer.valueOf(TYPE_MOBILE_HIPRI),
|
||||||
|
mCM.legacyTypeMap.values().iterator().next());
|
||||||
assertFalse(mCM.isDunRequested());
|
assertFalse(mCM.isDunRequested());
|
||||||
|
|
||||||
mUNM.stop();
|
mUNM.stop();
|
||||||
@@ -137,6 +142,9 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
mUNM.registerMobileNetworkRequest();
|
mUNM.registerMobileNetworkRequest();
|
||||||
assertTrue(mUNM.mobileNetworkRequested());
|
assertTrue(mUNM.mobileNetworkRequested());
|
||||||
assertEquals(1, mCM.requested.size());
|
assertEquals(1, mCM.requested.size());
|
||||||
|
assertEquals(1, mCM.legacyTypeMap.size());
|
||||||
|
assertEquals(Integer.valueOf(TYPE_MOBILE_DUN),
|
||||||
|
mCM.legacyTypeMap.values().iterator().next());
|
||||||
assertTrue(mCM.isDunRequested());
|
assertTrue(mCM.isDunRequested());
|
||||||
|
|
||||||
mUNM.stop();
|
mUNM.stop();
|
||||||
@@ -148,6 +156,7 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
public Set<NetworkCallback> trackingDefault = new HashSet<>();
|
public Set<NetworkCallback> trackingDefault = new HashSet<>();
|
||||||
public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>();
|
public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>();
|
||||||
public Map<NetworkCallback, NetworkRequest> requested = new HashMap<>();
|
public Map<NetworkCallback, NetworkRequest> requested = new HashMap<>();
|
||||||
|
public Map<NetworkCallback, Integer> legacyTypeMap = new HashMap<>();
|
||||||
|
|
||||||
public TestConnectivityManager(Context ctx, IConnectivityManager svc) {
|
public TestConnectivityManager(Context ctx, IConnectivityManager svc) {
|
||||||
super(ctx, svc);
|
super(ctx, svc);
|
||||||
@@ -156,7 +165,8 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
boolean isEmpty() {
|
boolean isEmpty() {
|
||||||
return trackingDefault.isEmpty() &&
|
return trackingDefault.isEmpty() &&
|
||||||
listening.isEmpty() &&
|
listening.isEmpty() &&
|
||||||
requested.isEmpty();
|
requested.isEmpty() &&
|
||||||
|
legacyTypeMap.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isListeningForDun() {
|
boolean isListeningForDun() {
|
||||||
@@ -183,6 +193,17 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
requested.put(cb, req);
|
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
|
@Override
|
||||||
public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb) {
|
public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb) {
|
||||||
assertFalse(listening.containsKey(cb));
|
assertFalse(listening.containsKey(cb));
|
||||||
@@ -203,6 +224,7 @@ public class UpstreamNetworkMonitorTest {
|
|||||||
listening.remove(cb);
|
listening.remove(cb);
|
||||||
} else if (requested.containsKey(cb)) {
|
} else if (requested.containsKey(cb)) {
|
||||||
requested.remove(cb);
|
requested.remove(cb);
|
||||||
|
legacyTypeMap.remove(cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
assertFalse(trackingDefault.contains(cb));
|
assertFalse(trackingDefault.contains(cb));
|
||||||
|
|||||||
Reference in New Issue
Block a user