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

Commit 15fe6342 authored by Hyundo Moon's avatar Hyundo Moon Committed by Jaewan Kim
Browse files

MediaSession2/Controller2: Add playlist support

This CL does the following:
 - Removes PlaylistParams argument from all playlist related methods.
   (i.e. setPlaylist(List, PlaylistParams) becomes setPlaylist(List))
 - Adds methods (to/fromBundle, to/fromBundleList) into MediaItem2.

Bug: 72537268
Test: Passed MediaSession2Test
Change-Id: I48ef69ad2728fb7de7efab10f4e077aec552dd0b
parent 44fec2d6
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -126,11 +126,9 @@ public class MediaController2 implements AutoCloseable {
        /**
         * Called when the playlist is changed.
         *
         * @param list
         * @param param
         * @param playlist A new playlist set by the session.
         */
        public void onPlaylistChanged(
                @NonNull List<MediaItem2> list, @NonNull PlaylistParams param) { }
        public void onPlaylistChanged(@NonNull List<MediaItem2> playlist) { }

        /**
         * Called when the playback state is changed, or connection success.
+1 −1
Original line number Diff line number Diff line
@@ -64,10 +64,10 @@ public interface MediaPlayerInterface {
    @Nullable
    AudioAttributes getAudioAttributes();

    void setPlaylist(List<MediaItem2> list, PlaylistParams param);
    void addPlaylistItem(int index, MediaItem2 item);
    void removePlaylistItem(MediaItem2 item);

    void setPlaylist(List<MediaItem2> playlist);
    List<MediaItem2> getPlaylist();

    void setCurrentPlaylistItem(int index);
+11 −2
Original line number Diff line number Diff line
@@ -1262,10 +1262,19 @@ public class MediaSession2 implements AutoCloseable {
        // To match with KEYCODE_MEDIA_SKIP_BACKWARD
    }

    public void setPlaylist(@NonNull List<MediaItem2> playlist, @NonNull PlaylistParams param) {
        mProvider.setPlaylist_impl(playlist, param);
    /**
     * Sets a list of {@link MediaItem2} as the current play list.
     *
     * @param playlist A list of {@link MediaItem2} objects to set as a play list.
     * @throws IllegalArgumentException if given {@param playlist} is null.
     */
    public void setPlaylist(@NonNull List<MediaItem2> playlist) {
        mProvider.setPlaylist_impl(playlist);
    }

    /**
     * Returns the playlist which is lastly set.
     */
    public List<MediaItem2> getPlaylist() {
        return mProvider.getPlaylist_impl();
    }
+2 −2
Original line number Diff line number Diff line
@@ -97,8 +97,8 @@ public class SessionPlayer2 implements MediaPlayerInterface {
    }

    @Override
    public void setPlaylist(List<MediaItem2> list, PlaylistParams param) {
        mProvider.setPlaylist_impl(list, param);
    public void setPlaylist(List<MediaItem2> playlist) {
        mProvider.setPlaylist_impl(playlist);
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ public interface MediaSession2Provider extends TransportControlProvider {
    void sendCustomCommand_impl(ControllerInfo controller, Command command, Bundle args,
            ResultReceiver receiver);
    void sendCustomCommand_impl(Command command, Bundle args);
    void setPlaylist_impl(List<MediaItem2> playlist, PlaylistParams param);
    void setPlaylist_impl(List<MediaItem2> playlist);
    List<MediaItem2> getPlaylist_impl();
    void setPlaylistParams_impl(PlaylistParams params);
    PlaylistParams getPlaylistParams_impl();
Loading