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

Commit 884ab0e1 authored by Andrew Chant's avatar Andrew Chant
Browse files

Revert "[NS A24] Add an object to represent changes in assignment"

This reverts commit 5c18198a.

Reason for revert: Toggling wifi on/off causes networking to
 stop working with these four patches applied.
Bug: 146230156

Change-Id: Ie0217796c89abf0dc86e6a4f8324811155dc57cd
parent 9bea6e4d
Loading
Loading
Loading
Loading
+4 −33
Original line number Original line Diff line number Diff line
@@ -6296,26 +6296,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }
        }
    }
    }


    // An accumulator class to gather the list of changes that result from a rematch.
    // TODO : enrich to represent an entire set of changes to apply.
    private static class NetworkReassignment {
        static class NetworkBgStatePair {
            @NonNull final NetworkAgentInfo mNetwork;
            final boolean mOldBackground;
            NetworkBgStatePair(@NonNull final NetworkAgentInfo network,
                    final boolean oldBackground) {
                mNetwork = network;
                mOldBackground = oldBackground;
            }
        }

        @NonNull private final Set<NetworkBgStatePair> mRematchedNetworks = new ArraySet<>();

        void addRematchedNetwork(@NonNull final NetworkBgStatePair network) {
            mRematchedNetworks.add(network);
        }
    }

    private ArrayMap<NetworkRequestInfo, NetworkAgentInfo> computeRequestReassignmentForNetwork(
    private ArrayMap<NetworkRequestInfo, NetworkAgentInfo> computeRequestReassignmentForNetwork(
            @NonNull final NetworkAgentInfo newNetwork) {
            @NonNull final NetworkAgentInfo newNetwork) {
        final int score = newNetwork.getCurrentScore();
        final int score = newNetwork.getCurrentScore();
@@ -6361,8 +6341,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
    //   needed. A network is needed if it is the best network for
    //   needed. A network is needed if it is the best network for
    //   one or more NetworkRequests, or if it is a VPN.
    //   one or more NetworkRequests, or if it is a VPN.
    //
    //
    // - Writes into the passed reassignment object all changes that should be done for
    // - Tears down newNetwork if it just became validated
    //   rematching this network with all requests, to be applied later.
    //   but turns out to be unneeded.
    //
    //
    // NOTE: This function only adds NetworkRequests that "newNetwork" could satisfy,
    // NOTE: This function only adds NetworkRequests that "newNetwork" could satisfy,
    // it does not remove NetworkRequests that other Networks could better satisfy.
    // it does not remove NetworkRequests that other Networks could better satisfy.
@@ -6370,23 +6350,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
    // This function should be used when possible instead of {@code rematchAllNetworksAndRequests}
    // This function should be used when possible instead of {@code rematchAllNetworksAndRequests}
    // as it performs better by a factor of the number of Networks.
    // as it performs better by a factor of the number of Networks.
    //
    //
    // TODO : stop writing to the passed reassignment. This is temporarily more useful, but
    // it's unidiomatic Java and it's hard to read.
    //
    // @param changes a currently-building list of changes to write to
    // @param newNetwork is the network to be matched against NetworkRequests.
    // @param newNetwork is the network to be matched against NetworkRequests.
    // @param now the time the rematch starts, as returned by SystemClock.elapsedRealtime();
    // @param now the time the rematch starts, as returned by SystemClock.elapsedRealtime();
    private void rematchNetworkAndRequests(@NonNull final NetworkReassignment changes,
    private void rematchNetworkAndRequests(NetworkAgentInfo newNetwork, long now) {
            @NonNull final NetworkAgentInfo newNetwork, final long now) {
        ensureRunningOnConnectivityServiceThread();
        ensureRunningOnConnectivityServiceThread();
        if (!newNetwork.everConnected) return;
        if (!newNetwork.everConnected) return;
        boolean isNewDefault = false;
        boolean isNewDefault = false;
        NetworkAgentInfo oldDefaultNetwork = null;
        NetworkAgentInfo oldDefaultNetwork = null;


        final boolean wasBackgroundNetwork = newNetwork.isBackgroundNetwork();
        final boolean wasBackgroundNetwork = newNetwork.isBackgroundNetwork();
        changes.addRematchedNetwork(new NetworkReassignment.NetworkBgStatePair(newNetwork,
                wasBackgroundNetwork));

        final int score = newNetwork.getCurrentScore();
        final int score = newNetwork.getCurrentScore();


        if (VDBG || DDBG) log("rematching " + newNetwork.name());
        if (VDBG || DDBG) log("rematching " + newNetwork.name());
@@ -6543,9 +6515,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
        // scoring network and then a higher scoring network, which could produce multiple
        // scoring network and then a higher scoring network, which could produce multiple
        // callbacks.
        // callbacks.
        Arrays.sort(nais);
        Arrays.sort(nais);
        final NetworkReassignment changes = new NetworkReassignment();
        for (final NetworkAgentInfo nai : nais) {
        for (final NetworkAgentInfo nai : nais) {
            rematchNetworkAndRequests(changes, nai, now);
            rematchNetworkAndRequests(nai, now);
        }
        }


        final NetworkAgentInfo newDefaultNetwork = getDefaultNetwork();
        final NetworkAgentInfo newDefaultNetwork = getDefaultNetwork();