Revert "WifiScanningService: Don't cache results of partial scan"

This reverts commit 68d85c9d9cfd9200591cde01d031fe4a961f5567.
BUG: 62394341

Change-Id: Ice9c5d34a374d5a600e0797504d3c4774e4b2ace
diff --git a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
index d73bf05..ef881da 100644
--- a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
+++ b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java
@@ -447,7 +447,6 @@
         private RequestList<ScanSettings> mActiveScans = new RequestList<>();
         private RequestList<ScanSettings> mPendingScans = new RequestList<>();
 
-        // Scan results cached from the last full single scan request.
         private ScanResult[] mCachedScanResults = new ScanResult[0];
 
         WifiSingleScanStateMachine(Looper looper) {
@@ -880,11 +879,8 @@
                 entry.reportEvent(WifiScanner.CMD_SCAN_RESULT, 0, parcelableAllResults);
             }
 
-            // Since we use NoBandChannelHelper, as long as a specific band is mentioned, the scan
-            // request is treated as full band (WifiScanner.WIFI_BAND_*).
-            if (results.isAllChannelsScanned()) {
-                mCachedScanResults = results.getResults();
-            }
+            // Cache the results here so that apps can retrieve them.
+            mCachedScanResults = results.getResults();
             sendScanResultBroadcast(true);
         }
 
diff --git a/service/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java b/service/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java
index d9fbb1d..e7c5fa9 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/scanner/WifiScanningServiceTest.java
@@ -1257,10 +1257,10 @@
     }
 
     /**
-     * Verify that the newest full scan results are returned by WifiService.getSingleScanResults.
+     * Verify that the newest scan results are returned by WifiService.getSingleScanResults.
      */
     @Test
-    public void retrieveMostRecentFullSingleScanResults() throws Exception {
+    public void retrieveMostRecentSingleScanResults() throws Exception {
         WifiScanner.ScanSettings requestSettings = createRequest(WifiScanner.WIFI_BAND_BOTH, 0,
                 0, 20, WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN);
         ScanResults expectedResults = ScanResults.create(0, true, 2400, 5150, 5175);
@@ -1312,64 +1312,6 @@
     }
 
     /**
-     * Verify that the newest partial scan results are not returned by
-     * WifiService.getSingleScanResults.
-     */
-    @Test
-    public void doesNotRetrieveMostRecentPartialSingleScanResults() throws Exception {
-        WifiScanner.ScanSettings fullRequestSettings = createRequest(WifiScanner.WIFI_BAND_BOTH, 0,
-                0, 20, WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN);
-        ScanResults expectedFullResults = ScanResults.create(0, true, 2400, 5150, 5175);
-        doSuccessfulSingleScan(fullRequestSettings,
-                computeSingleScanNativeSettings(fullRequestSettings),
-                expectedFullResults);
-
-        Handler handler = mock(Handler.class);
-        BidirectionalAsyncChannel controlChannel = connectChannel(handler);
-        InOrder order = inOrder(handler, mWifiScannerImpl);
-
-        controlChannel.sendMessage(
-                Message.obtain(null, WifiScanner.CMD_GET_SINGLE_SCAN_RESULTS, 0));
-        mLooper.dispatchAll();
-        Message response = verifyHandleMessageAndGetMessage(order, handler);
-
-        List<ScanResult> results = Arrays.asList(
-                ((WifiScanner.ParcelableScanResults) response.obj).getResults());
-        assertEquals(results.size(), expectedFullResults.getRawScanResults().length);
-
-        // now update with a new scan that only has one result
-        int secondScanRequestId = 35;
-        WifiScanner.ScanSettings partialRequestSettings = createRequest(WifiScanner.WIFI_BAND_BOTH,
-                0, 0, 20, WifiScanner.REPORT_EVENT_AFTER_EACH_SCAN);
-        ScanResults expectedPartialResults = ScanResults.create(0, false, 5150);
-        sendSingleScanRequest(controlChannel, secondScanRequestId, partialRequestSettings, null);
-
-        mLooper.dispatchAll();
-        WifiNative.ScanEventHandler eventHandler = verifyStartSingleScan(order,
-                computeSingleScanNativeSettings(partialRequestSettings));
-        verifySuccessfulResponse(order, handler, secondScanRequestId);
-
-        // dispatch scan 2 results
-        when(mWifiScannerImpl.getLatestSingleScanResults())
-                .thenReturn(expectedPartialResults.getScanData());
-        eventHandler.onScanStatus(WifiNative.WIFI_SCAN_RESULTS_AVAILABLE);
-
-        mLooper.dispatchAll();
-        verifyScanResultsReceived(order, handler, secondScanRequestId,
-                expectedPartialResults.getScanData());
-        verifySingleScanCompletedReceived(order, handler, secondScanRequestId);
-
-        controlChannel.sendMessage(
-                Message.obtain(null, WifiScanner.CMD_GET_SINGLE_SCAN_RESULTS, 0));
-        mLooper.dispatchAll();
-        Message response2 = verifyHandleMessageAndGetMessage(order, handler);
-
-        List<ScanResult> results2 = Arrays.asList(
-                ((WifiScanner.ParcelableScanResults) response2.obj).getResults());
-        assertEquals(results2.size(), expectedFullResults.getRawScanResults().length);
-    }
-
-    /**
      * Cached scan results should be cleared after the driver is unloaded.
      */
     @Test