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

Commit fb70ef5a authored by Paul Hu's avatar Paul Hu Committed by Gerrit Code Review
Browse files

Merge "Remove ArrayUtils usage in connectivity classes"

parents 6b501d8a d9eb75b2
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -188,12 +188,13 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.AsyncChannel;
import com.android.internal.util.BitUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.LocationPermissionChecker;
import com.android.internal.util.MessageUtils;
import com.android.modules.utils.BasicShellCommandHandler;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.LinkPropertiesUtils.CompareOrUpdateResult;
import com.android.net.module.util.LinkPropertiesUtils.CompareResult;
import com.android.server.am.BatteryStatsService;
@@ -2565,13 +2566,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
        if (!checkDumpPermission(mContext, TAG, pw)) return;
        if (asProto) return;

        if (ArrayUtils.contains(args, DIAG_ARG)) {
        if (CollectionUtils.contains(args, DIAG_ARG)) {
            dumpNetworkDiagnostics(pw);
            return;
        } else if (ArrayUtils.contains(args, NETWORK_ARG)) {
        } else if (CollectionUtils.contains(args, NETWORK_ARG)) {
            dumpNetworks(pw);
            return;
        } else if (ArrayUtils.contains(args, REQUEST_ARG)) {
        } else if (CollectionUtils.contains(args, REQUEST_ARG)) {
            dumpNetworkRequests(pw);
            return;
        }
@@ -2642,7 +2643,7 @@ public class ConnectivityService extends IConnectivityManager.Stub

        pw.println();

        if (ArrayUtils.contains(args, SHORT_ARG) == false) {
        if (!CollectionUtils.contains(args, SHORT_ARG)) {
            pw.println();
            pw.println("mNetworkRequestInfoLogs (most recent first):");
            pw.increaseIndent();
@@ -4809,7 +4810,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
            }
        }

        if (ArrayUtils.isEmpty(underlyingNetworks)) return null;
        if (CollectionUtils.isEmpty(underlyingNetworks)) return null;

        List<String> interfaces = new ArrayList<>();
        for (Network network : underlyingNetworks) {
@@ -4853,7 +4854,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        if (!nai.supportsUnderlyingNetworks()) return false;
        final Network[] underlying = underlyingNetworksOrDefault(
                nai.networkCapabilities.getOwnerUid(), nai.declaredUnderlyingNetworks);
        return ArrayUtils.contains(underlying, network);
        return CollectionUtils.contains(underlying, network);
    }

    /**
@@ -5317,8 +5318,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                }
            }
        }
        // TODO: use NetworkStackUtils.convertToIntArray after moving it
        return ArrayUtils.convertToIntArray(new ArrayList<>(thresholds));
        return CollectionUtils.toIntArray(new ArrayList<>(thresholds));
    }

    private void updateSignalStrengthThresholds(
@@ -6437,7 +6437,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
            @NonNull NetworkCapabilities agentCaps, @NonNull NetworkCapabilities newNc) {
        underlyingNetworks = underlyingNetworksOrDefault(
                agentCaps.getOwnerUid(), underlyingNetworks);
        int[] transportTypes = agentCaps.getTransportTypes();
        long transportTypes = BitUtils.packBits(agentCaps.getTransportTypes());
        int downKbps = NetworkCapabilities.LINK_BANDWIDTH_UNSPECIFIED;
        int upKbps = NetworkCapabilities.LINK_BANDWIDTH_UNSPECIFIED;
        // metered if any underlying is metered, or originally declared metered by the agent.
@@ -6456,7 +6456,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                final NetworkCapabilities underlyingCaps = underlying.networkCapabilities;
                hadUnderlyingNetworks = true;
                for (int underlyingType : underlyingCaps.getTransportTypes()) {
                    transportTypes = ArrayUtils.appendInt(transportTypes, underlyingType);
                    transportTypes |= 1L << underlyingType;
                }

                // Merge capabilities of this underlying network. For bandwidth, assume the
@@ -6487,7 +6487,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
            suspended = false;
        }

        newNc.setTransportTypes(transportTypes);
        newNc.setTransportTypes(BitUtils.unpackBits(transportTypes));
        newNc.setLinkDownstreamBandwidthKbps(downKbps);
        newNc.setLinkUpstreamBandwidthKbps(upKbps);
        newNc.setCapability(NET_CAPABILITY_NOT_METERED, !metered);
@@ -8552,14 +8552,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
        for (NetworkAgentInfo virtual : mNetworkAgentInfos) {
            if (virtual.supportsUnderlyingNetworks()
                    && virtual.networkCapabilities.getOwnerUid() == callbackUid
                    && ArrayUtils.contains(virtual.declaredUnderlyingNetworks, nai.network)) {
                    && CollectionUtils.contains(virtual.declaredUnderlyingNetworks, nai.network)) {
                return true;
            }
        }

        // Administrator UIDs also contains the Owner UID
        final int[] administratorUids = nai.networkCapabilities.getAdministratorUids();
        return ArrayUtils.contains(administratorUids, callbackUid);
        return CollectionUtils.contains(administratorUids, callbackUid);
    }

    @Override
+4 −3
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.connectivity;

import static com.android.net.module.util.CollectionUtils.contains;

import android.annotation.NonNull;
import android.net.ConnectivityManager;
import android.net.IDnsResolver;
@@ -33,7 +35,6 @@ import android.os.ServiceSpecificException;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.net.module.util.NetworkStackConstants;
import com.android.server.net.BaseNetworkObserver;

@@ -117,8 +118,8 @@ public class Nat464Xlat extends BaseNetworkObserver {
    @VisibleForTesting
    protected static boolean requiresClat(NetworkAgentInfo nai) {
        // TODO: migrate to NetworkCapabilities.TRANSPORT_*.
        final boolean supported = ArrayUtils.contains(NETWORK_TYPES, nai.networkInfo.getType());
        final boolean connected = ArrayUtils.contains(NETWORK_STATES, nai.networkInfo.getState());
        final boolean supported = contains(NETWORK_TYPES, nai.networkInfo.getType());
        final boolean connected = contains(NETWORK_STATES, nai.networkInfo.getState());

        // Only run clat on networks that have a global IPv6 address and don't have a native IPv4
        // address.
+9 −17
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import static android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK;
import static android.os.Process.INVALID_UID;
import static android.os.Process.SYSTEM_UID;

import static com.android.net.module.util.CollectionUtils.toIntArray;

import android.annotation.NonNull;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -50,13 +52,12 @@ import android.util.SparseIntArray;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.net.module.util.CollectionUtils;
import com.android.server.LocalServices;
import com.android.server.SystemConfig;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -204,7 +205,7 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        if (app.requestedPermissions == null || app.requestedPermissionsFlags == null) {
            return false;
        }
        final int index = ArrayUtils.indexOf(app.requestedPermissions, permission);
        final int index = CollectionUtils.indexOf(app.requestedPermissions, permission);
        if (index < 0 || index >= app.requestedPermissionsFlags.length) return false;
        return (app.requestedPermissionsFlags[index] & REQUESTED_PERMISSION_GRANTED) != 0;
    }
@@ -246,15 +247,6 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        return mApps.containsKey(uid);
    }

    private int[] toIntArray(Collection<Integer> list) {
        int[] array = new int[list.size()];
        int i = 0;
        for (Integer item : list) {
            array[i++] = item;
        }
        return array;
    }

    private void update(Set<UserHandle> users, Map<Integer, Boolean> apps, boolean add) {
        List<Integer> network = new ArrayList<>();
        List<Integer> system = new ArrayList<>();
@@ -662,23 +654,23 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
            if (allPermissionAppIds.size() != 0) {
                mNetd.trafficSetNetPermForUids(
                        INetd.PERMISSION_INTERNET | INetd.PERMISSION_UPDATE_DEVICE_STATS,
                        ArrayUtils.convertToIntArray(allPermissionAppIds));
                        toIntArray(allPermissionAppIds));
            }
            if (internetPermissionAppIds.size() != 0) {
                mNetd.trafficSetNetPermForUids(INetd.PERMISSION_INTERNET,
                        ArrayUtils.convertToIntArray(internetPermissionAppIds));
                        toIntArray(internetPermissionAppIds));
            }
            if (updateStatsPermissionAppIds.size() != 0) {
                mNetd.trafficSetNetPermForUids(INetd.PERMISSION_UPDATE_DEVICE_STATS,
                        ArrayUtils.convertToIntArray(updateStatsPermissionAppIds));
                        toIntArray(updateStatsPermissionAppIds));
            }
            if (noPermissionAppIds.size() != 0) {
                mNetd.trafficSetNetPermForUids(INetd.PERMISSION_NONE,
                        ArrayUtils.convertToIntArray(noPermissionAppIds));
                        toIntArray(noPermissionAppIds));
            }
            if (uninstalledAppIds.size() != 0) {
                mNetd.trafficSetNetPermForUids(INetd.PERMISSION_UNINSTALLED,
                        ArrayUtils.convertToIntArray(uninstalledAppIds));
                        toIntArray(uninstalledAppIds));
            }
        } catch (RemoteException e) {
            Log.e(TAG, "Pass appId list of special permission failed." + e);