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

Commit be1033fd authored by Sungsoo Lim's avatar Sungsoo Lim Committed by Android (Google) Code Review
Browse files

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

* changes:
  Remove MediaPlaylistController, add MediaPlaylistAgent
  MediaSession2: Add SessionCallback#onCurrentMediaItemChanged()
  MediaSession2: Add onDataSourceMissingHelper
parents 1fff4c00 df0e8fdf
Loading
Loading
Loading
Loading
+56 −39
Original line number Diff line number Diff line
@@ -23350,14 +23350,14 @@ 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);
    method public void close();
    method public void fastForward();
    method public long getBufferedPosition();
    method public android.media.MediaItem2 getCurrentPlaylistItem();
    method public android.media.MediaItem2 getCurrentMediaItem();
    method public android.media.MediaController2.PlaybackInfo getPlaybackInfo();
    method public float getPlaybackSpeed();
    method public int getPlayerState();
@@ -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);
  }
@@ -23403,7 +23401,7 @@ package android.media {
    method public void onAllowedCommandsChanged(android.media.MediaController2, android.media.MediaSession2.CommandGroup);
    method public void onBufferedPositionChanged(android.media.MediaController2, long);
    method public void onConnected(android.media.MediaController2, android.media.MediaSession2.CommandGroup);
    method public void onCurrentPlaylistItemChanged(android.media.MediaController2, android.media.MediaItem2);
    method public void onCurrentMediaItemChanged(android.media.MediaController2, android.media.MediaItem2);
    method public void onCustomCommand(android.media.MediaController2, android.media.MediaSession2.Command, android.os.Bundle, android.os.ResultReceiver);
    method public void onCustomLayoutChanged(android.media.MediaController2, java.util.List<android.media.MediaSession2.CommandButton>);
    method public void onDisconnected(android.media.MediaController2);
@@ -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,22 +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 android.media.MediaItem2 getCurrentPlaylistItem();
    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
@@ -24566,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 {
@@ -24850,16 +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 getCurrentPlaylistItem();
    method public android.media.MediaPlaylistController getMediaPlaylistController();
    method public android.media.MediaItem2 getCurrentMediaItem();
    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();
@@ -24879,16 +24887,16 @@ package android.media {
    method public void setAllowedCommands(android.media.MediaSession2.ControllerInfo, android.media.MediaSession2.CommandGroup);
    method public void setAudioFocusRequest(android.media.AudioFocusRequest);
    method public void setCustomLayout(android.media.MediaSession2.ControllerInfo, java.util.List<android.media.MediaSession2.CommandButton>);
    method public void setOnDataSourceMissingHelper(android.media.MediaSession2.OnDataSourceMissingHelper);
    method public void setPlaybackSpeed(float);
    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
@@ -24939,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);
@@ -24988,11 +24996,16 @@ package android.media {
    method public boolean isTrusted();
  }
  public static abstract interface MediaSession2.OnDataSourceMissingHelper {
    method public abstract android.media.DataSourceDesc onDataSourceMissing(android.media.MediaSession2, android.media.MediaItem2);
  }
  public static abstract class MediaSession2.SessionCallback {
    ctor public MediaSession2.SessionCallback(android.content.Context);
    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 onCurrentMediaItemChanged(android.media.MediaSession2, android.media.MediaPlayerBase, android.media.MediaItem2);
    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.MediaPlayerBase, android.media.MediaItem2);
@@ -25000,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 {
+88 −60

File changed.

Preview size limit exceeded, changes collapsed.

+9 −2
Original line number Diff line number Diff line
@@ -139,6 +139,13 @@ public class MediaItem2 {
        return mProvider.getDataSourceDesc_impl();
    }

    @Override
    public boolean equals(Object obj) {
        // TODO(jaewan): Override this. MediaItem2 may have auto-generated srcId when the DSD isn't
        //               set, and it should be compared for the equals.
        return super.equals(obj);
    }

    /**
     * Build {@link MediaItem2}
     */
@@ -189,12 +196,12 @@ public class MediaItem2 {
        }

        /**
         * Set the data source descriptor for this instance. Should not be {@code null}.
         * Set the data source descriptor for this instance. {@code null} for unset.
         *
         * @param dataSourceDesc data source descriptor
         * @return this instance for chaining
         */
        public Builder setDataSourceDesc(@NonNull DataSourceDesc dataSourceDesc) {
        public Builder setDataSourceDesc(@Nullable DataSourceDesc dataSourceDesc) {
            return mProvider.setDataSourceDesc_impl(dataSourceDesc);
        }

+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
Loading