diff options
author | Roshan Pius <rpius@google.com> | 2016-02-29 21:38:23 +0000 |
---|---|---|
committer | Android Partner Code Review <android-gerrit-partner@google.com> | 2016-02-29 21:38:23 +0000 |
commit | 60c716a0ed1549fe9e3e9e8528abc284f32a8aba (patch) | |
tree | 68789d1c84c70804b06b6468a145aa98c3bb43ba /service | |
parent | dfd0b0213860f726e25a8c17ab648e4e56a8abcc (diff) | |
parent | dc61ad4fe8a84909a288af50a8b187c98e2194b6 (diff) |
Merge "WifiConfigManager: Refactor remove network" into mm-wireless-dev
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigManager.java | 95 |
1 files changed, 46 insertions, 49 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 7be8871ff..86d9ce4d2 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -1336,67 +1336,69 @@ public class WifiConfigManager { boolean removeNetwork(int netId) { if (showNetworks) localLogNetwork("removeNetwork", netId); WifiConfiguration config = mConfiguredNetworks.getForCurrentUser(netId); - if (!mWifiConfigStore.removeNetwork(config)) { - loge("Failed to remove network " + netId); + if (!removeConfigAndSendBroadcastIfNeeded(config)) { return false; } - removeConfigAndSendBroadcastIfNeeded(netId); - if (config != null && config.isPasspoint()) { + if (config.isPasspoint()) { writePasspointConfigs(config.FQDN, null); } return true; } - static private Long getChecksum(String source) { Checksum csum = new CRC32(); csum.update(source.getBytes(), 0, source.getBytes().length); return csum.getValue(); } - private boolean removeConfigAndSendBroadcastIfNeeded(int netId) { - WifiConfiguration config = mConfiguredNetworks.getForCurrentUser(netId); - if (config != null) { - String key = config.configKey(); - if (VDBG) { - loge("removeNetwork " + netId + " key=" + key + " config.id=" + config.networkId); - } - - // cancel the last user choice - if (key.equals(lastSelectedConfiguration)) { - lastSelectedConfiguration = null; - } + private boolean removeConfigWithoutBroadcast(WifiConfiguration config) { + if (config == null) { + return false; + } + if (!mWifiConfigStore.removeNetwork(config)) { + loge("Failed to remove network " + config.networkId); + return false; + } + if (config.configKey().equals(lastSelectedConfiguration)) { + lastSelectedConfiguration = null; + } + mConfiguredNetworks.remove(config.networkId); + mScanDetailCaches.remove(config.networkId); + return true; + } - if (config.selfAdded || config.linkedConfigurations != null - || config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) { - if (!TextUtils.isEmpty(config.SSID)) { + private boolean removeConfigAndSendBroadcastIfNeeded(WifiConfiguration config) { + if (!removeConfigWithoutBroadcast(config)) { + return false; + } + String key = config.configKey(); + if (VDBG) { + logd("removeNetwork " + " key=" + key + " config.id=" + config.networkId); + } + if (config.selfAdded || config.linkedConfigurations != null + || config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) { + if (!TextUtils.isEmpty(config.SSID)) { /* Remember that we deleted this PSK SSID */ - if (config.SSID != null) { - Long csum = getChecksum(config.SSID); - mDeletedSSIDs.add(csum); - loge("removeNetwork " + netId - + " key=" + key - + " config.id=" + config.networkId - + " crc=" + csum); - } else { - loge("removeNetwork " + netId - + " key=" + key - + " config.id=" + config.networkId); - } + if (config.SSID != null) { + Long csum = getChecksum(config.SSID); + mDeletedSSIDs.add(csum); + logd("removeNetwork " + + " key=" + key + + " config.id=" + config.networkId + + " crc=" + csum); + } else { + logd("removeNetwork " + + " key=" + key + + " config.id=" + config.networkId); } } - - mConfiguredNetworks.remove(netId); - mScanDetailCaches.remove(netId); - - writeIpAndProxyConfigurations(); - sendConfiguredNetworksChangedBroadcast(config, WifiManager.CHANGE_REASON_REMOVED); - if (!config.ephemeral) { - removeUserSelectionPreference(key); - } - - writeKnownNetworkHistory(); } + writeIpAndProxyConfigurations(); + sendConfiguredNetworksChangedBroadcast(config, WifiManager.CHANGE_REASON_REMOVED); + if (!config.ephemeral) { + removeUserSelectionPreference(key); + } + writeKnownNetworkHistory(); return true; } @@ -2843,12 +2845,7 @@ public class WifiConfigManager { } if (!ephemeralConfigs.isEmpty()) { for (WifiConfiguration config : ephemeralConfigs) { - if (config.configKey().equals(lastSelectedConfiguration)) { - lastSelectedConfiguration = null; - } - mConfiguredNetworks.remove(config.networkId); - mScanDetailCaches.remove(config.networkId); - mWifiConfigStore.removeNetwork(config); + removeConfigWithoutBroadcast(config); } saveConfig(); writeKnownNetworkHistory(); |