Loading media/java/android/media/IMediaRouterService.aidl +6 −4 Original line number Diff line number Diff line Loading @@ -70,8 +70,10 @@ interface IMediaRouterService { void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo, in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); Loading @@ -96,9 +98,9 @@ interface IMediaRouterService { in RoutingSessionInfo oldSession, in RoutingChangeInfo routingChangeInfo, in @nullable MediaRoute2Info route); void selectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route); String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route); String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL)") void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route, Loading media/java/android/media/MediaRouter2.java +71 −12 Original line number Diff line number Diff line Loading @@ -2216,6 +2216,17 @@ public final class MediaRouter2 { * @see ControllerCallback#onControllerUpdated */ public void selectRoute(@NonNull MediaRoute2Info route) { selectRoute(route, /* routingChangeInfo= */ null); } /** * Same as {@link #selectRoute(MediaRoute2Info)} but also takes {@link RoutingChangeInfo} as * a parameter for logging purposes. * * @hide */ public void selectRoute( @NonNull MediaRoute2Info route, @Nullable RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(route, "route must not be null"); if (isReleased()) { Log.w(TAG, "selectRoute: Called on released controller. Ignoring."); Loading @@ -2234,7 +2245,7 @@ public final class MediaRouter2 { return; } mImpl.selectRoute(route, getRoutingSessionInfo()); mImpl.selectRoute(route, getRoutingSessionInfo(), routingChangeInfo); } /** Loading @@ -2255,6 +2266,17 @@ public final class MediaRouter2 { * @see ControllerCallback#onControllerUpdated */ public void deselectRoute(@NonNull MediaRoute2Info route) { deselectRoute(route, /* routingChangeInfo= */ null); } /** * Same as {@link #deselectRoute(MediaRoute2Info)} but also takes {@link RoutingChangeInfo} * as a parameter for logging purposes. * * @hide */ public void deselectRoute( @NonNull MediaRoute2Info route, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(route, "route must not be null"); if (isReleased()) { Log.w(TAG, "deselectRoute: called on released controller. Ignoring."); Loading @@ -2273,7 +2295,7 @@ public final class MediaRouter2 { return; } mImpl.deselectRoute(route, getRoutingSessionInfo()); mImpl.deselectRoute(route, getRoutingSessionInfo(), routingChangeInfo); } /** Loading Loading @@ -2806,9 +2828,15 @@ public final class MediaRouter2 { // RoutingController methods. void setSessionVolume(int volume, RoutingSessionInfo sessionInfo); void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo); void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo); void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo); void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo); void releaseSession( boolean shouldReleaseSession, Loading Loading @@ -3342,7 +3370,10 @@ public final class MediaRouter2 { * @see RoutingSessionInfo#getSelectableRoutes() */ @Override public void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Objects.requireNonNull(route, "route must not be null"); Loading @@ -3359,7 +3390,7 @@ public final class MediaRouter2 { try { int requestId = mNextRequestId.getAndIncrement(); mMediaRouterService.selectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading @@ -3377,7 +3408,10 @@ public final class MediaRouter2 { * @see RoutingSessionInfo#getDeselectableRoutes() */ @Override public void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Objects.requireNonNull(route, "route must not be null"); Loading @@ -3393,8 +3427,13 @@ public final class MediaRouter2 { try { int requestId = mNextRequestId.getAndIncrement(); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.deselectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading Loading @@ -4127,14 +4166,24 @@ public final class MediaRouter2 { } @Override public void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { MediaRouter2Stub stub; synchronized (mLock) { stub = mStub; } if (stub != null) { try { mMediaRouterService.selectRouteWithRouter2(stub, sessionInfo.getId(), route); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_LOCAL_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.selectRouteWithRouter2( stub, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { Log.e(TAG, "Unable to select route for session.", ex); } Loading @@ -4142,14 +4191,24 @@ public final class MediaRouter2 { } @Override public void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { MediaRouter2Stub stub; synchronized (mLock) { stub = mStub; } if (stub != null) { try { mMediaRouterService.deselectRouteWithRouter2(stub, sessionInfo.getId(), route); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_LOCAL_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.deselectRouteWithRouter2( stub, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { Log.e(TAG, "Unable to deselect route from session.", ex); } Loading media/java/android/media/MediaRouter2Manager.java +9 −2 Original line number Diff line number Diff line Loading @@ -824,8 +824,12 @@ public final class MediaRouter2Manager { try { int requestId = mNextRequestId.getAndIncrement(); RoutingChangeInfo routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); mMediaRouterService.selectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading Loading @@ -863,8 +867,11 @@ public final class MediaRouter2Manager { try { int requestId = mNextRequestId.getAndIncrement(); RoutingChangeInfo routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); mMediaRouterService.deselectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +12 −6 Original line number Diff line number Diff line Loading @@ -231,10 +231,14 @@ public abstract class InfoMediaManager { @NonNull MediaRoute2Info route, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void selectRoute( @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info); @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void deselectRoute( @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info); @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void releaseSession(@NonNull RoutingSessionInfo sessionInfo); Loading Loading @@ -440,9 +444,10 @@ public abstract class InfoMediaManager { * Add a MediaDevice to let it play current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If add device successful return {@code true}, otherwise return {@code false} */ boolean addDeviceToPlayMedia(MediaDevice device) { boolean addDeviceToPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { Log.i(TAG, "addDeviceToPlayMedia(), device = " + device.getName() + "/" + device.getId()); final RoutingSessionInfo info = getActiveRoutingSession(); if (!info.getSelectableRoutes().contains(device.mRouteInfo.getId())) { Loading @@ -451,7 +456,7 @@ public abstract class InfoMediaManager { return false; } selectRoute(device.mRouteInfo, info); selectRoute(device.mRouteInfo, info, routingChangeInfo); return true; } Loading Loading @@ -521,9 +526,10 @@ public abstract class InfoMediaManager { * Remove a {@code device} from current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If device stop successful return {@code true}, otherwise return {@code false} */ boolean removeDeviceFromPlayMedia(MediaDevice device) { boolean removeDeviceFromPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { Log.i(TAG, "removeDeviceFromPlayMedia(), device = " + device.getName() + "/" + device.getId()); final RoutingSessionInfo info = getActiveRoutingSession(); Loading @@ -533,7 +539,7 @@ public abstract class InfoMediaManager { return false; } deselectRoute(device.mRouteInfo, info); deselectRoute(device.mRouteInfo, info, routingChangeInfo); return true; } Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +9 −8 Original line number Diff line number Diff line Loading @@ -208,8 +208,7 @@ public class LocalMediaManager implements BluetoothCallback { * Connect the MediaDevice to transfer media * * @param connectDevice the MediaDevice * @param routingChangeInfo the invocation details of the connect device request. See {@link * RoutingChangeInfo} * @param routingChangeInfo the invocation details of the connect device request. * @return {@code true} if successfully call, otherwise return {@code false} */ public boolean connectDevice( Loading Loading @@ -245,8 +244,7 @@ public class LocalMediaManager implements BluetoothCallback { * to attempt to discover the device. * * @param suggestion the suggested device to connect to. * @param routingChangeInfo the invocation details of the connect device request. See {@link * RoutingChangeInfo} * @param routingChangeInfo the invocation details of the connect device request. */ public void connectSuggestedDevice( @NonNull SuggestedDeviceState suggestion, Loading Loading @@ -436,22 +434,25 @@ public class LocalMediaManager implements BluetoothCallback { * Add a MediaDevice to let it play current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If add device successful return {@code true}, otherwise return {@code false} */ public boolean addDeviceToPlayMedia(MediaDevice device) { public boolean addDeviceToPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { mInfoMediaManager.setDeviceState(device, MediaDeviceState.STATE_GROUPING); return mInfoMediaManager.addDeviceToPlayMedia(device); return mInfoMediaManager.addDeviceToPlayMedia(device, routingChangeInfo); } /** * Remove a {@code device} from current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If device stop successful return {@code true}, otherwise return {@code false} */ public boolean removeDeviceFromPlayMedia(MediaDevice device) { public boolean removeDeviceFromPlayMedia( MediaDevice device, RoutingChangeInfo routingChangeInfo) { mInfoMediaManager.setDeviceState(device, MediaDeviceState.STATE_GROUPING); return mInfoMediaManager.removeDeviceFromPlayMedia(device); return mInfoMediaManager.removeDeviceFromPlayMedia(device, routingChangeInfo); } /** Loading Loading
media/java/android/media/IMediaRouterService.aidl +6 −4 Original line number Diff line number Diff line Loading @@ -70,8 +70,10 @@ interface IMediaRouterService { void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo, in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void setSessionVolumeWithRouter2(IMediaRouter2 router, String sessionId, int volume); Loading @@ -96,9 +98,9 @@ interface IMediaRouterService { in RoutingSessionInfo oldSession, in RoutingChangeInfo routingChangeInfo, in @nullable MediaRoute2Info route); void selectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route); String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route); String sessionId, in MediaRoute2Info route, in RoutingChangeInfo routingChangeInfo); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL)") void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, String sessionId, in MediaRoute2Info route, Loading
media/java/android/media/MediaRouter2.java +71 −12 Original line number Diff line number Diff line Loading @@ -2216,6 +2216,17 @@ public final class MediaRouter2 { * @see ControllerCallback#onControllerUpdated */ public void selectRoute(@NonNull MediaRoute2Info route) { selectRoute(route, /* routingChangeInfo= */ null); } /** * Same as {@link #selectRoute(MediaRoute2Info)} but also takes {@link RoutingChangeInfo} as * a parameter for logging purposes. * * @hide */ public void selectRoute( @NonNull MediaRoute2Info route, @Nullable RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(route, "route must not be null"); if (isReleased()) { Log.w(TAG, "selectRoute: Called on released controller. Ignoring."); Loading @@ -2234,7 +2245,7 @@ public final class MediaRouter2 { return; } mImpl.selectRoute(route, getRoutingSessionInfo()); mImpl.selectRoute(route, getRoutingSessionInfo(), routingChangeInfo); } /** Loading @@ -2255,6 +2266,17 @@ public final class MediaRouter2 { * @see ControllerCallback#onControllerUpdated */ public void deselectRoute(@NonNull MediaRoute2Info route) { deselectRoute(route, /* routingChangeInfo= */ null); } /** * Same as {@link #deselectRoute(MediaRoute2Info)} but also takes {@link RoutingChangeInfo} * as a parameter for logging purposes. * * @hide */ public void deselectRoute( @NonNull MediaRoute2Info route, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(route, "route must not be null"); if (isReleased()) { Log.w(TAG, "deselectRoute: called on released controller. Ignoring."); Loading @@ -2273,7 +2295,7 @@ public final class MediaRouter2 { return; } mImpl.deselectRoute(route, getRoutingSessionInfo()); mImpl.deselectRoute(route, getRoutingSessionInfo(), routingChangeInfo); } /** Loading Loading @@ -2806,9 +2828,15 @@ public final class MediaRouter2 { // RoutingController methods. void setSessionVolume(int volume, RoutingSessionInfo sessionInfo); void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo); void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo); void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo); void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo); void releaseSession( boolean shouldReleaseSession, Loading Loading @@ -3342,7 +3370,10 @@ public final class MediaRouter2 { * @see RoutingSessionInfo#getSelectableRoutes() */ @Override public void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Objects.requireNonNull(route, "route must not be null"); Loading @@ -3359,7 +3390,7 @@ public final class MediaRouter2 { try { int requestId = mNextRequestId.getAndIncrement(); mMediaRouterService.selectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading @@ -3377,7 +3408,10 @@ public final class MediaRouter2 { * @see RoutingSessionInfo#getDeselectableRoutes() */ @Override public void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Objects.requireNonNull(route, "route must not be null"); Loading @@ -3393,8 +3427,13 @@ public final class MediaRouter2 { try { int requestId = mNextRequestId.getAndIncrement(); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.deselectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading Loading @@ -4127,14 +4166,24 @@ public final class MediaRouter2 { } @Override public void selectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void selectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { MediaRouter2Stub stub; synchronized (mLock) { stub = mStub; } if (stub != null) { try { mMediaRouterService.selectRouteWithRouter2(stub, sessionInfo.getId(), route); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_LOCAL_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.selectRouteWithRouter2( stub, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { Log.e(TAG, "Unable to select route for session.", ex); } Loading @@ -4142,14 +4191,24 @@ public final class MediaRouter2 { } @Override public void deselectRoute(MediaRoute2Info route, RoutingSessionInfo sessionInfo) { public void deselectRoute( MediaRoute2Info route, RoutingSessionInfo sessionInfo, RoutingChangeInfo routingChangeInfo) { MediaRouter2Stub stub; synchronized (mLock) { stub = mStub; } if (stub != null) { try { mMediaRouterService.deselectRouteWithRouter2(stub, sessionInfo.getId(), route); if (routingChangeInfo == null) { routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_LOCAL_ROUTER_UNSPECIFIED, /* isSuggested= */ false); } mMediaRouterService.deselectRouteWithRouter2( stub, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { Log.e(TAG, "Unable to deselect route from session.", ex); } Loading
media/java/android/media/MediaRouter2Manager.java +9 −2 Original line number Diff line number Diff line Loading @@ -824,8 +824,12 @@ public final class MediaRouter2Manager { try { int requestId = mNextRequestId.getAndIncrement(); RoutingChangeInfo routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); mMediaRouterService.selectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading Loading @@ -863,8 +867,11 @@ public final class MediaRouter2Manager { try { int requestId = mNextRequestId.getAndIncrement(); RoutingChangeInfo routingChangeInfo = new RoutingChangeInfo( ENTRY_POINT_PROXY_ROUTER_UNSPECIFIED, /* isSuggested= */ false); mMediaRouterService.deselectRouteWithManager( mClient, requestId, sessionInfo.getId(), route); mClient, requestId, sessionInfo.getId(), route, routingChangeInfo); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +12 −6 Original line number Diff line number Diff line Loading @@ -231,10 +231,14 @@ public abstract class InfoMediaManager { @NonNull MediaRoute2Info route, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void selectRoute( @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info); @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void deselectRoute( @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info); @NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo info, @NonNull RoutingChangeInfo routingChangeInfo); protected abstract void releaseSession(@NonNull RoutingSessionInfo sessionInfo); Loading Loading @@ -440,9 +444,10 @@ public abstract class InfoMediaManager { * Add a MediaDevice to let it play current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If add device successful return {@code true}, otherwise return {@code false} */ boolean addDeviceToPlayMedia(MediaDevice device) { boolean addDeviceToPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { Log.i(TAG, "addDeviceToPlayMedia(), device = " + device.getName() + "/" + device.getId()); final RoutingSessionInfo info = getActiveRoutingSession(); if (!info.getSelectableRoutes().contains(device.mRouteInfo.getId())) { Loading @@ -451,7 +456,7 @@ public abstract class InfoMediaManager { return false; } selectRoute(device.mRouteInfo, info); selectRoute(device.mRouteInfo, info, routingChangeInfo); return true; } Loading Loading @@ -521,9 +526,10 @@ public abstract class InfoMediaManager { * Remove a {@code device} from current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If device stop successful return {@code true}, otherwise return {@code false} */ boolean removeDeviceFromPlayMedia(MediaDevice device) { boolean removeDeviceFromPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { Log.i(TAG, "removeDeviceFromPlayMedia(), device = " + device.getName() + "/" + device.getId()); final RoutingSessionInfo info = getActiveRoutingSession(); Loading @@ -533,7 +539,7 @@ public abstract class InfoMediaManager { return false; } deselectRoute(device.mRouteInfo, info); deselectRoute(device.mRouteInfo, info, routingChangeInfo); return true; } Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +9 −8 Original line number Diff line number Diff line Loading @@ -208,8 +208,7 @@ public class LocalMediaManager implements BluetoothCallback { * Connect the MediaDevice to transfer media * * @param connectDevice the MediaDevice * @param routingChangeInfo the invocation details of the connect device request. See {@link * RoutingChangeInfo} * @param routingChangeInfo the invocation details of the connect device request. * @return {@code true} if successfully call, otherwise return {@code false} */ public boolean connectDevice( Loading Loading @@ -245,8 +244,7 @@ public class LocalMediaManager implements BluetoothCallback { * to attempt to discover the device. * * @param suggestion the suggested device to connect to. * @param routingChangeInfo the invocation details of the connect device request. See {@link * RoutingChangeInfo} * @param routingChangeInfo the invocation details of the connect device request. */ public void connectSuggestedDevice( @NonNull SuggestedDeviceState suggestion, Loading Loading @@ -436,22 +434,25 @@ public class LocalMediaManager implements BluetoothCallback { * Add a MediaDevice to let it play current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If add device successful return {@code true}, otherwise return {@code false} */ public boolean addDeviceToPlayMedia(MediaDevice device) { public boolean addDeviceToPlayMedia(MediaDevice device, RoutingChangeInfo routingChangeInfo) { mInfoMediaManager.setDeviceState(device, MediaDeviceState.STATE_GROUPING); return mInfoMediaManager.addDeviceToPlayMedia(device); return mInfoMediaManager.addDeviceToPlayMedia(device, routingChangeInfo); } /** * Remove a {@code device} from current media. * * @param device MediaDevice * @param routingChangeInfo the invocation details of the media routing change. * @return If device stop successful return {@code true}, otherwise return {@code false} */ public boolean removeDeviceFromPlayMedia(MediaDevice device) { public boolean removeDeviceFromPlayMedia( MediaDevice device, RoutingChangeInfo routingChangeInfo) { mInfoMediaManager.setDeviceState(device, MediaDeviceState.STATE_GROUPING); return mInfoMediaManager.removeDeviceFromPlayMedia(device); return mInfoMediaManager.removeDeviceFromPlayMedia(device, routingChangeInfo); } /** Loading