summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-02-29 21:38:23 +0000
committerAndroid Partner Code Review <android-gerrit-partner@google.com>2016-02-29 21:38:23 +0000
commit60c716a0ed1549fe9e3e9e8528abc284f32a8aba (patch)
tree68789d1c84c70804b06b6468a145aa98c3bb43ba /service
parentdfd0b0213860f726e25a8c17ab648e4e56a8abcc (diff)
parentdc61ad4fe8a84909a288af50a8b187c98e2194b6 (diff)
Merge "WifiConfigManager: Refactor remove network" into mm-wireless-dev
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java95
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();