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

Commit 5845d541 authored by Chalard Jean's avatar Chalard Jean
Browse files

Revert "[NS D03] Migrate the bad wifi avoidance policy"

Revert submission 10338939

Reason for revert: The feature was punted out of R.
Reverted Changes:
I32c12702c:[NS D04] Implement a simple speed comparison betwe...
I688593cc0:[NS D03] Migrate the bad wifi avoidance policy

Change-Id: I640635a1ed94bed3b53466abe2a988caf0eca2b0
parent 4bdb2cf7
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -16,16 +16,12 @@

package com.android.internal.util;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.RemoteException;
import android.util.ExceptionUtils;

import java.util.Collection;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

/**
@@ -222,20 +218,4 @@ public class FunctionalUtils {
            }
        }
    }

    /**
     * Find the first element in the list that matches the predicate.
     *
     * The standard Java way of doing this is to use streams, which is very expensive.
     *
     * @return the first matching element, or null if none.
     */
    @Nullable
    public static <T> T findFirst(@NonNull final Collection<T> haystack,
            @NonNull final Predicate<T> p) {
        for (final T needle : haystack) {
            if (p.test(needle)) return needle;
        }
        return null;
    }
}
+2 −25
Original line number Diff line number Diff line
@@ -16,13 +16,8 @@

package com.android.server.connectivity;

import static android.net.NetworkScore.POLICY_IGNORE_ON_WIFI;

import static com.android.internal.util.FunctionalUtils.findFirst;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;

import java.util.ArrayList;
@@ -42,33 +37,15 @@ public class NetworkRanker {
            @NonNull final Collection<NetworkAgentInfo> nais) {
        final ArrayList<NetworkAgentInfo> candidates = new ArrayList<>(nais);
        candidates.removeIf(nai -> !nai.satisfies(request));
        // Enforce policy.
        filterBadWifiAvoidancePolicy(candidates);

        NetworkAgentInfo bestNetwork = null;
        int bestScore = Integer.MIN_VALUE;
        for (final NetworkAgentInfo nai : candidates) {
            final int score = nai.getCurrentScore();
            if (score > bestScore) {
            if (nai.getCurrentScore() > bestScore) {
                bestNetwork = nai;
                bestScore = score;
                bestScore = nai.getCurrentScore();
            }
        }
        return bestNetwork;
    }

    // If some network with wifi transport is present, drop all networks with POLICY_IGNORE_ON_WIFI.
    private void filterBadWifiAvoidancePolicy(
            @NonNull final ArrayList<NetworkAgentInfo> candidates) {
        final NetworkAgentInfo wifi = findFirst(candidates,
                nai -> nai.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
                        && nai.everValidated
                        // Horrible hack : there is old UI that will let a user say they want to
                        // override the policy only for this network only at this time and it
                        // feeds into the following member. This old UI should probably be removed
                        // but for now keep backward compatibility.
                        && !nai.avoidUnvalidated);
        if (null == wifi) return; // No wifi : this policy doesn't apply
        candidates.removeIf(nai -> nai.getNetworkScore().hasPolicy(POLICY_IGNORE_ON_WIFI));
    }
}
+0 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.connectivity

import android.net.NetworkCapabilities
import android.net.NetworkRequest
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
@@ -36,7 +35,6 @@ class NetworkRankerTest {
    private fun makeNai(satisfy: Boolean, score: Int) = mock(NetworkAgentInfo::class.java).also {
        doReturn(satisfy).`when`(it).satisfies(any())
        doReturn(score).`when`(it).currentScore
        it.networkCapabilities = NetworkCapabilities()
    }

    @Test