Merge "Change initial value of mStaleScanResults to true." into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-07-08 03:06:37 +00:00
committed by Android (Google) Code Review
2 changed files with 36 additions and 12 deletions

View File

@@ -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:

View File

@@ -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();