From 2cbab10419f99297b13e34cd5cd9754dd707e541 Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 26 Apr 2023 17:09:16 +0100 Subject: [PATCH] Deprecate onPlayerCommandRequest This method doesn't really serve a purpose that isn't handled elsewhere. The return value is also not forwarded to anyone. PiperOrigin-RevId: 527283166 --- api.txt | 2 +- .../androidx/media3/session/MediaSession.java | 15 ++++----------- .../androidx/media3/session/MediaSessionImpl.java | 1 + 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/api.txt b/api.txt index a93a4db773..b87d5945f1 100644 --- a/api.txt +++ b/api.txt @@ -1733,7 +1733,7 @@ package androidx.media3.session { method public default androidx.media3.session.MediaSession.ConnectionResult onConnect(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); method public default com.google.common.util.concurrent.ListenableFuture onCustomCommand(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.session.SessionCommand, android.os.Bundle); method public default void onDisconnected(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); - method @androidx.media3.session.SessionResult.Code public default int onPlayerCommandRequest(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, @androidx.media3.common.Player.Command int); + method @Deprecated @androidx.media3.session.SessionResult.Code public default int onPlayerCommandRequest(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, @androidx.media3.common.Player.Command int); method public default void onPostConnect(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo); method public default com.google.common.util.concurrent.ListenableFuture onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, String, androidx.media3.common.Rating); method public default com.google.common.util.concurrent.ListenableFuture onSetRating(androidx.media3.session.MediaSession, androidx.media3.session.MediaSession.ControllerInfo, androidx.media3.common.Rating); 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 e4c19abb8f..32db3ed4ef 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSession.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSession.java @@ -1019,18 +1019,11 @@ public class MediaSession { default void onDisconnected(MediaSession session, ControllerInfo controller) {} /** - * Called when a controller sent a command which will be sent directly to the underlying {@link - * Player}. - * - *

Return {@link SessionResult#RESULT_SUCCESS} to proceed the command. Otherwise, the command - * won't be sent and the controller will receive the code. This method will be called for every - * single command. - * - * @param session The session for this event. - * @param controller The controller information. - * @param playerCommand A {@link Player.Command command}. - * @return {@link SessionResult#RESULT_SUCCESS} to proceed, or another code to ignore. + * @deprecated Modify the {@link Player#getAvailableCommands() available commands} of the player + * or use {@link MediaSession#setAvailableCommands} instead. The controller triggering a + * {@link Player} method can be obtained via {@link #getControllerForCurrentRequest()}. */ + @Deprecated default @SessionResult.Code int onPlayerCommandRequest( MediaSession session, ControllerInfo controller, @Player.Command int playerCommand) { return RESULT_SUCCESS; diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java index 100d281536..ae4f415f96 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionImpl.java @@ -437,6 +437,7 @@ import org.checkerframework.checker.initialization.qual.Initialized; callback.onDisconnected(instance, controller); } + @SuppressWarnings("deprecation") // Calling deprecated callback method. public @SessionResult.Code int onPlayerCommandRequestOnHandler( ControllerInfo controller, @Player.Command int playerCommand) { return callback.onPlayerCommandRequest(instance, controller, playerCommand);