Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42a36c34 authored by Jaewan Kim's avatar Jaewan Kim
Browse files

MediaSession2: Pass player info for the callbacks from MediaPlayerBase

Player can be updated meantime, and player event from the previous
player can be sent after the update. Providing player information will
provide developers more opportunity to filter out unecessary callbacks.

Bug: 64098437
Test: Run MediaComponents test
Change-Id: I9c23101df139e26351c008462c726ae7069130eb
parent 273130dc
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -24994,16 +24994,16 @@ package android.media {
  public static abstract class MediaSession2.SessionCallback {
    ctor public MediaSession2.SessionCallback(android.content.Context);
    method public void onBufferingStateChanged(android.media.MediaSession2, android.media.MediaItem2, int);
    method public void onBufferingStateChanged(android.media.MediaSession2, android.media.MediaPlayerBase, android.media.MediaItem2, int);
    method public boolean onCommandRequest(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.media.MediaSession2.Command);
    method public android.media.MediaSession2.CommandGroup onConnect(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo);
    method public void onCustomCommand(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.media.MediaSession2.Command, android.os.Bundle, android.os.ResultReceiver);
    method public void onDisconnected(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo);
    method public void onMediaPrepared(android.media.MediaSession2, android.media.MediaItem2);
    method public void onMediaPrepared(android.media.MediaSession2, android.media.MediaPlayerBase, android.media.MediaItem2);
    method public void onPlayFromMediaId(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
    method public void onPlayFromSearch(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
    method public void onPlayFromUri(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle);
    method public void onPlayerStateChanged(android.media.MediaSession2, int);
    method public void onPlayerStateChanged(android.media.MediaSession2, android.media.MediaPlayerBase, int);
    method public void onPrepareFromMediaId(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
    method public void onPrepareFromSearch(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.String, android.os.Bundle);
    method public void onPrepareFromUri(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.net.Uri, android.os.Bundle);
+8 −3
Original line number Diff line number Diff line
@@ -759,26 +759,31 @@ public class MediaSession2 implements AutoCloseable, MediaPlaylistController {
         * Called when the player is <i>prepared</i>, i.e. it is ready to play the content
         * referenced by the given data source.
         * @param session the session for this event
         * @param mpb the player for this event
         * @param item the media item for which buffering is happening
         */
        public void onMediaPrepared(@NonNull MediaSession2 session, @NonNull MediaItem2 item) { }
        public void onMediaPrepared(@NonNull MediaSession2 session, @NonNull MediaPlayerBase mpb,
                @NonNull MediaItem2 item) { }

        /**
         * Called to indicate that the state of the player has changed.
         * See {@link MediaPlayerBase#getPlayerState()} for polling the player state.
         * @param session the session for this event
         * @param mpb the player for this event
         * @param state the new state of the player.
         */
        public void onPlayerStateChanged(@NonNull MediaSession2 session, @PlayerState int state) { }
        public void onPlayerStateChanged(@NonNull MediaSession2 session,
                @NonNull MediaPlayerBase mpb, @PlayerState int state) { }

        /**
         * Called to report buffering events for a data source.
         * @param session the session for this event
         * @param mpb the player for this event
         * @param item the media item for which buffering is happening.
         * @param state the new buffering state.
         */
        public void onBufferingStateChanged(@NonNull MediaSession2 session,
                @NonNull MediaItem2 item, @BuffState int state) { }
                @NonNull MediaPlayerBase mpb, @NonNull MediaItem2 item, @BuffState int state) { }
    };

    /**