Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +10 −24 Original line number Diff line number Diff line Loading @@ -144,15 +144,7 @@ public class WifiTracker { @VisibleForTesting Scanner mScanner; /** * Bit used to indicate that a SCAN_RESULTS_AVAILABLE_ACTION broadcast has not been received * since the last time tracking was resumed. * * <p>This bit is used to prevent callbacks to {@link WifiListener#onAccessPointChanged()} that * would result in stale data being fetched. */ private boolean mStaleScanResults = true; private boolean mStaleScanResults = false; public WifiTracker(Context context, WifiListener wifiListener, boolean includeSaved, boolean includeScans) { Loading Loading @@ -775,21 +767,20 @@ public class WifiTracker { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { mStaleScanResults = false; } if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { updateWifiState(intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN)); } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { Message.obtain( mWorkHandler, WorkHandler.MSG_UPDATE_ACCESS_POINTS, WorkHandler.ARG_CLEAR_STALE_SCAN_RESULTS, 0) .sendToTarget(); } else if (WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action) || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) { } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action) || WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action) || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) { mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); NetworkInfo info = (NetworkInfo) intent.getParcelableExtra( WifiManager.EXTRA_NETWORK_INFO); mConnected.set(info.isConnected()); mMainHandler.sendEmptyMessage(MainHandler.MSG_CONNECTED_CHANGED); Loading Loading @@ -881,8 +872,6 @@ public class WifiTracker { private static final int MSG_RESUME = 2; private static final int MSG_UPDATE_WIFI_STATE = 3; private static final int ARG_CLEAR_STALE_SCAN_RESULTS = 1; public WorkHandler(Looper looper) { super(looper); } Loading @@ -899,9 +888,6 @@ public class WifiTracker { switch (msg.what) { case MSG_UPDATE_ACCESS_POINTS: if (msg.arg1 == ARG_CLEAR_STALE_SCAN_RESULTS) { mStaleScanResults = false; } updateAccessPoints(); break; case MSG_UPDATE_NETWORK_INFO: Loading packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +1 −20 Original line number Diff line number Diff line Loading @@ -724,7 +724,7 @@ public class WifiTrackerTest { verify(mockWifiManager, times(2)).getConfiguredNetworks(); verify(mockConnectivityManager).getNetworkInfo(any(Network.class)); verify(mockWifiListener, never()).onAccessPointsChanged(); // mStaleAccessPoints is true verify(mockWifiListener).onAccessPointsChanged(); assertThat(tracker.getAccessPoints().size()).isEqualTo(2); assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue(); } Loading Loading @@ -797,25 +797,6 @@ public class WifiTrackerTest { sendScanResultsAndProcess(tracker); // verifies onAccessPointsChanged is invoked } @Test public void startTrackingShouldNotSendAnyCallbacksUntilScanResultsAreProcessed() throws Exception { WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); waitForHandlersToProcessCurrentlyEnqueuedMessages(tracker); tracker.mReceiver.onReceive(mContext, new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION)); tracker.mReceiver.onReceive( mContext, new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION)); tracker.mReceiver.onReceive( mContext, new Intent(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION)); waitForHandlersToProcessCurrentlyEnqueuedMessages(tracker); verify(mockWifiListener, never()).onAccessPointsChanged(); sendScanResultsAndProcess(tracker); // verifies onAccessPointsChanged is invoked } @Test public void disablingWifiShouldClearExistingAccessPoints() throws Exception { WifiTracker tracker = createTrackerWithScanResultsAndAccessPoint1Connected(); Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +10 −24 Original line number Diff line number Diff line Loading @@ -144,15 +144,7 @@ public class WifiTracker { @VisibleForTesting Scanner mScanner; /** * Bit used to indicate that a SCAN_RESULTS_AVAILABLE_ACTION broadcast has not been received * since the last time tracking was resumed. * * <p>This bit is used to prevent callbacks to {@link WifiListener#onAccessPointChanged()} that * would result in stale data being fetched. */ private boolean mStaleScanResults = true; private boolean mStaleScanResults = false; public WifiTracker(Context context, WifiListener wifiListener, boolean includeSaved, boolean includeScans) { Loading Loading @@ -775,21 +767,20 @@ public class WifiTracker { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { mStaleScanResults = false; } if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { updateWifiState(intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN)); } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { Message.obtain( mWorkHandler, WorkHandler.MSG_UPDATE_ACCESS_POINTS, WorkHandler.ARG_CLEAR_STALE_SCAN_RESULTS, 0) .sendToTarget(); } else if (WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action) || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) { } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action) || WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action) || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) { mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); NetworkInfo info = (NetworkInfo) intent.getParcelableExtra( WifiManager.EXTRA_NETWORK_INFO); mConnected.set(info.isConnected()); mMainHandler.sendEmptyMessage(MainHandler.MSG_CONNECTED_CHANGED); Loading Loading @@ -881,8 +872,6 @@ public class WifiTracker { private static final int MSG_RESUME = 2; private static final int MSG_UPDATE_WIFI_STATE = 3; private static final int ARG_CLEAR_STALE_SCAN_RESULTS = 1; public WorkHandler(Looper looper) { super(looper); } Loading @@ -899,9 +888,6 @@ public class WifiTracker { switch (msg.what) { case MSG_UPDATE_ACCESS_POINTS: if (msg.arg1 == ARG_CLEAR_STALE_SCAN_RESULTS) { mStaleScanResults = false; } updateAccessPoints(); break; case MSG_UPDATE_NETWORK_INFO: Loading
packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +1 −20 Original line number Diff line number Diff line Loading @@ -724,7 +724,7 @@ public class WifiTrackerTest { verify(mockWifiManager, times(2)).getConfiguredNetworks(); verify(mockConnectivityManager).getNetworkInfo(any(Network.class)); verify(mockWifiListener, never()).onAccessPointsChanged(); // mStaleAccessPoints is true verify(mockWifiListener).onAccessPointsChanged(); assertThat(tracker.getAccessPoints().size()).isEqualTo(2); assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue(); } Loading Loading @@ -797,25 +797,6 @@ public class WifiTrackerTest { sendScanResultsAndProcess(tracker); // verifies onAccessPointsChanged is invoked } @Test public void startTrackingShouldNotSendAnyCallbacksUntilScanResultsAreProcessed() throws Exception { WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); waitForHandlersToProcessCurrentlyEnqueuedMessages(tracker); tracker.mReceiver.onReceive(mContext, new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION)); tracker.mReceiver.onReceive( mContext, new Intent(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION)); tracker.mReceiver.onReceive( mContext, new Intent(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION)); waitForHandlersToProcessCurrentlyEnqueuedMessages(tracker); verify(mockWifiListener, never()).onAccessPointsChanged(); sendScanResultsAndProcess(tracker); // verifies onAccessPointsChanged is invoked } @Test public void disablingWifiShouldClearExistingAccessPoints() throws Exception { WifiTracker tracker = createTrackerWithScanResultsAndAccessPoint1Connected(); Loading