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

Commit 3729e9f9 authored by Kyunglyul Hyun's avatar Kyunglyul Hyun
Browse files

MediaRouter2: Clean up APIs

Rename APIS related to RoutingController.
Specifically,
- requestCreateController is changed to transferTo, which is the only
way to "transfer" that may or may not create a controller.
- ControllerCallback is split into TransferCallback and
(new) ControllerCallback.
- onControllerCreated and onControllerReleased is merged into
onTransferred(old, new)

Rename APIS related to RoutingController.

Bug: 149185558
Test: atest android.media.cts.MediaRoute2InfoTest
  && atest android.media.cts.MediaRouter2Test
  && atest android.media.cts.RouteDiscoveryPreferenceTest
  && atest android.media.cts.RoutingSessionInfoTest
  && atest android.media.cts.MediaRoute2ProviderServiceTest
  && atest mediaroutertest

Change-Id: I348581be7c0b8537da22da3bc81e2ca31e16203f
parent e8d6f95b
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -27019,12 +27019,19 @@ package android.media {
    method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context);
    method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes();
    method @NonNull public android.media.MediaRouter2.RoutingController getSystemController();
    method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RoutingControllerCallback);
    method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.ControllerCallback);
    method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference);
    method public void requestCreateController(@NonNull android.media.MediaRoute2Info);
    method public void registerTransferCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.TransferCallback);
    method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener);
    method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.RoutingControllerCallback);
    method public void transferTo(@Nullable android.media.MediaRoute2Info);
    method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.ControllerCallback);
    method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback);
    method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback);
  }
  public static class MediaRouter2.ControllerCallback {
    ctor public MediaRouter2.ControllerCallback();
    method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController);
  }
  public static interface MediaRouter2.OnGetControllerHintsListener {
@@ -27045,7 +27052,6 @@ package android.media {
    method @NonNull public String getId();
    method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectableRoutes();
    method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectedRoutes();
    method @NonNull public java.util.List<android.media.MediaRoute2Info> getTransferableRoutes();
    method public int getVolume();
    method public int getVolumeHandling();
    method public int getVolumeMax();
@@ -27053,15 +27059,12 @@ package android.media {
    method public void release();
    method public void selectRoute(@NonNull android.media.MediaRoute2Info);
    method public void setVolume(int);
    method public void transferToRoute(@NonNull android.media.MediaRoute2Info);
  }
  public static class MediaRouter2.RoutingControllerCallback {
    ctor public MediaRouter2.RoutingControllerCallback();
    method public void onControllerCreated(@NonNull android.media.MediaRouter2.RoutingController);
    method public void onControllerCreationFailed(@NonNull android.media.MediaRoute2Info);
    method public void onControllerReleased(@NonNull android.media.MediaRouter2.RoutingController);
    method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController);
  public static class MediaRouter2.TransferCallback {
    ctor public MediaRouter2.TransferCallback();
    method public void onTransferFailed(@NonNull android.media.MediaRoute2Info);
    method public void onTransferred(@NonNull android.media.MediaRouter2.RoutingController, @Nullable android.media.MediaRouter2.RoutingController);
  }
  public class MediaScannerConnection implements android.content.ServiceConnection {
+199 −137

File changed.

Preview size limit exceeded, changes collapsed.

+27 −28
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ import android.content.Context;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2;
import android.media.MediaRouter2.RouteCallback;
import android.media.MediaRouter2.RoutingControllerCallback;
import android.media.MediaRouter2.TransferCallback;
import android.media.MediaRouter2Manager;
import android.media.MediaRouter2Utils;
import android.media.RouteDiscoveryPreference;
@@ -79,7 +79,7 @@ public class MediaRouter2ManagerTest {

    private final List<MediaRouter2Manager.Callback> mManagerCallbacks = new ArrayList<>();
    private final List<RouteCallback> mRouteCallbacks = new ArrayList<>();
    private final List<RoutingControllerCallback> mControllerCallbacks = new ArrayList<>();
    private final List<MediaRouter2.TransferCallback> mTransferCallbacks = new ArrayList<>();

    public static final List<String> FEATURES_ALL = new ArrayList();
    public static final List<String> FEATURES_SPECIAL = new ArrayList();
@@ -153,7 +153,6 @@ public class MediaRouter2ManagerTest {

        MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2);

        try {
        SampleMediaRoute2ProviderService sInstance =
                SampleMediaRoute2ProviderService.getInstance();
        assertNotNull(sInstance);
@@ -162,9 +161,6 @@ public class MediaRouter2ManagerTest {

        sInstance.addRoute(routeToRemove);
        assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
        } finally {
            mRouter2.unregisterRouteCallback(routeCallback);
        }
    }

    /**
@@ -198,10 +194,14 @@ public class MediaRouter2ManagerTest {
        addManagerCallback(new MediaRouter2Manager.Callback());
        //TODO: remove this when it's not necessary.
        addRouterCallback(new MediaRouter2.RouteCallback());
        addSessionCallback(new RoutingControllerCallback() {
        addTransferCallback(new MediaRouter2.TransferCallback() {
            @Override
            public void onControllerCreated(MediaRouter2.RoutingController controller) {
                if (createRouteMap(controller.getSelectedRoutes()).containsKey(ROUTE_ID1)) {
            public void onTransferred(MediaRouter2.RoutingController oldController,
                    MediaRouter2.RoutingController newController) {
                if (newController == null) {
                    return;
                }
                if (createRouteMap(newController.getSelectedRoutes()).containsKey(ROUTE_ID1)) {
                    latch.countDown();
                }
            }
@@ -363,7 +363,7 @@ public class MediaRouter2ManagerTest {
        int currentVolume = sessionInfo.getVolume();
        int targetVolume = (currentVolume == 0) ? 1 : (currentVolume - 1);

        RoutingControllerCallback routingControllerCallback = new RoutingControllerCallback() {
        MediaRouter2.ControllerCallback controllerCallback = new MediaRouter2.ControllerCallback() {
            @Override
            public void onControllerUpdated(MediaRouter2.RoutingController controller) {
                if (!TextUtils.equals(sessionInfo.getId(), controller.getId())) {
@@ -374,7 +374,6 @@ public class MediaRouter2ManagerTest {
                }
            }
        };
        mRouter2.registerControllerCallback(mExecutor, routingControllerCallback);

        addManagerCallback(new MediaRouter2Manager.Callback() {
            @Override
@@ -390,12 +389,12 @@ public class MediaRouter2ManagerTest {
            }
        });

        mManager.setSessionVolume(sessionInfo, targetVolume);

        try {
            mRouter2.registerControllerCallback(mExecutor, controllerCallback);
            mManager.setSessionVolume(sessionInfo, targetVolume);
            assertTrue(volumeChangedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
        } finally {
            mRouter2.unregisterControllerCallback(routingControllerCallback);
            mRouter2.unregisterControllerCallback(controllerCallback);
        }
    }

@@ -489,9 +488,9 @@ public class MediaRouter2ManagerTest {
        mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
    }

    private void addSessionCallback(RoutingControllerCallback controllerCallback) {
        mControllerCallbacks.add(controllerCallback);
        mRouter2.registerControllerCallback(mExecutor, controllerCallback);
    private void addTransferCallback(TransferCallback transferCallback) {
        mTransferCallbacks.add(transferCallback);
        mRouter2.registerTransferCallback(mExecutor, transferCallback);
    }

    private void clearCallbacks() {
@@ -505,10 +504,10 @@ public class MediaRouter2ManagerTest {
        }
        mRouteCallbacks.clear();

        for (RoutingControllerCallback controllerCallback : mControllerCallbacks) {
            mRouter2.unregisterControllerCallback(controllerCallback);
        for (MediaRouter2.TransferCallback transferCallback : mTransferCallbacks) {
            mRouter2.unregisterTransferCallback(transferCallback);
        }
        mControllerCallbacks.clear();
        mTransferCallbacks.clear();
    }

    private void releaseAllSessions() {