From ab9a573e3138911e08d037a6996297be30be20bc Mon Sep 17 00:00:00 2001 From: pkanwar Date: Mon, 26 Dec 2016 09:57:50 -0800 Subject: DO NOT MERGE ANYWHERE: Connect to Carrier networks if enabled in Settings. After this change the WifiQualifiedSelector will only connect to Carrier networks if enabled in the Settings. Provided a method in WifiConfigManager that will be used to decide if we try connecing to the Carrier network. BUG: 30760683 Change-Id: I5c6841f784bd82f3811837331d3dd0c795da7688 --- service/java/com/android/server/wifi/WifiConfigManager.java | 9 +++++++++ .../com/android/server/wifi/WifiQualifiedNetworkSelector.java | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'service') diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 774d75ec7..32a4113e9 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -3318,4 +3318,13 @@ public class WifiConfigManager { public boolean wasEphemeralNetworkDeleted(String ssid) { return mDeletedEphemeralSSIDs.contains(ssid); } + + /** + * Check if the User has enabled connecting to carrier networks from Settings. + * @return true if enabled in Settings, false otherwise. + */ + public boolean getIsCarrierNetworkEnabledByUser() { + return android.provider.Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.WIFI_CONNECT_CARRIER_NETWORKS, 0) == 1; + } } diff --git a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java index 4f63a5bbd..a135e0b76 100644 --- a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java +++ b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java @@ -748,6 +748,9 @@ public class WifiQualifiedNetworkSelector { ArrayList unscoredNetworks = new ArrayList(); boolean scanResultsHaveCurrentBssid = false; + localLog("isCarrierNetworkEnabledByUser: " + + mWifiConfigManager.getIsCarrierNetworkEnabledByUser()); + //iterate all scan results and find the best candidate with the highest score for (ScanDetail scanDetail : mScanDetails) { ScanResult scanResult = scanDetail.getScanResult(); @@ -840,7 +843,8 @@ public class WifiQualifiedNetworkSelector { // Evaluate the carrier network as a possible candidate. // todo need to add flag isCarrierConnectionsAllowed, config in settings. } else if (!mCarrierConfiguredNetworks.isEmpty() && - isCarrierNetwork(scanResult)) { + isCarrierNetwork(scanResult) && + mWifiConfigManager.getIsCarrierNetworkEnabledByUser()) { localLog("Checking the carrierScoreEvaluator for candidates..."); carrierScoreEvaluator.evalCarrierCandidate(scanResult, getCarrierScore(scanResult, mCurrentConnectedNetwork, -- cgit v1.2.3