diff options
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigManager.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 60abbca7e..b371bdd9a 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -2251,7 +2251,8 @@ public class WifiConfigManager { mConfiguredNetworks.put(currentConfig); - NetworkUpdateResult result = writeIpAndProxyConfigurationsOnChange(currentConfig, config); + NetworkUpdateResult result = + writeIpAndProxyConfigurationsOnChange(currentConfig, config, newNetwork); result.setIsNewNetwork(newNetwork); result.setNetworkId(netId); @@ -2850,16 +2851,11 @@ public class WifiConfigManager { /* Compare current and new configuration and write to file on change */ private NetworkUpdateResult writeIpAndProxyConfigurationsOnChange( WifiConfiguration currentConfig, - WifiConfiguration newConfig) { + WifiConfiguration newConfig, + boolean isNewNetwork) { boolean ipChanged = false; boolean proxyChanged = false; - if (VDBG) { - loge("writeIpAndProxyConfigurationsOnChange: " + currentConfig.SSID + " -> " + - newConfig.SSID + " path: " + ipConfigFile); - } - - switch (newConfig.getIpAssignment()) { case STATIC: if (currentConfig.getIpAssignment() != newConfig.getIpAssignment()) { @@ -2927,10 +2923,12 @@ public class WifiConfigManager { } } - if (ipChanged || proxyChanged) { + if (ipChanged || proxyChanged || isNewNetwork) { + if (VDBG) { + logd("writeIpAndProxyConfigurationsOnChange: " + currentConfig.SSID + " -> " + + newConfig.SSID + " path: " + ipConfigFile); + } writeIpAndProxyConfigurations(); - sendConfiguredNetworksChangedBroadcast(currentConfig, - WifiManager.CHANGE_REASON_CONFIG_CHANGE); } return new NetworkUpdateResult(ipChanged, proxyChanged); } |