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

Commit 2744ef92 authored by Iván Budnik's avatar Iván Budnik
Browse files

Integrate requestScan() to RouterInfoMediaManager

Bug: 281072508
Test: Manual.
Change-Id: I1d8e93be02b0f5883bc34cbaf5ff28de9bca1e30
parent 67a16df7
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.stream.Collectors;

@@ -64,6 +65,8 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
                refreshDevices();
            };

    private final AtomicReference<MediaRouter2.ScanToken> mScanToken = new AtomicReference<>();

    // TODO (b/321969740): Plumb target UserHandle between UMO and RouterInfoMediaManager.
    /* package */ RouterInfoMediaManager(
            Context context,
@@ -101,12 +104,24 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
                mExecutor, mRouteListingPreferenceCallback);
        mRouter.registerTransferCallback(mExecutor, mTransferCallback);
        mRouter.registerControllerCallback(mExecutor, mControllerCallback);
        if (Flags.enableScreenOffScanning()) {
            MediaRouter2.ScanRequest request = new MediaRouter2.ScanRequest.Builder().build();
            mScanToken.compareAndSet(null, mRouter.requestScan(request));
        } else {
            mRouter.startScan();
        }
    }

    @Override
    public void stopScan() {
        if (Flags.enableScreenOffScanning()) {
            MediaRouter2.ScanToken token = mScanToken.getAndSet(null);
            if (token != null) {
                mRouter.cancelScanRequest(token);
            }
        } else {
            mRouter.stopScan();
        }
        mRouter.unregisterControllerCallback(mControllerCallback);
        mRouter.unregisterTransferCallback(mTransferCallback);
        mRouter.unregisterRouteListingPreferenceUpdatedCallback(mRouteListingPreferenceCallback);