diff options
| -rw-r--r-- | core/java/android/net/NetworkScore.java | 21 | ||||
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 41 | ||||
| -rw-r--r-- | tests/net/common/java/android/net/NetworkScoreTest.kt | 26 |
3 files changed, 13 insertions, 75 deletions
diff --git a/core/java/android/net/NetworkScore.java b/core/java/android/net/NetworkScore.java index d2e59eb89309..ae17378cfc4c 100644 --- a/core/java/android/net/NetworkScore.java +++ b/core/java/android/net/NetworkScore.java @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -86,7 +87,7 @@ public final class NetworkScore implements Parcelable { /** toString */ public String toString() { return "latency = " + latencyMs + " downlinkBandwidth = " + downlinkBandwidthKBps - + " uplinkBandwidth = " + uplinkBandwidthKBps; + + "uplinkBandwidth = " + uplinkBandwidthKBps; } @NonNull @@ -353,27 +354,17 @@ public final class NetworkScore implements Parcelable { private Metrics mLinkLayerMetrics = new Metrics(Metrics.LATENCY_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN); @NonNull - private Metrics mEndToEndMetrics = new Metrics(Metrics.LATENCY_UNKNOWN, + private Metrics mEndToMetrics = new Metrics(Metrics.LATENCY_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN); private int mSignalStrength = UNKNOWN_SIGNAL_STRENGTH; private int mRange = RANGE_UNKNOWN; private boolean mExiting = false; private int mLegacyScore = 0; + @NonNull private Bundle mExtensions = new Bundle(); /** Create a new builder. */ public Builder() { } - /** @hide */ - public Builder(@NonNull final NetworkScore source) { - mPolicy = source.mPolicy; - mLinkLayerMetrics = source.mLinkLayerMetrics; - mEndToEndMetrics = source.mEndToEndMetrics; - mSignalStrength = source.mSignalStrength; - mRange = source.mRange; - mExiting = source.mExiting; - mLegacyScore = source.mLegacyScore; - } - /** Add a policy flag. */ @NonNull public Builder addPolicy(@Policy final int policy) { mPolicy |= policy; @@ -394,7 +385,7 @@ public final class NetworkScore implements Parcelable { /** Set the end-to-end metrics. */ @NonNull public Builder setEndToEndMetrics(@NonNull final Metrics endToEndMetrics) { - mEndToEndMetrics = endToEndMetrics; + mEndToMetrics = endToEndMetrics; return this; } @@ -426,7 +417,7 @@ public final class NetworkScore implements Parcelable { /** Build the NetworkScore object represented by this builder. */ @NonNull public NetworkScore build() { - return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToEndMetrics, + return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToMetrics, mSignalStrength, mRange, mExiting, mLegacyScore); } } diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 7dab90d5cef0..60a30d331776 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3817,9 +3817,8 @@ public class ConnectivityService extends IConnectivityManager.Stub return avoidBadWifi(); } + private void rematchForAvoidBadWifiUpdate() { - ensureRunningOnConnectivityServiceThread(); - mixInAllNetworkScores(); rematchAllNetworksAndRequests(); for (NetworkAgentInfo nai: mNetworkAgentInfos.values()) { if (nai.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { @@ -7036,45 +7035,9 @@ public class ConnectivityService extends IConnectivityManager.Stub } } - /** - * Re-mixin all network scores. - * This is called when some global setting like avoidBadWifi has changed. - * TODO : remove this when all usages have been removed. - */ - private void mixInAllNetworkScores() { - ensureRunningOnConnectivityServiceThread(); - for (final NetworkAgentInfo nai : mNetworkAgentInfos.values()) { - nai.setNetworkScore(mixInNetworkScore(nai, nai.getNetworkScore())); - } - } - - /** - * Mix in the Connectivity-managed parts of the NetworkScore. - * @param nai The NAI this score applies to. - * @param sourceScore the score sent by the network agent, or the previous score of this NAI. - * @return A new score with the Connectivity-managed parts mixed in. - */ - @NonNull - private NetworkScore mixInNetworkScore(@NonNull final NetworkAgentInfo nai, - @NonNull final NetworkScore sourceScore) { - final NetworkScore.Builder score = new NetworkScore.Builder(sourceScore); - - // TODO : this should be done in Telephony. It should be handled per-network because - // it's a carrier-dependent config. - if (nai.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)) { - if (mMultinetworkPolicyTracker.getAvoidBadWifi()) { - score.clearPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI); - } else { - score.addPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI); - } - } - - return score.build(); - } - private void updateNetworkScore(NetworkAgentInfo nai, NetworkScore ns) { if (VDBG || DDBG) log("updateNetworkScore for " + nai.toShortString() + " to " + ns); - nai.setNetworkScore(mixInNetworkScore(nai, ns)); + nai.setNetworkScore(ns); rematchAllNetworksAndRequests(); sendUpdatedScoreToFactories(nai); } diff --git a/tests/net/common/java/android/net/NetworkScoreTest.kt b/tests/net/common/java/android/net/NetworkScoreTest.kt index 3e10992c62d8..a63d58d5a0f6 100644 --- a/tests/net/common/java/android/net/NetworkScoreTest.kt +++ b/tests/net/common/java/android/net/NetworkScoreTest.kt @@ -17,9 +17,6 @@ package android.net import android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN -import android.net.NetworkScore.POLICY_DEFAULT_SUBSCRIPTION -import android.net.NetworkScore.POLICY_IGNORE_ON_WIFI -import android.net.NetworkScore.RANGE_MEDIUM import androidx.test.filters.SmallTest import androidx.test.runner.AndroidJUnit4 import com.android.testutils.assertParcelSane @@ -42,19 +39,19 @@ class NetworkScoreTest { assertEquals(TEST_SCORE, builder.build().getLegacyScore()) assertParcelSane(builder.build(), 7) - builder.addPolicy(POLICY_IGNORE_ON_WIFI) - .addPolicy(POLICY_DEFAULT_SUBSCRIPTION) + builder.addPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI) + .addPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION) .setLinkLayerMetrics(NetworkScore.Metrics(44 /* latency */, 380 /* downlinkBandwidth */, BANDWIDTH_UNKNOWN /* uplinkBandwidth */)) .setEndToEndMetrics(NetworkScore.Metrics(11 /* latency */, BANDWIDTH_UNKNOWN /* downlinkBandwidth */, 100_000 /* uplinkBandwidth */)) .setRange(NetworkScore.RANGE_MEDIUM) assertParcelSane(builder.build(), 7) - builder.clearPolicy(POLICY_IGNORE_ON_WIFI) + builder.clearPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI) val ns = builder.build() assertParcelSane(ns, 7) - assertFalse(ns.hasPolicy(POLICY_IGNORE_ON_WIFI)) - assertTrue(ns.hasPolicy(POLICY_DEFAULT_SUBSCRIPTION)) + assertFalse(ns.hasPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)) + assertTrue(ns.hasPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION)) val exitingNs = ns.withExiting(true) assertNotEquals(ns.isExiting, exitingNs.isExiting) @@ -76,17 +73,4 @@ class NetworkScoreTest { assertTrue(builder1.build().equals(builder2.build())) assertEquals(builder1.build().hashCode(), builder2.build().hashCode()) } - - @Test - fun testBuilderEquals() { - val ns = NetworkScore.Builder() - .addPolicy(POLICY_IGNORE_ON_WIFI) - .addPolicy(POLICY_DEFAULT_SUBSCRIPTION) - .setExiting(true) - .setEndToEndMetrics(NetworkScore.Metrics(145, 2500, 1430)) - .setRange(RANGE_MEDIUM) - .setSignalStrength(400) - .build() - assertEquals(ns, NetworkScore.Builder(ns).build()) - } } |