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

Commit 8d8f48f0 authored by Benedict Wong's avatar Benedict Wong Committed by Gerrit Code Review
Browse files

Merge "Remove usages of hidden connectivity APIs"

parents 59c47d24 3d021a53
Loading
Loading
Loading
Loading
+6 −7
Original line number Original line Diff line number Diff line
@@ -168,8 +168,8 @@ public class Vcn extends Handler {
            @NonNull NetworkRequest request, int score, int providerId) {
            @NonNull NetworkRequest request, int score, int providerId) {
        if (score > getNetworkScore()) {
        if (score > getNetworkScore()) {
            Slog.v(getLogTag(),
            Slog.v(getLogTag(),
                    "Request " + request.requestId + " already satisfied by higher-scoring ("
                    "Request already satisfied by higher-scoring (" + score + ") network from "
                            + score + ") network from provider " + providerId);
                            + "provider " + providerId + ": " + request);
            return;
            return;
        }
        }


@@ -177,8 +177,7 @@ public class Vcn extends Handler {
        for (VcnGatewayConnectionConfig gatewayConnectionConfig : mVcnGatewayConnections.keySet()) {
        for (VcnGatewayConnectionConfig gatewayConnectionConfig : mVcnGatewayConnections.keySet()) {
            if (requestSatisfiedByGatewayConnectionConfig(request, gatewayConnectionConfig)) {
            if (requestSatisfiedByGatewayConnectionConfig(request, gatewayConnectionConfig)) {
                Slog.v(getLogTag(),
                Slog.v(getLogTag(),
                        "Request " + request.requestId
                        "Request already satisfied by existing VcnGatewayConnection: " + request);
                                + " satisfied by existing VcnGatewayConnection");
                return;
                return;
            }
            }
        }
        }
@@ -202,12 +201,12 @@ public class Vcn extends Handler {


    private boolean requestSatisfiedByGatewayConnectionConfig(
    private boolean requestSatisfiedByGatewayConnectionConfig(
            @NonNull NetworkRequest request, @NonNull VcnGatewayConnectionConfig config) {
            @NonNull NetworkRequest request, @NonNull VcnGatewayConnectionConfig config) {
        final NetworkCapabilities configCaps = new NetworkCapabilities();
        final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();
        for (int cap : config.getAllExposedCapabilities()) {
        for (int cap : config.getAllExposedCapabilities()) {
            configCaps.addCapability(cap);
            builder.addCapability(cap);
        }
        }


        return request.networkCapabilities.satisfiedByNetworkCapabilities(configCaps);
        return request.canBeSatisfiedBy(builder.build());
    }
    }


    private String getLogTag() {
    private String getLogTag() {
+6 −6
Original line number Original line Diff line number Diff line
@@ -963,18 +963,18 @@ public class VcnGatewayConnection extends StateMachine {
    @VisibleForTesting(visibility = Visibility.PRIVATE)
    @VisibleForTesting(visibility = Visibility.PRIVATE)
    static NetworkCapabilities buildNetworkCapabilities(
    static NetworkCapabilities buildNetworkCapabilities(
            @NonNull VcnGatewayConnectionConfig gatewayConnectionConfig) {
            @NonNull VcnGatewayConnectionConfig gatewayConnectionConfig) {
        final NetworkCapabilities caps = new NetworkCapabilities();
        final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();


        caps.addTransportType(TRANSPORT_CELLULAR);
        builder.addTransportType(TRANSPORT_CELLULAR);
        caps.addCapability(NET_CAPABILITY_NOT_CONGESTED);
        builder.addCapability(NET_CAPABILITY_NOT_CONGESTED);
        caps.addCapability(NET_CAPABILITY_NOT_SUSPENDED);
        builder.addCapability(NET_CAPABILITY_NOT_SUSPENDED);


        // Add exposed capabilities
        // Add exposed capabilities
        for (int cap : gatewayConnectionConfig.getAllExposedCapabilities()) {
        for (int cap : gatewayConnectionConfig.getAllExposedCapabilities()) {
            caps.addCapability(cap);
            builder.addCapability(cap);
        }
        }


        return caps;
        return builder.build();
    }
    }


    private static LinkProperties buildConnectedLinkProperties(
    private static LinkProperties buildConnectedLinkProperties(
+14 −6
Original line number Original line Diff line number Diff line
@@ -21,9 +21,9 @@ import android.content.Context;
import android.net.NetworkProvider;
import android.net.NetworkProvider;
import android.net.NetworkRequest;
import android.net.NetworkRequest;
import android.os.Looper;
import android.os.Looper;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.Slog;
import android.util.Slog;
import android.util.SparseArray;


import java.util.Objects;
import java.util.Objects;
import java.util.Set;
import java.util.Set;
@@ -40,7 +40,13 @@ public class VcnNetworkProvider extends NetworkProvider {
    private static final String TAG = VcnNetworkProvider.class.getSimpleName();
    private static final String TAG = VcnNetworkProvider.class.getSimpleName();


    private final Set<NetworkRequestListener> mListeners = new ArraySet<>();
    private final Set<NetworkRequestListener> mListeners = new ArraySet<>();
    private final SparseArray<NetworkRequestEntry> mRequests = new SparseArray<>();

    /**
     * Cache of NetworkRequest(s), scores and network providers, keyed by NetworkRequest
     *
     * <p>NetworkRequests are immutable once created, and therefore can be used as stable keys.
     */
    private final ArrayMap<NetworkRequest, NetworkRequestEntry> mRequests = new ArrayMap<>();


    public VcnNetworkProvider(Context context, Looper looper) {
    public VcnNetworkProvider(Context context, Looper looper) {
        super(context, looper, VcnNetworkProvider.class.getSimpleName());
        super(context, looper, VcnNetworkProvider.class.getSimpleName());
@@ -51,8 +57,8 @@ public class VcnNetworkProvider extends NetworkProvider {
        mListeners.add(listener);
        mListeners.add(listener);


        // Send listener all cached requests
        // Send listener all cached requests
        for (int i = 0; i < mRequests.size(); i++) {
        for (NetworkRequestEntry entry : mRequests.values()) {
            notifyListenerForEvent(listener, mRequests.valueAt(i));
            notifyListenerForEvent(listener, entry);
        }
        }
    }
    }


@@ -75,7 +81,9 @@ public class VcnNetworkProvider extends NetworkProvider {
                        request, score, providerId));
                        request, score, providerId));


        final NetworkRequestEntry entry = new NetworkRequestEntry(request, score, providerId);
        final NetworkRequestEntry entry = new NetworkRequestEntry(request, score, providerId);
        mRequests.put(request.requestId, entry);

        // NetworkRequests are immutable once created, and therefore can be used as stable keys.
        mRequests.put(request, entry);


        // TODO(b/176939047): Intelligently route requests to prioritized VcnInstances (based on
        // TODO(b/176939047): Intelligently route requests to prioritized VcnInstances (based on
        // Default Data Sub, or similar)
        // Default Data Sub, or similar)
@@ -86,7 +94,7 @@ public class VcnNetworkProvider extends NetworkProvider {


    @Override
    @Override
    public void onNetworkRequestWithdrawn(@NonNull NetworkRequest request) {
    public void onNetworkRequestWithdrawn(@NonNull NetworkRequest request) {
        mRequests.remove(request.requestId);
        mRequests.remove(request);
    }
    }


    private static class NetworkRequestEntry {
    private static class NetworkRequestEntry {