Merge "Clean up MediaRouter2Manager" into rvc-dev
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index 5d61dd0..6c9013f 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -24,7 +24,6 @@
import android.content.Context;
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
-import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -344,14 +343,6 @@
/**
* Requests a volume change for a route asynchronously.
- */
- //TODO: remove this.
- public void requestSetVolume(MediaRoute2Info route, int volume) {
- setRouteVolume(route, volume);
- }
-
- /**
- * Requests a volume change for a route asynchronously.
* <p>
* It may have no effect if the route is currently not selected.
* </p>
@@ -576,22 +567,11 @@
}
for (CallbackRecord record : mCallbackRecords) {
record.mExecutor.execute(() -> record.mCallback
- .onControlCategoriesChanged(packageName, preferredFeatures));
- }
- for (CallbackRecord record : mCallbackRecords) {
- record.mExecutor.execute(() -> record.mCallback
.onPreferredFeaturesChanged(packageName, preferredFeatures));
}
}
/**
- * @hide
- */
- public RoutingController getControllerForSession(@NonNull RoutingSessionInfo sessionInfo) {
- return new RoutingController(sessionInfo);
- }
-
- /**
* Gets the unmodifiable list of selected routes for the session.
*/
@NonNull
@@ -790,148 +770,6 @@
}
}
- //TODO: Remove this.
- /**
- * A class to control media routing session in media route provider.
- * With routing controller, an application can select a route into the session or deselect
- * a route in the session.
- */
- public final class RoutingController {
- private final Object mControllerLock = new Object();
- @GuardedBy("mControllerLock")
- private RoutingSessionInfo mSessionInfo;
-
- RoutingController(@NonNull RoutingSessionInfo sessionInfo) {
- mSessionInfo = sessionInfo;
- }
-
- /**
- * Releases the session
- */
- public void release() {
- synchronized (mControllerLock) {
- releaseSession(mSessionInfo);
- }
- }
-
- /**
- * Gets the ID of the session
- */
- @NonNull
- public String getSessionId() {
- synchronized (mControllerLock) {
- return mSessionInfo.getId();
- }
- }
-
- /**
- * Gets the client package name of the session
- */
- @NonNull
- public String getClientPackageName() {
- synchronized (mControllerLock) {
- return mSessionInfo.getClientPackageName();
- }
- }
-
- /**
- * @return the control hints used to control route session if available.
- */
- @Nullable
- public Bundle getControlHints() {
- synchronized (mControllerLock) {
- return mSessionInfo.getControlHints();
- }
- }
-
- /**
- * @return the unmodifiable list of currently selected routes
- */
- @NonNull
- public List<MediaRoute2Info> getSelectedRoutes() {
- return MediaRouter2Manager.this.getSelectedRoutes(mSessionInfo);
- }
-
- /**
- * @return the unmodifiable list of selectable routes for the session.
- */
- @NonNull
- public List<MediaRoute2Info> getSelectableRoutes() {
- return MediaRouter2Manager.this.getSelectableRoutes(mSessionInfo);
- }
-
- /**
- * @return the unmodifiable list of deselectable routes for the session.
- */
- @NonNull
- public List<MediaRoute2Info> getDeselectableRoutes() {
- return MediaRouter2Manager.this.getDeselectableRoutes(mSessionInfo);
- }
-
- /**
- * @return the unmodifiable list of transferable routes for the session.
- */
- @NonNull
- public List<MediaRoute2Info> getTransferableRoutes() {
- List<String> routeIds;
- synchronized (mControllerLock) {
- routeIds = mSessionInfo.getTransferableRoutes();
- }
- return getRoutesWithIds(routeIds);
- }
-
- /**
- * Selects a route for the remote session. The given route must satisfy all of the
- * following conditions:
- * <ul>
- * <li>ID should not be included in {@link #getSelectedRoutes()}</li>
- * <li>ID should be included in {@link #getSelectableRoutes()}</li>
- * </ul>
- * If the route doesn't meet any of above conditions, it will be ignored.
- *
- * @see #getSelectedRoutes()
- * @see #getSelectableRoutes()
- */
- public void selectRoute(@NonNull MediaRoute2Info route) {
- MediaRouter2Manager.this.selectRoute(mSessionInfo, route);
- }
-
- /**
- * Deselects a route from the remote session. The given route must satisfy all of the
- * following conditions:
- * <ul>
- * <li>ID should be included in {@link #getSelectedRoutes()}</li>
- * <li>ID should be included in {@link #getDeselectableRoutes()}</li>
- * </ul>
- * If the route doesn't meet any of above conditions, it will be ignored.
- *
- * @see #getSelectedRoutes()
- * @see #getDeselectableRoutes()
- */
- public void deselectRoute(@NonNull MediaRoute2Info route) {
- MediaRouter2Manager.this.deselectRoute(mSessionInfo, route);
- }
-
- /**
- * Transfers session to the given rotue.
- */
- public void transferToRoute(@NonNull MediaRoute2Info route) {
- MediaRouter2Manager.this.transferToRoute(mSessionInfo, route);
- }
-
- /**
- * Gets the session info of the session
- *
- * @hide
- */
- @NonNull
- public RoutingSessionInfo getSessionInfo() {
- synchronized (mControllerLock) {
- return mSessionInfo;
- }
- }
- }
-
/**
* Interface for receiving events about media routing changes.
*/
@@ -976,16 +814,6 @@
public void onTransferFailed(@NonNull RoutingSessionInfo session,
@NonNull MediaRoute2Info route) { }
- //TODO: Remove this.
- /**
- * Called when the preferred route features of an app is changed.
- *
- * @param packageName the package name of the application
- * @param preferredFeatures the list of preferred route features set by an application.
- */
- public void onControlCategoriesChanged(@NonNull String packageName,
- @NonNull List<String> preferredFeatures) {}
-
/**
* Called when the preferred route features of an app is changed.
*
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index 436f2fa..1d06df0 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -108,10 +108,8 @@
final List<RoutingSessionInfo> infos = mRouterManager.getActiveSessions();
if (infos.size() > 0) {
final RoutingSessionInfo info = infos.get(0);
- final MediaRouter2Manager.RoutingController controller =
- mRouterManager.getControllerForSession(info);
+ mRouterManager.transfer(info, device.mRouteInfo);
- controller.transferToRoute(device.mRouteInfo);
isConnected = true;
}
return isConnected;
@@ -131,7 +129,7 @@
final RoutingSessionInfo info = getRoutingSessionInfo();
if (info != null && info.getSelectableRoutes().contains(device.mRouteInfo.getId())) {
- mRouterManager.getControllerForSession(info).selectRoute(device.mRouteInfo);
+ mRouterManager.selectRoute(info, device.mRouteInfo);
return true;
}
@@ -162,7 +160,7 @@
final RoutingSessionInfo info = getRoutingSessionInfo();
if (info != null && info.getSelectedRoutes().contains(device.mRouteInfo.getId())) {
- mRouterManager.getControllerForSession(info).deselectRoute(device.mRouteInfo);
+ mRouterManager.deselectRoute(info, device.mRouteInfo);
return true;
}
@@ -207,8 +205,7 @@
final RoutingSessionInfo info = getRoutingSessionInfo();
if (info != null) {
- for (MediaRoute2Info route : mRouterManager.getControllerForSession(info)
- .getSelectableRoutes()) {
+ for (MediaRoute2Info route : mRouterManager.getSelectableRoutes(info)) {
deviceList.add(new InfoMediaDevice(mContext, mRouterManager,
route, mPackageName));
}
@@ -235,8 +232,7 @@
final RoutingSessionInfo info = getRoutingSessionInfo();
if (info != null) {
- for (MediaRoute2Info route : mRouterManager.getControllerForSession(info)
- .getSelectedRoutes()) {
+ for (MediaRoute2Info route : mRouterManager.getSelectedRoutes(info)) {
deviceList.add(new InfoMediaDevice(mContext, mRouterManager,
route, mPackageName));
}
@@ -434,7 +430,7 @@
}
@Override
- public void onControlCategoriesChanged(String packageName, List<String> controlCategories) {
+ public void onPreferredFeaturesChanged(String packageName, List<String> preferredFeatures) {
if (TextUtils.equals(mPackageName, packageName)) {
refreshDevices();
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
index f1c0f6b..34de152 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
@@ -180,7 +180,7 @@
*/
public void requestSetVolume(int volume) {
- mRouterManager.requestSetVolume(mRouteInfo, volume);
+ mRouterManager.setRouteVolume(mRouteInfo, volume);
}
/**
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
index 2ed9c7b..99c568a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
@@ -136,7 +136,7 @@
}
@Test
- public void onControlCategoriesChanged_samePackageName_shouldAddMediaDevice() {
+ public void onPreferredFeaturesChanged_samePackageName_shouldAddMediaDevice() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class);
routingSessionInfos.add(sessionInfo);
@@ -156,7 +156,7 @@
final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID);
assertThat(mediaDevice).isNull();
- mInfoMediaManager.mMediaRouterCallback.onControlCategoriesChanged(TEST_PACKAGE_NAME, null);
+ mInfoMediaManager.mMediaRouterCallback.onPreferredFeaturesChanged(TEST_PACKAGE_NAME, null);
final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0);
assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
@@ -165,8 +165,8 @@
}
@Test
- public void onControlCategoriesChanged_differentPackageName_doNothing() {
- mInfoMediaManager.mMediaRouterCallback.onControlCategoriesChanged("com.fake.play", null);
+ public void onPreferredFeaturesChanged_differentPackageName_doNothing() {
+ mInfoMediaManager.mMediaRouterCallback.onPreferredFeaturesChanged("com.fake.play", null);
assertThat(mInfoMediaManager.mMediaDevices).hasSize(0);
}