diff options
Diffstat (limited to 'packages/SettingsLib/src')
| -rwxr-xr-x | packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java | 6 | ||||
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java | 34 |
2 files changed, 27 insertions, 13 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java index d3e7104..9a2f71c 100755 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java @@ -348,8 +348,12 @@ public final class BluetoothEventManager { Log.e(TAG, "ACTION_PAIRING_CANCEL with no EXTRA_DEVICE"); return; } - int errorMsg = R.string.bluetooth_pairing_error_message; CachedBluetoothDevice cachedDevice = mDeviceManager.findDevice(device); + if (cachedDevice == null) { + Log.e(TAG, "ACTION_PAIRING_CANCEL with no cached device"); + return; + } + int errorMsg = R.string.bluetooth_pairing_error_message; Utils.showError(context, cachedDevice.getName(), errorMsg); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index cf3b7c8..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 @@ public class WifiTracker { } 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 @@ public class WifiTracker { 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 @@ public class WifiTracker { 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; } } } |
