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

Commit 8756fdba authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Split callback registration and route scanning in InfoMediaManager" into main

parents 29e478b0 a4ac6b82
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ public abstract class InfoMediaManager {

    public void startScan() {
        mMediaDevices.clear();
        registerRouter();
        startScanOnRouter();
        updateRouteListingPreference();
        refreshDevices();
@@ -188,10 +189,19 @@ public abstract class InfoMediaManager {
        }
    }

    public abstract void stopScan();
    public final void stopScan() {
        stopScanOnRouter();
        unregisterRouter();
    }

    protected abstract void stopScanOnRouter();

    protected abstract void startScanOnRouter();

    protected abstract void registerRouter();

    protected abstract void unregisterRouter();

    protected abstract void transferToRoute(@NonNull MediaRoute2Info route);

    protected abstract void selectRoute(
+11 −3
Original line number Diff line number Diff line
@@ -62,21 +62,29 @@ public class ManagerInfoMediaManager extends InfoMediaManager {
    @Override
    protected void startScanOnRouter() {
        if (!mIsScanning) {
            mRouterManager.registerCallback(mExecutor, mMediaRouterCallback);
            mRouterManager.registerScanRequest();
            mIsScanning = true;
        }
    }

    @Override
    public void stopScan() {
    protected void registerRouter() {
        mRouterManager.registerCallback(mExecutor, mMediaRouterCallback);
    }

    @Override
    protected void stopScanOnRouter() {
        if (mIsScanning) {
            mRouterManager.unregisterCallback(mMediaRouterCallback);
            mRouterManager.unregisterScanRequest();
            mIsScanning = false;
        }
    }

    @Override
    protected void unregisterRouter() {
        mRouterManager.unregisterCallback(mMediaRouterCallback);
    }

    @Override
    protected void transferToRoute(@NonNull MediaRoute2Info route) {
        // TODO: b/279555229 - provide real user handle of a caller.
+12 −2
Original line number Diff line number Diff line
@@ -63,12 +63,22 @@ import java.util.List;
    }

    @Override
    public void stopScan() {
    protected void startScanOnRouter() {
        // Do nothing.
    }

    @Override
    protected void startScanOnRouter() {
    protected void registerRouter() {
        // Do nothing.
    }

    @Override
    protected void stopScanOnRouter() {
        // Do nothing.
    }

    @Override
    protected void unregisterRouter() {
        // Do nothing.
    }

+14 −6
Original line number Diff line number Diff line
@@ -97,11 +97,6 @@ public final class RouterInfoMediaManager extends InfoMediaManager {

    @Override
    protected void startScanOnRouter() {
        mRouter.registerRouteCallback(mExecutor, mRouteCallback, RouteDiscoveryPreference.EMPTY);
        mRouter.registerRouteListingPreferenceUpdatedCallback(
                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));
@@ -111,7 +106,16 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
    }

    @Override
    public void stopScan() {
    protected void registerRouter() {
        mRouter.registerRouteCallback(mExecutor, mRouteCallback, RouteDiscoveryPreference.EMPTY);
        mRouter.registerRouteListingPreferenceUpdatedCallback(
                mExecutor, mRouteListingPreferenceCallback);
        mRouter.registerTransferCallback(mExecutor, mTransferCallback);
        mRouter.registerControllerCallback(mExecutor, mControllerCallback);
    }

    @Override
    protected void stopScanOnRouter() {
        if (Flags.enableScreenOffScanning()) {
            MediaRouter2.ScanToken token = mScanToken.getAndSet(null);
            if (token != null) {
@@ -120,6 +124,10 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
        } else {
            mRouter.stopScan();
        }
    }

    @Override
    protected void unregisterRouter() {
        mRouter.unregisterControllerCallback(mControllerCallback);
        mRouter.unregisterTransferCallback(mTransferCallback);
        mRouter.unregisterRouteListingPreferenceUpdatedCallback(mRouteListingPreferenceCallback);