Revert "Scan for 2.4Ghz, 5GHz, and 6GHz RNR before the rest of the channels."
This reverts commit d68a18c1100827135261350e262f4ab65613c36c.
Reason for revert: b/274616058
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8cd75921019f02a6789a067982f8fc516e90a11b)
Merged-In: Id35277aef2a84dd8e3be5fa1f884d8fe129803f3
Change-Id: Id35277aef2a84dd8e3be5fa1f884d8fe129803f3
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index 0df423d..8081ba7 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -31,9 +31,7 @@
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
-import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
-import android.net.wifi.WifiScanner;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
@@ -58,7 +56,6 @@
import androidx.lifecycle.OnLifecycleEvent;
import java.time.Clock;
-import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
@@ -608,59 +605,11 @@
/**
* Scanner to handle starting scans every SCAN_INTERVAL_MILLIS
*/
- @WorkerThread
private class Scanner extends Handler {
private static final int SCAN_RETRY_TIMES = 3;
private int mRetry = 0;
private boolean mIsActive;
- private final WifiScanner.ScanListener mFirstScanListener = new WifiScanner.ScanListener() {
- @Override
- public void onPeriodChanged(int periodInMs) {
- // No-op.
- }
-
- @Override
- public void onResults(WifiScanner.ScanData[] results) {
- if (!mIsActive) {
- return;
- }
- if (sVerboseLogging) {
- Log.v(mTag, "Received scan results from first scan request.");
- }
- List<ScanResult> scanResults = new ArrayList<>();
- if (results != null) {
- for (WifiScanner.ScanData scanData : results) {
- scanResults.addAll(List.of(scanData.getResults()));
- }
- }
- // Fake a SCAN_RESULTS_AVAILABLE_ACTION. The results should already be populated in
- // mScanResultUpdater, which is the source of truth for the child classes.
- mScanResultUpdater.update(scanResults);
- handleScanResultsAvailableAction(
- new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)
- .putExtra(WifiManager.EXTRA_RESULTS_UPDATED, true));
- // Now start scanning via WifiManager.startScan().
- postScan();
- }
-
- @Override
- public void onFullResult(ScanResult fullScanResult) {
- // No-op.
- }
-
- @Override
- public void onSuccess() {
- // No-op.
- }
-
- @Override
- public void onFailure(int reason, String description) {
- Log.e(mTag, "Failed to scan! Reason: " + reason + ", ");
- // First scan failed, start scanning normally anyway.
- postScan();
- }
- };
private Scanner(Looper looper) {
super(looper);
@@ -672,23 +621,6 @@
if (isVerboseLoggingEnabled()) {
Log.v(mTag, "Scanner start");
}
- if (BuildCompat.isAtLeastU()) {
- // Start off with a fast scan of 2.4GHz, 5GHz, and 6GHz RNR using WifiScanner.
- // After this is done, fall back to WifiManager.startScan() to get the rest of
- // the bands and hidden networks.
- // TODO(b/274177966): Move to using WifiScanner exclusively once we have
- // permission to use ScanSettings.hiddenNetworks.
- WifiScanner.ScanSettings scanSettings = new WifiScanner.ScanSettings();
- scanSettings.band = WifiScanner.WIFI_BAND_BOTH;
- scanSettings.setRnrSetting(WifiScanner.WIFI_RNR_ENABLED);
- WifiScanner wifiScanner = mContext.getSystemService(WifiScanner.class);
- if (wifiScanner != null) {
- wifiScanner.startScan(scanSettings, mFirstScanListener);
- return;
- } else {
- Log.e(mTag, "Failed to retrieve WifiScanner!");
- }
- }
postScan();
}
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index 7e650a8..7845203 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -35,7 +35,6 @@
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -54,7 +53,6 @@
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
-import android.net.wifi.WifiScanner;
import android.net.wifi.hotspot2.PasspointConfiguration;
import android.net.wifi.hotspot2.pps.Credential;
import android.net.wifi.hotspot2.pps.HomeSp;
@@ -97,7 +95,6 @@
@Mock private Context mMockContext;
@Mock private Resources mMockResources;
@Mock private WifiManager mMockWifiManager;
- @Mock private WifiScanner mWifiScanner;
@Mock private ConnectivityManager mMockConnectivityManager;
@Mock private ConnectivityDiagnosticsManager mMockConnectivityDiagnosticsManager;
@Mock private TelephonyManager mMockTelephonyManager;
@@ -192,7 +189,6 @@
.thenReturn(mMockSubscriptionManager);
when(mMockContext.getSystemService(ConnectivityDiagnosticsManager.class))
.thenReturn(mMockConnectivityDiagnosticsManager);
- when(mMockContext.getSystemService(WifiScanner.class)).thenReturn(mWifiScanner);
when(mMockContext.getString(anyInt())).thenReturn("");
}
@@ -1993,56 +1989,4 @@
verify(mMockConnectivityManager).unregisterNetworkCallback(
mDefaultNetworkCallbackCaptor.getValue());
}
-
- /**
- * Tests that the BaseWifiTracker.Scanner continues scanning with WifiManager.startScan() after
- * the first WifiScanner result is received.
- */
- @Test
- public void testScanner_wifiScannerResultReceived_scannerContinues() {
- final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
- wifiPickerTracker.onStart();
- mTestLooper.dispatchAll();
- verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
- any(), any(), any());
- mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
- new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION).putExtra(
- WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_ENABLED));
-
- ArgumentCaptor<WifiScanner.ScanListener> mScanListenerCaptor =
- ArgumentCaptor.forClass(WifiScanner.ScanListener.class);
- verify(mWifiScanner).startScan(any(), mScanListenerCaptor.capture());
- mTestLooper.moveTimeForward(SCAN_INTERVAL_MILLIS);
- mTestLooper.dispatchAll();
- verify(mMockWifiManager, never()).startScan();
-
- mScanListenerCaptor.getValue().onResults(null);
- verify(mMockWifiManager).startScan();
- }
-
- /**
- * Tests that the BaseWifiTracker.Scanner continues scanning with WifiManager.startScan() after
- * the first WifiScanner scan fails.
- */
- @Test
- public void testScanner_wifiScannerFailed_scannerContinues() {
- final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
- wifiPickerTracker.onStart();
- mTestLooper.dispatchAll();
- verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
- any(), any(), any());
- mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
- new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION).putExtra(
- WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_ENABLED));
-
- ArgumentCaptor<WifiScanner.ScanListener> mScanListenerCaptor =
- ArgumentCaptor.forClass(WifiScanner.ScanListener.class);
- verify(mWifiScanner).startScan(any(), mScanListenerCaptor.capture());
- mTestLooper.moveTimeForward(SCAN_INTERVAL_MILLIS);
- mTestLooper.dispatchAll();
- verify(mMockWifiManager, never()).startScan();
-
- mScanListenerCaptor.getValue().onFailure(0, "Reason");
- verify(mMockWifiManager).startScan();
- }
}