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

Commit b03aaa83 authored by Chalard Jean's avatar Chalard Jean Committed by android-build-merger
Browse files

Merge "Unify behavior of various cases of "no underlying networks"" into pi-dev am: 468fdc3d

am: d829e18d

Change-Id: If19b85325e7d684e645470293b3c8a674084c641
parents 2c9ec43b d829e18d
Loading
Loading
Loading
Loading
+9 −6
Original line number Original line Diff line number Diff line
@@ -319,15 +319,12 @@ public class Vpn {
        boolean roaming = false;
        boolean roaming = false;
        boolean congested = false;
        boolean congested = false;


        if (ArrayUtils.isEmpty(underlyingNetworks)) {
        boolean hadUnderlyingNetworks = false;
            // No idea what the underlying networks are; assume sane defaults
        if (null != underlyingNetworks) {
            metered = true;
            roaming = false;
            congested = false;
        } else {
            for (Network underlying : underlyingNetworks) {
            for (Network underlying : underlyingNetworks) {
                final NetworkCapabilities underlyingCaps = cm.getNetworkCapabilities(underlying);
                final NetworkCapabilities underlyingCaps = cm.getNetworkCapabilities(underlying);
                if (underlyingCaps == null) continue;
                if (underlyingCaps == null) continue;
                hadUnderlyingNetworks = true;
                for (int underlyingType : underlyingCaps.getTransportTypes()) {
                for (int underlyingType : underlyingCaps.getTransportTypes()) {
                    transportTypes = ArrayUtils.appendInt(transportTypes, underlyingType);
                    transportTypes = ArrayUtils.appendInt(transportTypes, underlyingType);
                }
                }
@@ -343,6 +340,12 @@ public class Vpn {
                congested |= !underlyingCaps.hasCapability(NET_CAPABILITY_NOT_CONGESTED);
                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.setTransportTypes(transportTypes);
        caps.setLinkDownstreamBandwidthKbps(downKbps);
        caps.setLinkDownstreamBandwidthKbps(downKbps);
+2 −4
Original line number Original line Diff line number Diff line
@@ -4413,13 +4413,11 @@ public class ConnectivityServiceTest {
                && caps.hasCapability(NET_CAPABILITY_NOT_METERED),
                && caps.hasCapability(NET_CAPABILITY_NOT_METERED),
                vpnNetworkAgent);
                vpnNetworkAgent);


        // Disconnect wifi too. No underlying networks should mean this is now metered,
        // Disconnect wifi too. No underlying networks means this is now metered.
        // unfortunately a discrepancy in the current implementation has this unmetered.
        // TODO : fix this.
        mWiFiNetworkAgent.disconnect();
        mWiFiNetworkAgent.disconnect();
        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
        vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
                && !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
                && !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
                && caps.hasCapability(NET_CAPABILITY_NOT_METERED),
                && !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
                vpnNetworkAgent);
                vpnNetworkAgent);


        mMockVpn.disconnect();
        mMockVpn.disconnect();