diff --git a/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl b/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl index 2da7a17748..34cadaa574 100644 --- a/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl +++ b/libraries/test_session_common/src/main/aidl/androidx/media3/test/session/common/IRemoteMediaSession.aidl @@ -28,11 +28,10 @@ interface IRemoteMediaSession { void setSessionPositionUpdateDelayMs(String sessionId, long updateDelayMs); void setPlayer(String sessionId, in Bundle playerBundle); void broadcastCustomCommand(String sessionId, in Bundle command, in Bundle args); - void sendCustomCommand( - String sessionId, in Bundle controller, in Bundle command, in Bundle args); + void sendCustomCommand(String sessionId, in Bundle command, in Bundle args); void release(String sessionId); - void setAvailableCommands(String sessionId, in Bundle controller, in Bundle sessionCommands, in Bundle playerCommands); - void setCustomLayout(String sessionId, in Bundle controller, in List layout); + void setAvailableCommands(String sessionId, in Bundle sessionCommands, in Bundle playerCommands); + void setCustomLayout(String sessionId, in List layout); // Player Methods void setPlayWhenReady(String sessionId, boolean playWhenReady, int reason); diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java index 11b5b5fe1d..af569ef51a 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaSessionProviderService.java @@ -352,13 +352,15 @@ public class MediaSessionProviderService extends Service { @Override @SuppressWarnings("FutureReturnValueIgnored") - public void sendCustomCommand(String sessionId, Bundle controller, Bundle command, Bundle args) + public void sendCustomCommand(String sessionId, Bundle command, Bundle args) throws RemoteException { runOnHandler( () -> { MediaSession session = sessionMap.get(sessionId); - ControllerInfo info = MediaTestUtils.getTestControllerInfo(session); - session.sendCustomCommand(info, SessionCommand.CREATOR.fromBundle(command), args); + List controllerInfos = MediaTestUtils.getTestControllerInfos(session); + for (ControllerInfo info : controllerInfos) { + session.sendCustomCommand(info, SessionCommand.CREATOR.fromBundle(command), args); + } }); } @@ -373,35 +375,37 @@ public class MediaSessionProviderService extends Service { @Override public void setAvailableCommands( - String sessionId, Bundle controller, Bundle sessionCommands, Bundle playerCommands) - throws RemoteException { + String sessionId, Bundle sessionCommands, Bundle playerCommands) throws RemoteException { runOnHandler( () -> { MediaSession session = sessionMap.get(sessionId); - ControllerInfo info = MediaTestUtils.getTestControllerInfo(session); - session.setAvailableCommands( - info, - SessionCommands.CREATOR.fromBundle(sessionCommands), - Player.Commands.CREATOR.fromBundle(playerCommands)); + List controllerInfos = MediaTestUtils.getTestControllerInfos(session); + for (ControllerInfo info : controllerInfos) { + session.setAvailableCommands( + info, + SessionCommands.CREATOR.fromBundle(sessionCommands), + Player.Commands.CREATOR.fromBundle(playerCommands)); + } }); } @Override @SuppressWarnings("FutureReturnValueIgnored") - public void setCustomLayout(String sessionId, Bundle controller, List layout) - throws RemoteException { + public void setCustomLayout(String sessionId, List layout) throws RemoteException { if (layout == null) { return; } runOnHandler( () -> { - MediaSession session = sessionMap.get(sessionId); - ControllerInfo info = MediaTestUtils.getTestControllerInfo(session); List buttons = new ArrayList<>(); for (Bundle bundle : layout) { buttons.add(CommandButton.CREATOR.fromBundle(bundle)); } - session.setCustomLayout(info, buttons); + MediaSession session = sessionMap.get(sessionId); + List controllerInfos = MediaTestUtils.getTestControllerInfos(session); + for (ControllerInfo info : controllerInfos) { + session.setCustomLayout(info, buttons); + } }); } diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaTestUtils.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaTestUtils.java index dd251ca645..1eb19ef119 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MediaTestUtils.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MediaTestUtils.java @@ -87,17 +87,19 @@ public final class MediaTestUtils { .build(); } - public static ControllerInfo getTestControllerInfo(MediaSession session) { - if (session == null) { - return null; - } - for (ControllerInfo info : session.getConnectedControllers()) { - if (SUPPORT_APP_PACKAGE_NAME.equals(info.getPackageName())) { - return info; + public static List getTestControllerInfos(MediaSession session) { + List infos = new ArrayList<>(); + if (session != null) { + for (ControllerInfo info : session.getConnectedControllers()) { + if (SUPPORT_APP_PACKAGE_NAME.equals(info.getPackageName())) { + infos.add(info); + } } } - Log.e(TAG, "Test controller was not found in connected controllers. session=" + session); - return null; + if (infos.isEmpty()) { + Log.e(TAG, "Test controller was not found in connected controllers. session=" + session); + } + return infos; } /** diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java index b49d2eb8cd..8a4ec96bee 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/MockMediaLibraryService.java @@ -313,7 +313,7 @@ public class MockMediaLibraryService extends MediaLibraryService { return Futures.immediateFuture(LibraryResult.ofVoid(params)); case SUBSCRIBE_ID_NOTIFY_CHILDREN_CHANGED_TO_ONE: MockMediaLibraryService.this.session.notifyChildrenChanged( - MediaTestUtils.getTestControllerInfo(MockMediaLibraryService.this.session), + browser, parentId, NOTIFY_CHILDREN_CHANGED_ITEM_COUNT, NOTIFY_CHILDREN_CHANGED_PARAMS); @@ -324,7 +324,7 @@ public class MockMediaLibraryService extends MediaLibraryService { return Futures.immediateFuture(LibraryResult.ofVoid(params)); case SUBSCRIBE_ID_NOTIFY_CHILDREN_CHANGED_TO_ONE_WITH_NON_SUBSCRIBED_ID: MockMediaLibraryService.this.session.notifyChildrenChanged( - MediaTestUtils.getTestControllerInfo(MockMediaLibraryService.this.session), + browser, unsubscribedId, NOTIFY_CHILDREN_CHANGED_ITEM_COUNT, NOTIFY_CHILDREN_CHANGED_PARAMS); diff --git a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java index 511c18a3df..4d6e3ace77 100644 --- a/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java +++ b/libraries/test_session_current/src/main/java/androidx/media3/session/RemoteMediaSession.java @@ -178,7 +178,7 @@ public class RemoteMediaSession { } public void sendCustomCommand(SessionCommand command, Bundle args) throws RemoteException { - binder.sendCustomCommand(sessionId, null, command.toBundle(), args); + binder.sendCustomCommand(sessionId, command.toBundle(), args); } public void release() throws RemoteException { @@ -187,8 +187,7 @@ public class RemoteMediaSession { public void setAvailableCommands(SessionCommands sessionCommands, Player.Commands playerCommands) throws RemoteException { - binder.setAvailableCommands( - sessionId, null, sessionCommands.toBundle(), playerCommands.toBundle()); + binder.setAvailableCommands(sessionId, sessionCommands.toBundle(), playerCommands.toBundle()); } public void setCustomLayout(List layout) throws RemoteException { @@ -196,7 +195,7 @@ public class RemoteMediaSession { for (CommandButton button : layout) { bundleList.add(button.toBundle()); } - binder.setCustomLayout(sessionId, null, bundleList); + binder.setCustomLayout(sessionId, bundleList); } ////////////////////////////////////////////////////////////////////////////////