diff options
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index 646b6ba84ebb..be15e657d1c3 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java @@ -124,7 +124,8 @@ public class WifiTracker { */ private final Object mLock = new Object(); - //visible to both worker and main thread. Guarded by #mInternalAccessPoints + //visible to both worker and main thread. + @GuardedBy("mLock") private final AccessPointListenerAdapter mAccessPointListenerAdapter = new AccessPointListenerAdapter(); @@ -1005,12 +1006,13 @@ public class WifiTracker { if (DBG) { Log.d(TAG, "Starting to copy AP items on the MainHandler"); } - if (notifyListeners) { - notificationMap = mAccessPointListenerAdapter.mPendingNotifications.clone(); - } - - mAccessPointListenerAdapter.mPendingNotifications.clear(); synchronized (mLock) { + if (notifyListeners) { + notificationMap = mAccessPointListenerAdapter.mPendingNotifications.clone(); + } + + mAccessPointListenerAdapter.mPendingNotifications.clear(); + for (AccessPoint internalAccessPoint : mInternalAccessPoints) { AccessPoint accessPoint = oldAccessPoints.get(internalAccessPoint.mId); if (accessPoint == null) { |