Merge "SettingsLib/Wifi: Run pause/resumes on main thread" into mnc-dev
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index cf3b7c87..09c93e9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -357,19 +357,17 @@
}
private void updateNetworkInfo(NetworkInfo networkInfo) {
- if (mScanner != null) {
- /* sticky broadcasts can call this when wifi is disabled */
- if (!mWifiManager.isWifiEnabled()) {
- mScanner.pause();
- return;
- }
+ /* sticky broadcasts can call this when wifi is disabled */
+ if (!mWifiManager.isWifiEnabled()) {
+ mMainHandler.sendEmptyMessage(MainHandler.MSG_PAUSE_SCANNING);
+ return;
+ }
- if (networkInfo != null &&
- networkInfo.getDetailedState() == DetailedState.OBTAINING_IPADDR) {
- mScanner.pause();
- } else {
- mScanner.resume();
- }
+ if (networkInfo != null &&
+ networkInfo.getDetailedState() == DetailedState.OBTAINING_IPADDR) {
+ mMainHandler.sendEmptyMessage(MainHandler.MSG_PAUSE_SCANNING);
+ } else {
+ mMainHandler.sendEmptyMessage(MainHandler.MSG_RESUME_SCANNING);
}
mLastInfo = mWifiManager.getConnectionInfo();
@@ -448,6 +446,8 @@
private static final int MSG_CONNECTED_CHANGED = 0;
private static final int MSG_WIFI_STATE_CHANGED = 1;
private static final int MSG_ACCESS_POINT_CHANGED = 2;
+ private static final int MSG_RESUME_SCANNING = 3;
+ private static final int MSG_PAUSE_SCANNING = 4;
public MainHandler(Looper looper) {
super(looper);
@@ -468,6 +468,16 @@
case MSG_ACCESS_POINT_CHANGED:
mListener.onAccessPointsChanged();
break;
+ case MSG_RESUME_SCANNING:
+ if (mScanner != null) {
+ mScanner.resume();
+ }
+ break;
+ case MSG_PAUSE_SCANNING:
+ if (mScanner != null) {
+ mScanner.pause();
+ }
+ break;
}
}
}