Merge "Unify behavior of various cases of "no underlying networks"" into pi-dev am: 468fdc3dd2
am: d829e18d9a
Change-Id: If19b85325e7d684e645470293b3c8a674084c641
This commit is contained in:
@@ -319,15 +319,12 @@ public class Vpn {
|
||||
boolean roaming = false;
|
||||
boolean congested = false;
|
||||
|
||||
if (ArrayUtils.isEmpty(underlyingNetworks)) {
|
||||
// No idea what the underlying networks are; assume sane defaults
|
||||
metered = true;
|
||||
roaming = false;
|
||||
congested = false;
|
||||
} else {
|
||||
boolean hadUnderlyingNetworks = false;
|
||||
if (null != underlyingNetworks) {
|
||||
for (Network underlying : underlyingNetworks) {
|
||||
final NetworkCapabilities underlyingCaps = cm.getNetworkCapabilities(underlying);
|
||||
if (underlyingCaps == null) continue;
|
||||
hadUnderlyingNetworks = true;
|
||||
for (int underlyingType : underlyingCaps.getTransportTypes()) {
|
||||
transportTypes = ArrayUtils.appendInt(transportTypes, underlyingType);
|
||||
}
|
||||
@@ -343,6 +340,12 @@ public class Vpn {
|
||||
congested |= !underlyingCaps.hasCapability(NET_CAPABILITY_NOT_CONGESTED);
|
||||
}
|
||||
}
|
||||
if (!hadUnderlyingNetworks) {
|
||||
// No idea what the underlying networks are; assume sane defaults
|
||||
metered = true;
|
||||
roaming = false;
|
||||
congested = false;
|
||||
}
|
||||
|
||||
caps.setTransportTypes(transportTypes);
|
||||
caps.setLinkDownstreamBandwidthKbps(downKbps);
|
||||
|
||||
@@ -4413,13 +4413,11 @@ public class ConnectivityServiceTest {
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
|
||||
// Disconnect wifi too. No underlying networks should mean this is now metered,
|
||||
// unfortunately a discrepancy in the current implementation has this unmetered.
|
||||
// TODO : fix this.
|
||||
// Disconnect wifi too. No underlying networks means this is now metered.
|
||||
mWiFiNetworkAgent.disconnect();
|
||||
vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
|
||||
&& !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
&& !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
|
||||
mMockVpn.disconnect();
|
||||
|
||||
Reference in New Issue
Block a user