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

Commit cdd4c450 authored by Chalard Jean's avatar Chalard Jean
Browse files

[NS B06] Simplification

This check is now unnecessary, seeing how the code adding these
changes is now guaranteed to only add at most one change for
each request.

Test: FrameworksNetTests
Change-Id: Ia0443602d9c89ee413e956df9c7b79f8f74813f7
parent 8a2bf777
Loading
Loading
Loading
Loading
+14 −22
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@ import android.security.Credentials;
import android.security.KeyStore;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.LocalLog;
import android.util.Log;
@@ -6547,37 +6546,30 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        @NonNull private final Set<NetworkBgStatePair> mRematchedNetworks = new ArraySet<>();
        @NonNull private final Map<NetworkRequestInfo, RequestReassignment> mReassignments =
                new ArrayMap<>();
        @NonNull private final ArrayList<RequestReassignment> mReassignments = new ArrayList<>();

        @NonNull Iterable<NetworkBgStatePair> getRematchedNetworks() {
            return mRematchedNetworks;
        }

        @NonNull Iterable<RequestReassignment> getRequestReassignments() {
            return mReassignments.values();
            return mReassignments;
        }

        void addRequestReassignment(@NonNull final RequestReassignment reassignment) {
            final RequestReassignment oldChange = mReassignments.get(reassignment.mRequest);
            if (null == oldChange) {
                mReassignments.put(reassignment.mRequest, reassignment);
                return;
            if (!Build.IS_USER) {
                // The code is never supposed to add two reassignments of the same request. Make
                // sure this stays true, but without imposing this expensive check on all
                // reassignments on all user devices.
                for (final RequestReassignment existing : mReassignments) {
                    if (existing.mRequest.equals(reassignment.mRequest)) {
                        throw new IllegalStateException("Trying to reassign ["
                                + reassignment + "] but already have ["
                                + existing + "]");
                    }
                }
            }
            if (oldChange.mNewNetwork != reassignment.mOldNetwork) {
                throw new IllegalArgumentException("Reassignment <" + reassignment.mRequest + "> ["
                        + reassignment.mOldNetwork + " -> " + reassignment.mNewNetwork
                        + "] conflicts with ["
                        + oldChange.mOldNetwork + " -> " + oldChange.mNewNetwork + "]");
            }
            // There was already a note to reassign this request from a network A to a network B,
            // and a reassignment is added from network B to some other network C. The following
            // synthesizes the merged reassignment that goes A -> C. An interesting (but not
            // special) case to think about is when B is null, which can happen when the rematch
            // loop notices the current satisfier doesn't satisfy the request any more, but
            // hasn't yet encountered another network that could.
            mReassignments.put(reassignment.mRequest, new RequestReassignment(reassignment.mRequest,
                    oldChange.mOldNetwork, reassignment.mNewNetwork));
            mReassignments.add(reassignment);
        }

        void addRematchedNetwork(@NonNull final NetworkBgStatePair network) {