Introduce an overlay for actively preferring bad wifi.
This correctly updates when the mcc/mnc change. Test: MultinetworkPolicyTrackerTest Change-Id: I11c7ea7074a15975fb68d39eb3c728778d84a516
This commit is contained in:
@@ -783,7 +783,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
final ConnectivityDiagnosticsHandler mConnectivityDiagnosticsHandler;
|
||||
|
||||
private final DnsManager mDnsManager;
|
||||
private final NetworkRanker mNetworkRanker;
|
||||
@VisibleForTesting
|
||||
final NetworkRanker mNetworkRanker;
|
||||
|
||||
private boolean mSystemReady;
|
||||
private Intent mInitialBroadcast;
|
||||
@@ -1417,7 +1418,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
new RequestInfoPerUidCounter(MAX_NETWORK_REQUESTS_PER_SYSTEM_UID - 1);
|
||||
|
||||
mMetricsLog = logger;
|
||||
mNetworkRanker = new NetworkRanker();
|
||||
final NetworkRequest defaultInternetRequest = createDefaultRequest();
|
||||
mDefaultRequest = new NetworkRequestInfo(
|
||||
Process.myUid(), defaultInternetRequest, null,
|
||||
@@ -1538,6 +1538,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
|
||||
mMultinetworkPolicyTracker = mDeps.makeMultinetworkPolicyTracker(
|
||||
mContext, mHandler, () -> updateAvoidBadWifi());
|
||||
mNetworkRanker =
|
||||
new NetworkRanker(new NetworkRanker.Configuration(activelyPreferBadWifi()));
|
||||
|
||||
mMultinetworkPolicyTracker.start();
|
||||
|
||||
mDnsManager = new DnsManager(mContext, mDnsResolver);
|
||||
@@ -5050,6 +5053,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
return mMultinetworkPolicyTracker.getAvoidBadWifi();
|
||||
}
|
||||
|
||||
private boolean activelyPreferBadWifi() {
|
||||
return mMultinetworkPolicyTracker.getActivelyPreferBadWifi();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether the device should maintain continuous, working connectivity by switching away
|
||||
* from WiFi networks having no connectivity.
|
||||
@@ -5073,6 +5080,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
for (final NetworkOfferInfo noi : offersToUpdate) {
|
||||
updateOfferScore(noi.offer);
|
||||
}
|
||||
mNetworkRanker.setConfiguration(new NetworkRanker.Configuration(activelyPreferBadWifi()));
|
||||
rematchAllNetworksAndRequests();
|
||||
}
|
||||
|
||||
@@ -5088,6 +5096,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
pw.println("Bad Wi-Fi avoidance: " + avoidBadWifi());
|
||||
pw.increaseIndent();
|
||||
pw.println("Config restrict: " + configRestrict);
|
||||
pw.println("Actively prefer: " + activelyPreferBadWifi());
|
||||
|
||||
final String value = mMultinetworkPolicyTracker.getAvoidBadWifiSetting();
|
||||
String description;
|
||||
|
||||
Reference in New Issue
Block a user