summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/connectivity/NetworkRanker.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/connectivity/NetworkRanker.java b/services/core/java/com/android/server/connectivity/NetworkRanker.java
index 1ae7dc5c3676..d0aabf95d572 100644
--- a/services/core/java/com/android/server/connectivity/NetworkRanker.java
+++ b/services/core/java/com/android/server/connectivity/NetworkRanker.java
@@ -20,7 +20,6 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.NetworkRequest;
-import java.util.ArrayList;
import java.util.Collection;
/**
@@ -32,15 +31,15 @@ public class NetworkRanker {
/**
* Find the best network satisfying this request among the list of passed networks.
*/
+ // Almost equivalent to Collections.max(nais), but allows returning null if no network
+ // satisfies the request.
@Nullable
public NetworkAgentInfo getBestNetwork(@NonNull final NetworkRequest request,
@NonNull final Collection<NetworkAgentInfo> nais) {
- final ArrayList<NetworkAgentInfo> candidates = new ArrayList<>(nais);
- candidates.removeIf(nai -> !nai.satisfies(request));
-
NetworkAgentInfo bestNetwork = null;
int bestScore = Integer.MIN_VALUE;
- for (final NetworkAgentInfo nai : candidates) {
+ for (final NetworkAgentInfo nai : nais) {
+ if (!nai.satisfies(request)) continue;
if (nai.getCurrentScore() > bestScore) {
bestNetwork = nai;
bestScore = nai.getCurrentScore();