diff options
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index c28288eb91b1..d3236d30bac4 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java @@ -470,20 +470,7 @@ public class WifiTracker { } private void updateWifiState(int state) { - if (state == WifiManager.WIFI_STATE_ENABLED) { - if (mScanner != null) { - // We only need to resume if mScanner isn't null because - // that means we want to be scanning. - mScanner.resume(); - } - } else { - mLastInfo = null; - mLastNetworkInfo = null; - if (mScanner != null) { - mScanner.pause(); - } - } - mMainHandler.obtainMessage(MainHandler.MSG_WIFI_STATE_CHANGED, state, 0).sendToTarget(); + mWorkHandler.obtainMessage(WorkHandler.MSG_UPDATE_WIFI_STATE, state, 0).sendToTarget(); } public static List<AccessPoint> getCurrentAccessPoints(Context context, boolean includeSaved, @@ -566,6 +553,7 @@ public class WifiTracker { private static final int MSG_UPDATE_ACCESS_POINTS = 0; private static final int MSG_UPDATE_NETWORK_INFO = 1; private static final int MSG_RESUME = 2; + private static final int MSG_UPDATE_WIFI_STATE = 3; public WorkHandler(Looper looper) { super(looper); @@ -583,6 +571,23 @@ public class WifiTracker { case MSG_RESUME: handleResume(); break; + case MSG_UPDATE_WIFI_STATE: + if (msg.arg1 == WifiManager.WIFI_STATE_ENABLED) { + if (mScanner != null) { + // We only need to resume if mScanner isn't null because + // that means we want to be scanning. + mScanner.resume(); + } + } else { + mLastInfo = null; + mLastNetworkInfo = null; + if (mScanner != null) { + mScanner.pause(); + } + } + mMainHandler.obtainMessage(MainHandler.MSG_WIFI_STATE_CHANGED, msg.arg1, 0) + .sendToTarget(); + break; } } } |