diff options
author | Irfan Sheriff <isheriff@google.com> | 2013-04-25 23:22:41 -0700 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2013-04-25 23:27:19 -0700 |
commit | cca308e3e841731662d3ceacf3c631ce5ecf8fb2 (patch) | |
tree | 0be75eea0b2f2f3ef1c9ad88964804875a80d3ee /wifi | |
parent | 89a6081447fc5c454aad3aea02190a576d92ca1b (diff) | |
download | frameworks_base-cca308e3e841731662d3ceacf3c631ce5ecf8fb2.zip frameworks_base-cca308e3e841731662d3ceacf3c631ce5ecf8fb2.tar.gz frameworks_base-cca308e3e841731662d3ceacf3c631ce5ecf8fb2.tar.bz2 |
Fix network reload when config is restored
With scan mode opted in, supplicant connection is not shut
down even when wifi is turned off. This is a problem since
networks need to be reloaded when wifi is turned off and turned on
and this currently happens only on a supplicant connection.
Fix to handle this for scan mode state.
Bug: 8714796
Change-Id: I7d66c39fb51018fb52e783341222cea993993893
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/WifiConfigStore.java | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfigStore.java b/wifi/java/android/net/wifi/WifiConfigStore.java index 23a4e71..9418de1 100644 --- a/wifi/java/android/net/wifi/WifiConfigStore.java +++ b/wifi/java/android/net/wifi/WifiConfigStore.java @@ -156,7 +156,7 @@ class WifiConfigStore { * Fetch the list of configured networks * and enable all stored networks in supplicant. */ - void initialize() { + void loadAndEnableAllNetworks() { if (DBG) log("Loading config and enabling all networks"); loadConfiguredNetworks(); enableAllNetworks(); diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 2c3df95..9cae2cb 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1111,6 +1111,7 @@ public class WifiStateMachine extends StateMachine { pw.println("mUserWantsSuspendOpt " + mUserWantsSuspendOpt); pw.println("mSuspendOptNeedsDisabled " + mSuspendOptNeedsDisabled); pw.println("Supplicant status " + mWifiNative.status()); + pw.println("mEnableBackgroundScan " + mEnableBackgroundScan); pw.println(); mWifiConfigStore.dump(fd, pw, args); } @@ -2121,7 +2122,7 @@ public class WifiStateMachine extends StateMachine { mLastSignalLevel = -1; mWifiInfo.setMacAddress(mWifiNative.getMacAddress()); - mWifiConfigStore.initialize(); + mWifiConfigStore.loadAndEnableAllNetworks(); initializeWpsDetails(); sendSupplicantConnectionChangedBroadcast(true); @@ -2657,9 +2658,13 @@ public class WifiStateMachine extends StateMachine { public void exit() { if (mLastOperationMode == SCAN_ONLY_WITH_WIFI_OFF_MODE) { setWifiState(WIFI_STATE_ENABLED); + // Load and re-enable networks when going back to enabled state + // This is essential for networks to show up after restore + mWifiConfigStore.loadAndEnableAllNetworks(); mWifiP2pChannel.sendMessage(CMD_ENABLE_P2P); + } else { + mWifiConfigStore.enableAllNetworks(); } - mWifiConfigStore.enableAllNetworks(); mWifiNative.reconnect(); } @Override |