Merge "Change initial value of mStaleScanResults to true." into oc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e72ec3cab2
@@ -16,7 +16,6 @@
|
||||
package com.android.settingslib.wifi;
|
||||
|
||||
import android.annotation.MainThread;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -144,7 +143,7 @@ public class WifiTracker {
|
||||
|
||||
@VisibleForTesting
|
||||
Scanner mScanner;
|
||||
private boolean mStaleScanResults = false;
|
||||
private boolean mStaleScanResults = true;
|
||||
|
||||
public WifiTracker(Context context, WifiListener wifiListener,
|
||||
boolean includeSaved, boolean includeScans) {
|
||||
@@ -767,20 +766,21 @@ 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) ||
|
||||
WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action) ||
|
||||
WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) {
|
||||
} else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
|
||||
mWorkHandler
|
||||
.obtainMessage(
|
||||
WorkHandler.MSG_UPDATE_ACCESS_POINTS,
|
||||
WorkHandler.CLEAR_STALE_SCAN_RESULTS,
|
||||
0)
|
||||
.sendToTarget();
|
||||
} else if (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 = (NetworkInfo) intent.getParcelableExtra(
|
||||
WifiManager.EXTRA_NETWORK_INFO);
|
||||
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
|
||||
mConnected.set(info.isConnected());
|
||||
|
||||
mMainHandler.sendEmptyMessage(MainHandler.MSG_CONNECTED_CHANGED);
|
||||
@@ -872,6 +872,8 @@ public class WifiTracker {
|
||||
private static final int MSG_RESUME = 2;
|
||||
private static final int MSG_UPDATE_WIFI_STATE = 3;
|
||||
|
||||
private static final int CLEAR_STALE_SCAN_RESULTS = 1;
|
||||
|
||||
public WorkHandler(Looper looper) {
|
||||
super(looper);
|
||||
}
|
||||
@@ -888,6 +890,9 @@ public class WifiTracker {
|
||||
|
||||
switch (msg.what) {
|
||||
case MSG_UPDATE_ACCESS_POINTS:
|
||||
if (msg.arg1 == CLEAR_STALE_SCAN_RESULTS) {
|
||||
mStaleScanResults = false;
|
||||
}
|
||||
updateAccessPoints();
|
||||
break;
|
||||
case MSG_UPDATE_NETWORK_INFO:
|
||||
|
||||
@@ -724,7 +724,7 @@ public class WifiTrackerTest {
|
||||
verify(mockWifiManager, times(2)).getConfiguredNetworks();
|
||||
verify(mockConnectivityManager).getNetworkInfo(any(Network.class));
|
||||
|
||||
verify(mockWifiListener).onAccessPointsChanged();
|
||||
verify(mockWifiListener, never()).onAccessPointsChanged(); // mStaleAccessPoints is true
|
||||
assertThat(tracker.getAccessPoints().size()).isEqualTo(2);
|
||||
assertThat(tracker.getAccessPoints().get(0).isActive()).isTrue();
|
||||
}
|
||||
@@ -797,6 +797,25 @@ 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();
|
||||
|
||||
Reference in New Issue
Block a user