Loading media/java/android/media/MediaRouter2Manager.java +0 −172 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.annotation.Nullable; 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; Loading Loading @@ -342,14 +341,6 @@ public final class MediaRouter2Manager { } } /** * 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> Loading Loading @@ -574,23 +565,12 @@ public final class MediaRouter2Manager { || Objects.equals(preferredFeatures, prevFeatures)) { return; } 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. */ Loading Loading @@ -790,148 +770,6 @@ public final class MediaRouter2Manager { } } //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. */ Loading Loading @@ -976,16 +814,6 @@ public final class MediaRouter2Manager { 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. * Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +6 −10 Original line number Diff line number Diff line Loading @@ -108,10 +108,8 @@ public class InfoMediaManager extends MediaManager { 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; Loading @@ -131,7 +129,7 @@ public class InfoMediaManager extends MediaManager { 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; } Loading Loading @@ -162,7 +160,7 @@ public class InfoMediaManager extends MediaManager { 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; } Loading Loading @@ -207,8 +205,7 @@ public class InfoMediaManager extends MediaManager { 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)); } Loading @@ -235,8 +232,7 @@ public class InfoMediaManager extends MediaManager { 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)); } Loading Loading @@ -434,7 +430,7 @@ public class InfoMediaManager extends MediaManager { } @Override public void onControlCategoriesChanged(String packageName, List<String> controlCategories) { public void onPreferredFeaturesChanged(String packageName, List<String> preferredFeatures) { if (TextUtils.equals(mPackageName, packageName)) { refreshDevices(); } Loading packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> { */ public void requestSetVolume(int volume) { mRouterManager.requestSetVolume(mRouteInfo, volume); mRouterManager.setRouteVolume(mRouteInfo, volume); } /** Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ public class InfoMediaManagerTest { } @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); Loading @@ -156,7 +156,7 @@ public class InfoMediaManagerTest { 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); Loading @@ -165,8 +165,8 @@ public class InfoMediaManagerTest { } @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); } Loading Loading
media/java/android/media/MediaRouter2Manager.java +0 −172 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.annotation.Nullable; 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; Loading Loading @@ -342,14 +341,6 @@ public final class MediaRouter2Manager { } } /** * 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> Loading Loading @@ -574,23 +565,12 @@ public final class MediaRouter2Manager { || Objects.equals(preferredFeatures, prevFeatures)) { return; } 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. */ Loading Loading @@ -790,148 +770,6 @@ public final class MediaRouter2Manager { } } //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. */ Loading Loading @@ -976,16 +814,6 @@ public final class MediaRouter2Manager { 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. * Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +6 −10 Original line number Diff line number Diff line Loading @@ -108,10 +108,8 @@ public class InfoMediaManager extends MediaManager { 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; Loading @@ -131,7 +129,7 @@ public class InfoMediaManager extends MediaManager { 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; } Loading Loading @@ -162,7 +160,7 @@ public class InfoMediaManager extends MediaManager { 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; } Loading Loading @@ -207,8 +205,7 @@ public class InfoMediaManager extends MediaManager { 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)); } Loading @@ -235,8 +232,7 @@ public class InfoMediaManager extends MediaManager { 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)); } Loading Loading @@ -434,7 +430,7 @@ public class InfoMediaManager extends MediaManager { } @Override public void onControlCategoriesChanged(String packageName, List<String> controlCategories) { public void onPreferredFeaturesChanged(String packageName, List<String> preferredFeatures) { if (TextUtils.equals(mPackageName, packageName)) { refreshDevices(); } Loading
packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,7 @@ public abstract class MediaDevice implements Comparable<MediaDevice> { */ public void requestSetVolume(int volume) { mRouterManager.requestSetVolume(mRouteInfo, volume); mRouterManager.setRouteVolume(mRouteInfo, volume); } /** Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ public class InfoMediaManagerTest { } @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); Loading @@ -156,7 +156,7 @@ public class InfoMediaManagerTest { 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); Loading @@ -165,8 +165,8 @@ public class InfoMediaManagerTest { } @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); } Loading