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

Commit e09bf4f7 authored by Sungsoo Lim's avatar Sungsoo Lim Committed by android-build-merger
Browse files

Merge changes from topics "mplc", "session2_onDataSourceMissingHelper" into pi-dev

am: be1033fd

Change-Id: Ib9c2dfe21f3572eab3027c2a6e8040880b6777d4
parents 37e3316b be1033fd
Loading
Loading
Loading
Loading
+46 −35
Original line number Diff line number Diff line
@@ -23350,7 +23350,7 @@ package android.media {
    field public static final int REGULAR_CODECS = 0; // 0x0
  }
  public class MediaController2 implements java.lang.AutoCloseable android.media.MediaPlaylistController {
  public class MediaController2 implements java.lang.AutoCloseable {
    ctor public MediaController2(android.content.Context, android.media.SessionToken2, java.util.concurrent.Executor, android.media.MediaController2.ControllerCallback);
    method public void addPlaylistItem(int, android.media.MediaItem2);
    method public void adjustVolume(int, int);
@@ -23378,7 +23378,6 @@ package android.media {
    method public void prepareFromMediaId(java.lang.String, android.os.Bundle);
    method public void prepareFromSearch(java.lang.String, android.os.Bundle);
    method public void prepareFromUri(android.net.Uri, android.os.Bundle);
    method public void registerPlaylistControllerCallback(java.util.concurrent.Executor, android.media.MediaPlaylistController.PlaylistEventCallback);
    method public void removePlaylistItem(android.media.MediaItem2);
    method public void replacePlaylistItem(int, android.media.MediaItem2);
    method public void rewind();
@@ -23390,11 +23389,10 @@ package android.media {
    method public void setRepeatMode(int);
    method public void setShuffleMode(int);
    method public void setVolumeTo(int, int);
    method public void skipToNext();
    method public void skipToNextItem();
    method public void skipToPlaylistItem(android.media.MediaItem2);
    method public void skipToPrevious();
    method public void skipToPreviousItem();
    method public void stop();
    method public void unregisterPlaylistControllerCallback(android.media.MediaPlaylistController.PlaylistEventCallback);
    method public void updatePlaylistMetadata(android.media.MediaMetadata2);
  }
@@ -23411,7 +23409,11 @@ package android.media {
    method public void onPlaybackInfoChanged(android.media.MediaController2, android.media.MediaController2.PlaybackInfo);
    method public void onPlaybackSpeedChanged(android.media.MediaController2, float);
    method public void onPlayerStateChanged(android.media.MediaController2, int);
    method public void onPlaylistChanged(android.media.MediaController2, android.media.MediaPlaylistAgent, java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void onPlaylistMetadataChanged(android.media.MediaController2, android.media.MediaPlaylistAgent, android.media.MediaMetadata2);
    method public void onPositionChanged(android.media.MediaController2, long, long);
    method public void onRepeatModeChanged(android.media.MediaController2, android.media.MediaPlaylistAgent, int);
    method public void onShuffleModeChanged(android.media.MediaController2, android.media.MediaPlaylistAgent, int);
  }
  public static final class MediaController2.PlaybackInfo {
@@ -23872,7 +23874,7 @@ package android.media {
    method public android.media.MediaLibraryService2.MediaLibrarySession build();
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setId(java.lang.String);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setPlayer(android.media.MediaPlayerBase);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setPlaylistController(android.media.MediaPlaylistController);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setPlaylistAgent(android.media.MediaPlaylistAgent);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setSessionCallback(java.util.concurrent.Executor, android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback);
    method public android.media.MediaLibraryService2.MediaLibrarySession.Builder setVolumeProvider(android.media.VolumeProvider2);
@@ -24541,21 +24543,28 @@ package android.media {
    method public void onPlayerStateChanged(android.media.MediaPlayerBase, int);
  }
  public abstract interface MediaPlaylistController {
    method public abstract void addPlaylistItem(int, android.media.MediaItem2);
    method public abstract java.util.List<android.media.MediaItem2> getPlaylist();
    method public abstract android.media.MediaMetadata2 getPlaylistMetadata();
    method public abstract int getRepeatMode();
    method public abstract int getShuffleMode();
    method public abstract void registerPlaylistControllerCallback(java.util.concurrent.Executor, android.media.MediaPlaylistController.PlaylistEventCallback);
    method public abstract void removePlaylistItem(android.media.MediaItem2);
    method public abstract void replacePlaylistItem(int, android.media.MediaItem2);
    method public abstract void setPlaylist(java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public abstract void setRepeatMode(int);
    method public abstract void setShuffleMode(int);
    method public abstract void skipToPlaylistItem(android.media.MediaItem2);
    method public abstract void unregisterPlaylistControllerCallback(android.media.MediaPlaylistController.PlaylistEventCallback);
    method public abstract void updatePlaylistMetadata(android.media.MediaMetadata2);
  public abstract class MediaPlaylistAgent {
    ctor public MediaPlaylistAgent(android.content.Context);
    method public void addPlaylistItem(int, android.media.MediaItem2);
    method public java.util.List<android.media.MediaItem2> getPlaylist();
    method public android.media.MediaMetadata2 getPlaylistMetadata();
    method public int getRepeatMode();
    method public int getShuffleMode();
    method public final void notifyPlaylistChanged();
    method public final void notifyPlaylistMetadataChanged();
    method public final void notifyRepeatModeChanged();
    method public final void notifyShuffleModeChanged();
    method public final void registerPlaylistEventCallback(java.util.concurrent.Executor, android.media.MediaPlaylistAgent.PlaylistEventCallback);
    method public void removePlaylistItem(android.media.MediaItem2);
    method public void replacePlaylistItem(int, android.media.MediaItem2);
    method public void setPlaylist(java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void setRepeatMode(int);
    method public void setShuffleMode(int);
    method public void skipToNextItem();
    method public void skipToPlaylistItem(android.media.MediaItem2);
    method public void skipToPreviousItem();
    method public final void unregisterPlaylistEventCallback(android.media.MediaPlaylistAgent.PlaylistEventCallback);
    method public void updatePlaylistMetadata(android.media.MediaMetadata2);
    field public static final int REPEAT_MODE_ALL = 2; // 0x2
    field public static final int REPEAT_MODE_GROUP = 3; // 0x3
    field public static final int REPEAT_MODE_NONE = 0; // 0x0
@@ -24565,12 +24574,12 @@ package android.media {
    field public static final int SHUFFLE_MODE_NONE = 0; // 0x0
  }
  public static abstract class MediaPlaylistController.PlaylistEventCallback {
    ctor public MediaPlaylistController.PlaylistEventCallback();
    method public void onPlaylistChanged(android.media.MediaPlaylistController, java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void onPlaylistMetadataChanged(android.media.MediaPlaylistController, android.media.MediaMetadata2);
    method public void onRepeatModeChanged(android.media.MediaPlaylistController, int);
    method public void onShuffleModeChanged(android.media.MediaPlaylistController, int);
  public static abstract class MediaPlaylistAgent.PlaylistEventCallback {
    ctor public MediaPlaylistAgent.PlaylistEventCallback();
    method public void onPlaylistChanged(android.media.MediaPlaylistAgent, java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void onPlaylistMetadataChanged(android.media.MediaPlaylistAgent, android.media.MediaMetadata2);
    method public void onRepeatModeChanged(android.media.MediaPlaylistAgent, int);
    method public void onShuffleModeChanged(android.media.MediaPlaylistAgent, int);
  }
  public class MediaRecorder implements android.media.AudioRouting {
@@ -24849,17 +24858,17 @@ package android.media {
    method public abstract void onScanCompleted(java.lang.String, android.net.Uri);
  }
  public class MediaSession2 implements java.lang.AutoCloseable android.media.MediaPlaylistController {
  public class MediaSession2 implements java.lang.AutoCloseable {
    method public void addPlaylistItem(int, android.media.MediaItem2);
    method public void clearOnDataSourceMissingHelper();
    method public void close();
    method public void fastForward();
    method public java.util.List<android.media.MediaSession2.ControllerInfo> getConnectedControllers();
    method public android.media.MediaItem2 getCurrentMediaItem();
    method public android.media.MediaPlaylistController getMediaPlaylistController();
    method public float getPlaybackSpeed();
    method public android.media.MediaPlayerBase getPlayer();
    method public java.util.List<android.media.MediaItem2> getPlaylist();
    method public android.media.MediaPlaylistAgent getPlaylistAgent();
    method public android.media.MediaMetadata2 getPlaylistMetadata();
    method public int getRepeatMode();
    method public int getShuffleMode();
@@ -24869,7 +24878,6 @@ package android.media {
    method public void pause();
    method public void play();
    method public void prepare();
    method public void registerPlaylistControllerCallback(java.util.concurrent.Executor, android.media.MediaPlaylistController.PlaylistEventCallback);
    method public void removePlaylistItem(android.media.MediaItem2);
    method public void replacePlaylistItem(int, android.media.MediaItem2);
    method public void rewind();
@@ -24884,12 +24892,11 @@ package android.media {
    method public void setPlaylist(java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void setRepeatMode(int);
    method public void setShuffleMode(int);
    method public void skipToNext();
    method public void skipToNextItem();
    method public void skipToPlaylistItem(android.media.MediaItem2);
    method public void skipToPrevious();
    method public void skipToPreviousItem();
    method public void stop();
    method public void unregisterPlaylistControllerCallback(android.media.MediaPlaylistController.PlaylistEventCallback);
    method public void updatePlayer(android.media.MediaPlayerBase, android.media.MediaPlaylistController, android.media.VolumeProvider2);
    method public void updatePlayer(android.media.MediaPlayerBase, android.media.MediaPlaylistAgent, android.media.VolumeProvider2);
    method public void updatePlaylistMetadata(android.media.MediaMetadata2);
    field public static final int COMMAND_CODE_BROWSER = 28; // 0x1c
    field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
@@ -24940,7 +24947,7 @@ package android.media {
    method public android.media.MediaSession2 build();
    method public android.media.MediaSession2.Builder setId(java.lang.String);
    method public android.media.MediaSession2.Builder setPlayer(android.media.MediaPlayerBase);
    method public android.media.MediaSession2.Builder setPlaylistController(android.media.MediaPlaylistController);
    method public android.media.MediaSession2.Builder setPlaylistAgent(android.media.MediaPlaylistAgent);
    method public android.media.MediaSession2.Builder setSessionActivity(android.app.PendingIntent);
    method public android.media.MediaSession2.Builder setSessionCallback(java.util.concurrent.Executor, android.media.MediaSession2.SessionCallback);
    method public android.media.MediaSession2.Builder setVolumeProvider(android.media.VolumeProvider2);
@@ -25006,10 +25013,14 @@ package android.media {
    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, android.media.MediaPlayerBase, int);
    method public void onPlaylistChanged(android.media.MediaSession2, android.media.MediaPlaylistAgent, java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    method public void onPlaylistMetadataChanged(android.media.MediaSession2, android.media.MediaPlaylistAgent, android.media.MediaMetadata2);
    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);
    method public void onRepeatModeChanged(android.media.MediaSession2, android.media.MediaPlaylistAgent, int);
    method public void onSetRating(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.String, android.media.Rating2);
    method public void onShuffleModeChanged(android.media.MediaSession2, android.media.MediaPlaylistAgent, int);
  }
  public abstract class MediaSessionService2 extends android.app.Service {
+82 −53
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.PendingIntent;
import android.content.Context;
import android.media.MediaPlaylistAgent.RepeatMode;
import android.media.MediaPlaylistAgent.ShuffleMode;
import android.media.MediaSession2.Command;
import android.media.MediaSession2.CommandButton;
import android.media.MediaSession2.CommandGroup;
@@ -65,7 +67,7 @@ import java.util.concurrent.Executor;
 * @see MediaSession2
 * @see MediaSessionService2
 */
public class MediaController2 implements AutoCloseable, MediaPlaylistController {
public class MediaController2 implements AutoCloseable {
    /**
     * Interface for listening to change in activeness of the {@link MediaSession2}.  It's
     * active if and only if it has set a player.
@@ -224,6 +226,57 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
        public void onCurrentMediaItemChanged(@NonNull MediaController2 controller,
                @NonNull MediaItem2 item) { }

        /**
         * Called when a playlist is changed.
         *
         * @param controller the controller for this event
         * @param mplc playlist controller for this event
         * @param list new playlist
         * @param metadata new metadata
         */
        public void onPlaylistChanged(@NonNull MediaController2 controller,
                @NonNull MediaPlaylistAgent mplc, @NonNull List<MediaItem2> list,
                @Nullable MediaMetadata2 metadata) { }

        /**
         * Called when a playlist metadata is changed.
         *
         * @param controller the controller for this event
         * @param mplc playlist controller for this event
         * @param metadata new metadata
         */
        public void onPlaylistMetadataChanged(@NonNull MediaController2 controller,
                @NonNull MediaPlaylistAgent mplc, @Nullable MediaMetadata2 metadata) { }

        /**
         * Called when the shuffle mode is changed.
         *
         * @param controller the controller for this event
         * @param mplc playlist controller for this event
         * @param shuffleMode repeat mode
         * @see MediaPlaylistAgent#SHUFFLE_MODE_NONE
         * @see MediaPlaylistAgent#SHUFFLE_MODE_ALL
         * @see MediaPlaylistAgent#SHUFFLE_MODE_GROUP
         */
        public void onShuffleModeChanged(@NonNull MediaController2 controller,
                @NonNull MediaPlaylistAgent mplc,
                @MediaPlaylistAgent.ShuffleMode int shuffleMode) { }

        /**
         * Called when the repeat mode is changed.
         *
         * @param controller the controller for this event
         * @param mplc playlist controller for this event
         * @param repeatMode repeat mode
         * @see MediaPlaylistAgent#REPEAT_MODE_NONE
         * @see MediaPlaylistAgent#REPEAT_MODE_ONE
         * @see MediaPlaylistAgent#REPEAT_MODE_ALL
         * @see MediaPlaylistAgent#REPEAT_MODE_GROUP
         */
        public void onRepeatModeChanged(@NonNull MediaController2 controller,
                @NonNull MediaPlaylistAgent mplc,
                @MediaPlaylistAgent.RepeatMode int repeatMode) { }

        /**
         * Called when the playlist parameters are changed.
         *
@@ -398,14 +451,6 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
        mProvider.stop_impl();
    }

    public void skipToPrevious() {
        mProvider.skipToPrevious_impl();
    }

    public void skipToNext() {
        mProvider.skipToNext_impl();
    }

    /**
     * Request that the player prepare its playback. In other words, other sessions can continue
     * to play during the preparation of this session. This method can be used to speed up the
@@ -701,57 +746,39 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
        mProvider.sendCustomCommand_impl(command, args, cb);
    }

    /**
     * Register {@link MediaPlaylistController.PlaylistEventCallback} to listen changes in the
     * underlying {@link MediaPlaylistController}, regardless of the change in the controller.
     * <p>
     * Registered callbacks will be also called when the controller is changed.
     *
     * @param executor a callback Executor
     * @param callback a PlaylistEventCallback
     * @throws IllegalArgumentException if executor or callback is {@code null}.
     */
    @Override
    public void registerPlaylistControllerCallback(@NonNull @CallbackExecutor Executor executor,
            @NonNull PlaylistEventCallback callback) {
        // TODO(jaewan): Implement (b/74169681)
        //mProvider.registerPlaylistControllerCallback_impl(executor, callback);
    }

    /**
     * Unregister the previously registered {@link MediaPlaylistController.PlaylistEventCallback}.
     *
     * @param callback the callback to be removed
     * @throws IllegalArgumentException if the callback is {@code null}.
     */
    @Override
    public void unregisterPlaylistControllerCallback(@NonNull PlaylistEventCallback callback) {
        // TODO(jaewan): Implement (b/74169681)
        //mProvider.unregisterPlaylistControllerCallback_impl(callback);
    }

    /**
     * Return playlist from the session.
     *
     * @return playlist. Can be {@code null} if the controller doesn't have enough permission.
     */
    @Override
    public @Nullable List<MediaItem2> getPlaylist() {
        return mProvider.getPlaylist_impl();
    }


    @Override
    /**
     * Sets the playlist.
     *
     * @param list playlist
     * @param metadata metadata of the playlist
     */
    public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) {
        // TODO(jaewan): Implement (b/74174649)
    }

    @Override
    /**
     * Updates the playlist metadata
     *
     * @param metadata metadata of the playlist
     */
    public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) {
        // TODO(jaewan): Implement (b/74174649)
    }

    @Override
    /**
     * Returns the playlist metadata
     *
     * @return metadata metadata of the playlist, or null if none is set
     */
    public @Nullable MediaMetadata2 getPlaylistMetadata() {
        // TODO(jaewan): Implement (b/74174649)
        return null;
@@ -779,7 +806,6 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
     * @param item the media item you want to add
     * @throws IndexOutOfBoundsException if index is outside play list range
     */
    @Override
    public void addPlaylistItem(int index, @NonNull MediaItem2 item) {
        mProvider.addPlaylistItem_impl(index, item);
    }
@@ -790,7 +816,6 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
     * If the item is the currently playing item of the playlist, current playback
     * will be stopped and playback moves to next source in the list.
     */
    @Override
    public void removePlaylistItem(@NonNull MediaItem2 item) {
        mProvider.removePlaylistItem_impl(item);
    }
@@ -800,7 +825,6 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
     * @param index the index of the item to replace
     * @param item the new item
     */
    @Override
    public void replacePlaylistItem(int index, @NonNull MediaItem2 item) {
        mProvider.replacePlaylistItem_impl(index, item);
    }
@@ -823,30 +847,35 @@ public class MediaController2 implements AutoCloseable, MediaPlaylistController
     * @throws IllegalArgumentException if the play list is null
     * @throws NullPointerException if index is outside play list range
     */
    @Override
    public void skipToPlaylistItem(@NonNull MediaItem2 item) {
        mProvider.skipToPlaylistItem_impl(item);
    }

    @Override
    public void skipToPreviousItem() {
        // TODO(jaewan): fix this
        mProvider.skipToPrevious_impl();
    }

    public void skipToNextItem() {
        // TODO(jaewan): fix this
        mProvider.skipToNext_impl();
    }

    public @RepeatMode int getRepeatMode() {
        // TODO(jaewan): Implement (b/74118768)
        return 0;
    }

    @Override
    public void setRepeatMode(int repeatMode) {
    public void setRepeatMode(@RepeatMode int repeatMode) {
        // TODO(jaewan): Implement (b/74118768)
    }

    @Override
    public @ShuffleMode int getShuffleMode() {
        // TODO(jaewan): Implement (b/74118768)
        return 0;
    }

    @Override
    public void setShuffleMode(int shuffleMode) {
    public void setShuffleMode(@ShuffleMode int shuffleMode) {
        // TODO(jaewan): Implement (b/74118768)
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -221,8 +221,8 @@ public abstract class MediaLibraryService2 extends MediaSessionService2 {
            }

            @Override
            public Builder setPlaylistController(@NonNull MediaPlaylistController mplc) {
                return super.setPlaylistController(mplc);
            public Builder setPlaylistAgent(@NonNull MediaPlaylistAgent mplc) {
                return super.setPlaylistAgent(mplc);
            }

            @Override
+82 −65

File changed.

Preview size limit exceeded, changes collapsed.

Loading