Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f629cdf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "WifiScanner: Create @hide API's with executor"

parents 433d6038 c34c2bfa
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -833,6 +833,7 @@ public class WifiScanner {
     * delivered to the listener. It is possible that onFullResult will not be called for all
     * results of the first scan if the listener was registered during the scan.
     *
     * @param executor the Executor on which to run the callback.
     * @param listener specifies the object to report events to. This object is also treated as a
     *                 key for this request, and must also be specified to cancel the request.
     *                 Multiple requests should also not share this object.
@@ -955,15 +956,32 @@ public class WifiScanner {
     * starts a single scan and reports results asynchronously
     * @param settings specifies various parameters for the scan; for more information look at
     * {@link ScanSettings}
     * @param workSource WorkSource to blame for power usage
     * @param listener specifies the object to report events to. This object is also treated as a
     *                 key for this scan, and must also be specified to cancel the scan. Multiple
     *                 scans should also not share this object.
     * @param workSource WorkSource to blame for power usage
     */
    @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
    public void startScan(ScanSettings settings, ScanListener listener, WorkSource workSource) {
        startScan(settings, null, listener, workSource);
    }

    /**
     * starts a single scan and reports results asynchronously
     * @param settings specifies various parameters for the scan; for more information look at
     * {@link ScanSettings}
     * @param executor the Executor on which to run the callback.
     * @param listener specifies the object to report events to. This object is also treated as a
     *                 key for this scan, and must also be specified to cancel the scan. Multiple
     *                 scans should also not share this object.
     * @param workSource WorkSource to blame for power usage
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
    public void startScan(ScanSettings settings, @Nullable @CallbackExecutor Executor executor,
            ScanListener listener, WorkSource workSource) {
        Objects.requireNonNull(listener, "listener cannot be null");
        int key = addListener(listener);
        int key = addListener(listener, executor);
        if (key == INVALID_KEY) return;
        validateChannel();
        Bundle scanParams = new Bundle();
@@ -1029,16 +1047,17 @@ public class WifiScanner {
     * {@link ScanSettings}
     * @param pnoSettings specifies various parameters for PNO; for more information look at
     * {@link PnoSettings}
     * @param executor the Executor on which to run the callback.
     * @param listener specifies the object to report events to. This object is also treated as a
     *                 key for this scan, and must also be specified to cancel the scan. Multiple
     *                 scans should also not share this object.
     * {@hide}
     */
    public void startConnectedPnoScan(ScanSettings scanSettings, PnoSettings pnoSettings,
            PnoScanListener listener) {
            @NonNull @CallbackExecutor Executor executor, PnoScanListener listener) {
        Objects.requireNonNull(listener, "listener cannot be null");
        Objects.requireNonNull(pnoSettings, "pnoSettings cannot be null");
        int key = addListener(listener);
        int key = addListener(listener, executor);
        if (key == INVALID_KEY) return;
        validateChannel();
        pnoSettings.isConnected = true;
@@ -1057,10 +1076,10 @@ public class WifiScanner {
     */
    @RequiresPermission(android.Manifest.permission.NETWORK_STACK)
    public void startDisconnectedPnoScan(ScanSettings scanSettings, PnoSettings pnoSettings,
            PnoScanListener listener) {
            @NonNull @CallbackExecutor Executor executor, PnoScanListener listener) {
        Objects.requireNonNull(listener, "listener cannot be null");
        Objects.requireNonNull(pnoSettings, "pnoSettings cannot be null");
        int key = addListener(listener);
        int key = addListener(listener, executor);
        if (key == INVALID_KEY) return;
        validateChannel();
        pnoSettings.isConnected = false;
+9 −6
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ public class WifiScannerTest {

    /**
     * Test behavior of {@link WifiScanner#startDisconnectedPnoScan(ScanSettings, PnoSettings,
     * WifiScanner.PnoScanListener)}
     * Executor, WifiScanner.PnoScanListener)}
     * @throws Exception
     */
    @Test
@@ -375,7 +375,8 @@ public class WifiScannerTest {
        PnoSettings pnoSettings = new PnoSettings();
        WifiScanner.PnoScanListener pnoScanListener = mock(WifiScanner.PnoScanListener.class);

        mWifiScanner.startDisconnectedPnoScan(scanSettings, pnoSettings, pnoScanListener);
        mWifiScanner.startDisconnectedPnoScan(
                scanSettings, pnoSettings, mock(Executor.class), pnoScanListener);
        mLooper.dispatchAll();

        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
@@ -396,7 +397,7 @@ public class WifiScannerTest {

    /**
     * Test behavior of {@link WifiScanner#startConnectedPnoScan(ScanSettings, PnoSettings,
     * WifiScanner.PnoScanListener)}
     * Executor, WifiScanner.PnoScanListener)}
     * @throws Exception
     */
    @Test
@@ -405,7 +406,8 @@ public class WifiScannerTest {
        PnoSettings pnoSettings = new PnoSettings();
        WifiScanner.PnoScanListener pnoScanListener = mock(WifiScanner.PnoScanListener.class);

        mWifiScanner.startConnectedPnoScan(scanSettings, pnoSettings, pnoScanListener);
        mWifiScanner.startConnectedPnoScan(
                scanSettings, pnoSettings, mock(Executor.class), pnoScanListener);
        mLooper.dispatchAll();

        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
@@ -426,7 +428,7 @@ public class WifiScannerTest {

    /**
     * Test behavior of {@link WifiScanner#stopPnoScan(ScanListener)}
     * WifiScanner.PnoScanListener)}
     * Executor, WifiScanner.PnoScanListener)}
     * @throws Exception
     */
    @Test
@@ -435,7 +437,8 @@ public class WifiScannerTest {
        PnoSettings pnoSettings = new PnoSettings();
        WifiScanner.PnoScanListener pnoScanListener = mock(WifiScanner.PnoScanListener.class);

        mWifiScanner.startDisconnectedPnoScan(scanSettings, pnoSettings, pnoScanListener);
        mWifiScanner.startDisconnectedPnoScan(
                scanSettings, pnoSettings, mock(Executor.class), pnoScanListener);
        mLooper.dispatchAll();
        mWifiScanner.stopPnoScan(pnoScanListener);
        mLooper.dispatchAll();