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

Commit 661433de authored by Hyundo Moon's avatar Hyundo Moon
Browse files

MediaSession2: Add playlist parameter supports

This CL adds following APIs:
 - MediaPlayerInterface.set/getPlaylistParams()
 - MediaSession2.set/getPlaylistParams()
 - MediaController2.setPlaylistParams()
 - ControllerCallback.onPlaylistParamsChanged()

Bug: 72537520
Test: Passed MediaSession2Test
Change-Id: I84ea00ee0876725af1c0e01ad50da15fdb222418
parent 150cca87
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.media.IMediaSession2;
 */
oneway interface IMediaSession2Callback {
    void onPlaybackStateChanged(in Bundle state);
    void onPlaylistParamsChanged(in Bundle params);

    /**
     * Called only when the controller is created with service's token.
+18 −0
Original line number Diff line number Diff line
@@ -138,6 +138,13 @@ public class MediaController2 implements AutoCloseable {
         * @param state
         */
        public void onPlaybackStateChanged(@NonNull PlaybackState2 state) { }

        /**
         * Called when the playlist parameters are changed.
         *
         * @param params The new play list parameters.
         */
        public void onPlaylistParamsChanged(@NonNull PlaylistParams params) { }
    }

    /**
@@ -358,6 +365,17 @@ public class MediaController2 implements AutoCloseable {
        mProvider.setCurrentPlaylistItem_impl(index);
    }

    /**
     * Sets the {@link PlaylistParams} for the current play list. Repeat/shuffle mode and metadata
     * for the list can be set by calling this method.
     *
     * @param params A {@link PlaylistParams} object to set.
     * @throws IllegalArgumentException if given {@param param} is null.
     */
    public void setPlaylistParams(PlaylistParams params) {
        mProvider.setPlaylistParams_impl(params);
    }

    /**
     * @hide
     */
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,8 @@ public interface MediaPlayerInterface {

    void setPlaylist(List<MediaItem2> item, PlaylistParams param);
    void setCurrentPlaylistItem(int index);
    void setPlaylistParams(PlaylistParams params);
    PlaylistParams getPlaylistParams();

    /**
     * Add a {@link PlaybackListener} to be invoked when the playback state is changed.
+19 −0
Original line number Diff line number Diff line
@@ -1264,4 +1264,23 @@ public class MediaSession2 implements AutoCloseable {
    public void setPlaylist(@NonNull List<MediaItem2> playlist, @NonNull PlaylistParams param) {
        mProvider.setPlaylist_impl(playlist, param);
    }

    /**
     * Sets the {@link PlaylistParams} for the current play list. Repeat/shuffle mode and metadata
     * for the list can be set by calling this method.
     *
     * @param params A {@link PlaylistParams} object to set.
     * @throws IllegalArgumentException if given {@param param} is null.
     */
    public void setPlaylistParams(PlaylistParams params) {
        mProvider.setPlaylistParams_impl(params);
    }

    /**
     * Returns the {@link PlaylistParams} for the current play list.
     * Returns {@code null} if not set.
     */
    public PlaylistParams getPlaylistParams() {
        return mProvider.getPlaylistParams_impl();
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -61,5 +61,6 @@ public interface MediaController2Provider extends TransportControlProvider {
    void addPlaylistItem_impl(int index, MediaItem2 item);

    PlaylistParams getPlaylistParam_impl();
    void setPlaylistParams_impl(PlaylistParams params);
    PlaybackState2 getPlaybackState_impl();
}
Loading