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

Commit 5f249209 authored by Frank Li's avatar Frank Li Committed by Gerrit Code Review
Browse files

Merge "[CS01]Remove hidden API usage of NetworkCapabilities"

parents 8d380420 143cae6d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6300,6 +6300,7 @@ package android.net {
    method @NonNull public int[] getAdministratorUids();
    method @Nullable public String getSsid();
    method @NonNull public int[] getTransportTypes();
    method public boolean isPrivateDnsBroken();
    method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
    field public static final int NET_CAPABILITY_NOT_VCN_MANAGED = 28; // 0x1c
    field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
@@ -6314,6 +6315,7 @@ package android.net {
    method @NonNull public android.net.NetworkCapabilities.Builder addCapability(int);
    method @NonNull public android.net.NetworkCapabilities.Builder addTransportType(int);
    method @NonNull public android.net.NetworkCapabilities build();
    method @NonNull public android.net.NetworkCapabilities.Builder clearAll();
    method @NonNull public android.net.NetworkCapabilities.Builder removeCapability(int);
    method @NonNull public android.net.NetworkCapabilities.Builder removeTransportType(int);
    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setAdministratorUids(@NonNull int[]);
+13 −1
Original line number Diff line number Diff line
@@ -2085,9 +2085,10 @@ public final class NetworkCapabilities implements Parcelable {
    /**
     * Check if private dns is broken.
     *
     * @return {@code true} if {@code mPrivateDnsBroken} is set when private DNS is broken.
     * @return {@code true} if private DNS is broken on this network.
     * @hide
     */
    @SystemApi
    public boolean isPrivateDnsBroken() {
        return mPrivateDnsBroken;
    }
@@ -2329,6 +2330,17 @@ public final class NetworkCapabilities implements Parcelable {
            return this;
        }

        /**
         * Completely clears the contents of this object, removing even the capabilities that are
         * set by default when the object is constructed.
         * @return this builder
         */
        @NonNull
        public Builder clearAll() {
            mCaps.clearAll();
            return this;
        }

        /**
         * Sets the owner UID.
         *
+13 −21
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.connectivity;

import static android.net.NetworkCapabilities.MAX_TRANSPORT;
import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
@@ -25,15 +24,14 @@ import static android.net.NetworkCapabilities.TRANSPORT_VPN;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI_AWARE;

import android.net.ConnectivityManager;
import android.net.ConnectivityMetricsEvent;
import android.net.metrics.ApfProgramEvent;
import android.net.metrics.ApfStats;
import android.net.metrics.ConnectStats;
import android.net.metrics.DefaultNetworkEvent;
import android.net.metrics.DhcpClientEvent;
import android.net.metrics.DhcpErrorEvent;
import android.net.metrics.DnsEvent;
import android.net.metrics.ConnectStats;
import android.net.metrics.IpManagerEvent;
import android.net.metrics.IpReachabilityEvent;
import android.net.metrics.NetworkEvent;
@@ -41,12 +39,13 @@ import android.net.metrics.RaEvent;
import android.net.metrics.ValidationProbeEvent;
import android.net.metrics.WakeupStats;
import android.os.Parcelable;
import android.util.SparseArray;
import android.util.SparseIntArray;

import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass;
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityEvent;
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityLog;
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.Pair;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -361,29 +360,22 @@ final public class IpConnectivityEventBuilder {
                return IpConnectivityLogClass.UNKNOWN;
            case 1:
                int t = Long.numberOfTrailingZeros(transports);
                return transportToLinkLayer(t);
                return TRANSPORT_LINKLAYER_MAP.get(t, IpConnectivityLogClass.UNKNOWN);
            default:
                return IpConnectivityLogClass.MULTIPLE;
        }
    }

    private static int transportToLinkLayer(int transport) {
        if (0 <= transport && transport < TRANSPORT_LINKLAYER_MAP.length) {
            return TRANSPORT_LINKLAYER_MAP[transport];
        }
        return IpConnectivityLogClass.UNKNOWN;
    }

    private static final int[] TRANSPORT_LINKLAYER_MAP = new int[MAX_TRANSPORT + 1];
    private static final SparseIntArray TRANSPORT_LINKLAYER_MAP = new SparseIntArray();
    static {
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_CELLULAR]   = IpConnectivityLogClass.CELLULAR;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_WIFI]       = IpConnectivityLogClass.WIFI;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_BLUETOOTH]  = IpConnectivityLogClass.BLUETOOTH;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_ETHERNET]   = IpConnectivityLogClass.ETHERNET;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_VPN]        = IpConnectivityLogClass.UNKNOWN;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_WIFI_AWARE] = IpConnectivityLogClass.WIFI_NAN;
        TRANSPORT_LINKLAYER_MAP[TRANSPORT_LOWPAN]     = IpConnectivityLogClass.LOWPAN;
    };
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_CELLULAR, IpConnectivityLogClass.CELLULAR);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_WIFI, IpConnectivityLogClass.WIFI);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_BLUETOOTH, IpConnectivityLogClass.BLUETOOTH);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_ETHERNET, IpConnectivityLogClass.ETHERNET);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_VPN, IpConnectivityLogClass.UNKNOWN);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_WIFI_AWARE, IpConnectivityLogClass.WIFI_NAN);
        TRANSPORT_LINKLAYER_MAP.append(TRANSPORT_LOWPAN, IpConnectivityLogClass.LOWPAN);
    }

    private static int ifnameToLinkLayer(String ifname) {
        // Do not try to catch all interface names with regexes, instead only catch patterns that