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

Commit f2c37de2 authored by James Mattis's avatar James Mattis Committed by Gerrit Code Review
Browse files

Merge "Adding multilayered requests to NetworkRequestInfo"

parents 1f65c6b6 716cef8b
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -235,6 +235,7 @@ import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
@@ -5358,7 +5359,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
     * Also used to notice when the calling process dies so we can self-expire
     */
    private class NetworkRequestInfo implements IBinder.DeathRecipient {
        final List<NetworkRequest> mRequests;
        final NetworkRequest request;

        // The network currently satisfying this request, or null if none. Must only be touched
        // on the handler thread. This only makes sense for network requests and not for listens,
        // as defined by NetworkRequest#isRequest(). For listens, this is always null.
@@ -5373,6 +5376,7 @@ public class ConnectivityService extends IConnectivityManager.Stub

        NetworkRequestInfo(NetworkRequest r, PendingIntent pi) {
            request = r;
            mRequests = initializeRequests(r);
            ensureNetworkRequestHasType(request);
            mPendingIntent = pi;
            messenger = null;
@@ -5386,6 +5390,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
            super();
            messenger = m;
            request = r;
            mRequests = initializeRequests(r);
            ensureNetworkRequestHasType(request);
            mBinder = binder;
            mPid = getCallingPid();
@@ -5404,6 +5409,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
            this(r, null);
        }

        private List<NetworkRequest> initializeRequests(NetworkRequest r) {
            final ArrayList<NetworkRequest> tempRequests = new ArrayList<>();
            tempRequests.add(new NetworkRequest(r));
            return Collections.unmodifiableList(tempRequests);
        }


        private void enforceRequestCountLimit() {
            synchronized (mUidToNetworkRequestCount) {
                int networkRequests = mUidToNetworkRequestCount.get(mUid, 0) + 1;