diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java index 577e6e2fd0..3b4aa63ffe 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -59,7 +59,6 @@ import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSourceBitmapLoader; import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.MediaLibraryService.MediaLibrarySession; -import androidx.media3.session.legacy.LegacyParcelableUtil; import androidx.media3.session.legacy.MediaControllerCompat; import androidx.media3.session.legacy.MediaSessionCompat; import androidx.media3.session.legacy.MediaSessionManager.RemoteUserInfo; @@ -664,29 +663,6 @@ public class MediaSession { /* maxCommandsForMediaItems= */ 0); } - /** - * @deprecated Use {@link #createTestOnlyControllerInfo(String, int, int, int, int, boolean, - * Bundle)} instead. - */ - @VisibleForTesting(otherwise = PRIVATE) - @SuppressWarnings("UnnecessarilyFullyQualified") // Avoiding clash with Media3 RemoteUserInfo. - @Deprecated - public static ControllerInfo createTestOnlyControllerInfo( - androidx.media.MediaSessionManager.RemoteUserInfo remoteUserInfo, - int libraryVersion, - int interfaceVersion, - boolean trusted, - Bundle connectionHints) { - return createTestOnlyControllerInfo( - remoteUserInfo.getPackageName(), - remoteUserInfo.getPid(), - remoteUserInfo.getUid(), - libraryVersion, - interfaceVersion, - trusted, - connectionHints); - } - /** Returns a {@link ControllerInfo} suitable for use when testing client code. */ @VisibleForTesting(otherwise = PRIVATE) public static ControllerInfo createTestOnlyControllerInfo( @@ -1341,20 +1317,6 @@ public class MediaSession { return impl.getSessionCompat(); } - /** - * Returns the legacy {@code android.support.v4.media.session.MediaSessionCompat.Token} of the - * {@code android.support.v4.media.session.MediaSessionCompat} created internally by this session. - * - * @deprecated Use {@link #getPlatformToken()} instead. - */ - @Deprecated - @UnstableApi - public final android.support.v4.media.session.MediaSessionCompat.Token getSessionCompatToken() { - return LegacyParcelableUtil.convert( - impl.getSessionCompat().getSessionToken(), - android.support.v4.media.session.MediaSessionCompat.Token.CREATOR); - } - /** * Returns the platform {@link android.media.session.MediaSession.Token} of the {@link * android.media.session.MediaSession} created internally by this session. diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatPlaybackStateCompatActionsWithMediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatPlaybackStateCompatActionsWithMediaSessionTest.java index 6b007ba218..f3bfc56b8c 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatPlaybackStateCompatActionsWithMediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaControllerCompatPlaybackStateCompatActionsWithMediaSessionTest.java @@ -1893,7 +1893,8 @@ public class MediaControllerCompatPlaybackStateCompatActionsWithMediaSessionTest throws Exception { MediaControllerCompat controllerCompat = new MediaControllerCompat( - ApplicationProvider.getApplicationContext(), mediaSession.getSessionCompatToken()); + ApplicationProvider.getApplicationContext(), + MediaSessionCompat.Token.fromToken(mediaSession.getPlatformToken())); CountDownLatch controllerReady = new CountDownLatch(1); controllerCompat.registerCallback( new MediaControllerCompat.Callback() { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java index 9b603d1dc1..6f43469ce7 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionCallbackWithMediaControllerCompatTest.java @@ -164,7 +164,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); // Invoke any command for session to recognize the controller compat. controller.getTransportControls().seekTo(111); @@ -205,7 +207,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { session.setLegacyControllerConnectionTimeoutMs(0); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); // Invoke any command for session to recognize the controller compat. controller.getTransportControls().seekTo(111); assertThat(disconnectedLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); @@ -226,7 +230,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); @@ -245,7 +251,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); @@ -266,7 +274,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); @@ -285,7 +295,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO_DEFAULT_POSITION, TIMEOUT_MS); @@ -310,7 +322,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); @@ -328,7 +342,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().pause(); player.awaitMethodCalled(MockPlayer.METHOD_PAUSE, TIMEOUT_MS); @@ -343,7 +359,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().stop(); player.awaitMethodCalled(MockPlayer.METHOD_STOP, TIMEOUT_MS); @@ -358,7 +376,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepare(); player.awaitMethodCalled(MockPlayer.METHOD_PREPARE, TIMEOUT_MS); @@ -373,7 +393,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); long seekPosition = 12125L; controller.getTransportControls().seekTo(seekPosition); @@ -391,7 +413,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); float testSpeed = 2.0f; controller.getTransportControls().setPlaybackSpeed(testSpeed); @@ -409,7 +433,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().setPlaybackSpeed(-0.0001f); controller.getTransportControls().setPlaybackSpeed(Float.NaN); @@ -440,7 +466,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); handler.postAndSync( () -> { @@ -486,7 +514,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); handler.postAndSync( () -> { @@ -532,7 +562,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); handler.postAndSync( () -> { @@ -564,7 +596,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); List mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10); handler.postAndSync( @@ -594,7 +628,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().skipToPrevious(); player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO_PREVIOUS, TIMEOUT_MS); @@ -615,7 +651,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().skipToPrevious(); player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO_PREVIOUS_MEDIA_ITEM, TIMEOUT_MS); @@ -630,7 +668,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().skipToNext(); player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO_NEXT, TIMEOUT_MS); @@ -648,7 +688,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().skipToNext(); player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO_NEXT_MEDIA_ITEM, TIMEOUT_MS); @@ -663,7 +705,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); handler.postAndSync( () -> { @@ -673,7 +717,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { // Get Queue from local MediaControllerCompat. List queue = - new MediaControllerCompat(context, session.getSessionCompatToken()).getQueue(); + new MediaControllerCompat( + context, MediaSessionCompat.Token.fromToken(session.getPlatformToken())) + .getQueue(); int targetIndex = 3; controller.getTransportControls().skipToQueueItem(queue.get(targetIndex).getQueueId()); player.awaitMethodCalled( @@ -691,7 +737,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); handler.postAndSync( () -> { player.timeline = MediaTestUtils.createTimeline(/* windowCount= */ 10); @@ -730,7 +778,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build())); controller = new RemoteMediaControllerCompat( - context, session.get().getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.get().getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); session.get().getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -760,7 +810,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { session = new MediaSession.Builder(context, player).setId("dispatchMediaButtonEvent").build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); session.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -784,7 +836,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { session = new MediaSession.Builder(context, player).setId("dispatchMediaButtonEvent").build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); session.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -823,7 +877,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); session.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -862,7 +918,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build())); controller = new RemoteMediaControllerCompat( - context, session.get().getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.get().getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); Bundle connectionHints = new Bundle(); connectionHints.putBoolean(MediaController.KEY_MEDIA_NOTIFICATION_CONTROLLER_FLAG, true); @@ -909,7 +967,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); session.getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -940,7 +1000,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build())); controller = new RemoteMediaControllerCompat( - context, session.get().getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.get().getPlatformToken()), + /* waitForConnection= */ true); session.get().getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); player.awaitMethodCalled(MockPlayer.METHOD_PLAY, TIMEOUT_MS); @@ -980,7 +1042,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .get(); controller = new RemoteMediaControllerCompat( - context, session.get().getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.get().getPlatformToken()), + /* waitForConnection= */ true); session.get().getSessionCompat().getController().dispatchMediaButtonEvent(keyEvent); @@ -1004,7 +1068,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); @PlaybackStateCompat.ShuffleMode int testShuffleMode = PlaybackStateCompat.SHUFFLE_MODE_GROUP; controller.getTransportControls().setShuffleMode(testShuffleMode); @@ -1022,7 +1088,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); int testRepeatMode = Player.REPEAT_MODE_ALL; controller.getTransportControls().setRepeatMode(testRepeatMode); @@ -1040,7 +1108,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); remotePlayer.commands = @@ -1072,7 +1142,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); remotePlayer.commands = new Player.Commands.Builder().addAllCommands().build(); @@ -1100,7 +1172,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); remotePlayer.commands = @@ -1129,7 +1203,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); handler.postAndSync( @@ -1153,7 +1229,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); remotePlayer.commands = @@ -1182,7 +1260,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); MockPlayer remotePlayer = new MockPlayer.Builder().setApplicationLooper(handler.getLooper()).build(); remotePlayer.commands = new Player.Commands.Builder().addAllCommands().build(); @@ -1212,7 +1292,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); // Here, we intentionally choose STREAM_ALARM in order not to consider // 'Do Not Disturb' or 'Volume limit'. @@ -1262,7 +1344,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); // Here, we intentionally choose STREAM_ALARM in order not to consider // 'Do Not Disturb' or 'Volume limit'. @@ -1345,7 +1429,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.sendCommand(testCommand, testArgs, /* cb= */ null); @@ -1397,7 +1483,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.sendCustomCommand(customCommand, testArgs); @@ -1422,7 +1510,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { // Session will not accept the controller's commands. controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().play(); @@ -1454,7 +1544,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepareFromUri(mediaUri, bundle); @@ -1490,7 +1582,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromUri(request, bundle); @@ -1527,7 +1621,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepareFromMediaId(request, bundle); @@ -1571,7 +1667,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepareFromMediaId(request, bundle); @@ -1609,7 +1707,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromMediaId(mediaId, bundle); @@ -1652,7 +1752,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromMediaId(mediaId, bundle); @@ -1688,7 +1790,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepareFromSearch(query, bundle); @@ -1724,7 +1828,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromSearch(query, bundle); @@ -1758,7 +1864,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().prepareFromUri(Uri.parse("foo://bar"), Bundle.EMPTY); @@ -1788,7 +1896,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromUri(Uri.parse("foo://bar"), Bundle.EMPTY); @@ -1822,7 +1932,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().playFromUri(Uri.parse("foo://bar"), Bundle.EMPTY); @@ -1863,7 +1975,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { new MediaSession.Builder(context, player).setId("setRating").setCallback(callback).build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().setRating(rating); @@ -1896,7 +2010,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); controller.getTransportControls().pause(); @@ -1925,7 +2041,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); // This may hang if deadlock happens. handler.postAndSync( () -> { @@ -1960,7 +2078,9 @@ public class MediaSessionCallbackWithMediaControllerCompatTest { .build(); controller = new RemoteMediaControllerCompat( - context, session.getSessionCompatToken(), /* waitForConnection= */ true); + context, + MediaSessionCompat.Token.fromToken(session.getPlatformToken()), + /* waitForConnection= */ true); session.release(); session = null; diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java index 106900ce6e..8fb9d05eab 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java @@ -27,6 +27,7 @@ import android.os.HandlerThread; import android.os.Looper; import android.support.v4.media.MediaDescriptionCompat; import android.support.v4.media.session.MediaControllerCompat; +import android.support.v4.media.session.MediaSessionCompat; import androidx.media3.common.AudioAttributes; import androidx.media3.common.C; import androidx.media3.common.DeviceInfo; @@ -1083,7 +1084,8 @@ public class MediaSessionPlayerTest { MediaSession session = new MediaSession.Builder(context, player).setId("test").build(); sessionReference.set(session); MediaControllerCompat controller = - new MediaControllerCompat(context, session.getSessionCompatToken()); + new MediaControllerCompat( + context, MediaSessionCompat.Token.fromToken(session.getPlatformToken())); controller.getTransportControls().play(); eventHandled.await(); @@ -1138,7 +1140,8 @@ public class MediaSessionPlayerTest { .build(); sessionReference.set(session); MediaControllerCompat controller = - new MediaControllerCompat(context, session.getSessionCompatToken()); + new MediaControllerCompat( + context, MediaSessionCompat.Token.fromToken(session.getPlatformToken())); controller.getTransportControls().playFromUri(Uri.parse("test://"), Bundle.EMPTY); eventHandled.await(); @@ -1195,7 +1198,8 @@ public class MediaSessionPlayerTest { MainLooperTestRule.runOnMainSync( () -> { MediaControllerCompat controller = - new MediaControllerCompat(context, session.getSessionCompatToken()); + new MediaControllerCompat( + context, MediaSessionCompat.Token.fromToken(session.getPlatformToken())); controller.addQueueItem(new MediaDescriptionCompat.Builder().setMediaId("id").build()); }); eventHandled.await(); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java index b672e1f238..db0b6c52f1 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionServiceTest.java @@ -298,7 +298,8 @@ public class MediaSessionServiceTest { TestServiceRegistry.getInstance().setOnGetSessionHandler(controllerInfo -> mediaSession); MediaControllerCompat mediaControllerCompat = new MediaControllerCompat( - ApplicationProvider.getApplicationContext(), mediaSession.getSessionCompatToken()); + ApplicationProvider.getApplicationContext(), + MediaSessionCompat.Token.fromToken(mediaSession.getPlatformToken())); CountDownLatch controllerReady = new CountDownLatch(1); mediaControllerCompat.registerCallback( new MediaControllerCompat.Callback() { diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java index 200648ffbe..a0f99bfe18 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java @@ -40,8 +40,6 @@ import android.os.Bundle; import android.os.HandlerThread; import android.os.Looper; import android.os.SystemClock; -import android.support.v4.media.session.MediaControllerCompat; -import android.support.v4.media.session.MediaSessionCompat; import android.text.TextUtils; import android.view.KeyEvent; import androidx.media.MediaSessionManager; @@ -452,50 +450,6 @@ public class MediaSessionTest { assertThat(latch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); } - /** Test {@link MediaSession#getSessionCompatToken()}. */ - @Test - public void getSessionCompatToken_returnsCompatibleWithMediaControllerCompat() throws Exception { - MediaSession session = - sessionTestRule.ensureReleaseAfterTest( - new MediaSession.Builder(context, player) - .setId("getSessionCompatToken_returnsCompatibleWithMediaControllerCompat") - .setCallback( - new MediaSession.Callback() { - @Override - public MediaSession.ConnectionResult onConnect( - MediaSession session, ControllerInfo controller) { - if (TextUtils.equals( - getControllerCallerPackageName(controller), - controller.getPackageName())) { - return MediaSession.Callback.super.onConnect(session, controller); - } - return MediaSession.ConnectionResult.reject(); - } - }) - .build()); - Object token = session.getSessionCompatToken(); - assertThat(token).isInstanceOf(MediaSessionCompat.Token.class); - MediaControllerCompat controllerCompat = - new MediaControllerCompat(context, (MediaSessionCompat.Token) token); - CountDownLatch sessionReadyLatch = new CountDownLatch(1); - controllerCompat.registerCallback( - new MediaControllerCompat.Callback() { - @Override - public void onSessionReady() { - sessionReadyLatch.countDown(); - } - }, - handler); - assertThat(sessionReadyLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); - - long testSeekPositionMs = 1234; - controllerCompat.getTransportControls().seekTo(testSeekPositionMs); - - player.awaitMethodCalled(MockPlayer.METHOD_SEEK_TO, TIMEOUT_MS); - assertThat(player.seekPositionMs).isEqualTo(testSeekPositionMs); - } - - /** Test {@link MediaSession#getSessionCompatToken()}. */ @Test public void getPlatformToken_returnsCompatibleWithPlatformMediaController() throws Exception { MediaSession session = diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java index 6b3a7c5d6e..5f7db9b045 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionWithMediaControllerCompatTest.java @@ -24,6 +24,7 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS; import android.content.Context; import android.os.Bundle; import android.support.v4.media.session.MediaControllerCompat; +import android.support.v4.media.session.MediaSessionCompat; import androidx.media3.common.MediaItem; import androidx.media3.common.Player; import androidx.media3.test.session.common.HandlerThreadTestRule; @@ -87,7 +88,8 @@ public class MediaSessionWithMediaControllerCompatTest { sessionTestRule.ensureReleaseAfterTest( new MediaSession.Builder(context, player).setId(TAG).setCallback(callback).build()); RemoteMediaControllerCompat controllerCompat = - remoteControllerTestRule.createRemoteControllerCompat(session.getSessionCompatToken()); + remoteControllerTestRule.createRemoteControllerCompat( + MediaSessionCompat.Token.fromToken(session.getPlatformToken())); // Invoke any command for session to recognize the controller compat. controllerCompat.getTransportControls().prepare(); @@ -130,7 +132,8 @@ public class MediaSessionWithMediaControllerCompatTest { .get(); RemoteMediaControllerCompat controllerCompat = - remoteControllerTestRule.createRemoteControllerCompat(session.getSessionCompatToken()); + remoteControllerTestRule.createRemoteControllerCompat( + MediaSessionCompat.Token.fromToken(session.getPlatformToken())); controllerCompat.transportControls.play(); assertThat(connectedLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); @@ -141,7 +144,8 @@ public class MediaSessionWithMediaControllerCompatTest { SessionCommands.EMPTY, Player.Commands.EMPTY.buildUpon().add(Player.COMMAND_GET_TIMELINE).build()); RemoteMediaControllerCompat controllerCompat2 = - remoteControllerTestRule.createRemoteControllerCompat(session.getSessionCompatToken()); + remoteControllerTestRule.createRemoteControllerCompat( + MediaSessionCompat.Token.fromToken(session.getPlatformToken())); controllerCompat2.transportControls.pause(); assertThat(controllerCompat.getQueueSize()).isEqualTo(2); diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/SessionTokenTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/SessionTokenTest.java index 43304b054a..a576edc659 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/SessionTokenTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/SessionTokenTest.java @@ -162,7 +162,8 @@ public class SessionTokenTest { }); SessionToken token = - SessionToken.createSessionToken(context, session.getSessionCompatToken()) + SessionToken.createSessionToken( + context, MediaSessionCompat.Token.fromToken(session.getPlatformToken())) .get(TIMEOUT_MS, TimeUnit.MILLISECONDS); assertThat(token.isLegacySession()).isFalse();