diff options
| author | 2018-03-12 18:04:17 +0900 | |
|---|---|---|
| committer | 2018-03-13 11:59:18 +0900 | |
| commit | 8562fd9504c28151b52342af5dc83be3c1c9780c (patch) | |
| tree | 80b68ee41b3113e505b88e0f28e8ccb1e8076196 | |
| parent | dc5ab8095a98eb4d128a057f2ecd14c3cff9da8a (diff) | |
MediaSession2: Implement add/remove/replacePlaylistItem()
Bug: 73149584
Test: Run CTS with MediaComponents/runcts.sh
Change-Id: I29804f52eaca45de21fd66634e4eeee2c72a9a25
| -rw-r--r-- | media/java/android/media/MediaController2.java | 11 | ||||
| -rw-r--r-- | media/java/android/media/MediaItem2.java | 11 | ||||
| -rw-r--r-- | media/java/android/media/MediaSession2.java | 22 | ||||
| -rw-r--r-- | media/java/android/media/update/MediaItem2Provider.java | 1 | ||||
| -rw-r--r-- | media/java/android/media/update/MediaSession2Provider.java | 1 |
5 files changed, 29 insertions, 17 deletions
diff --git a/media/java/android/media/MediaController2.java b/media/java/android/media/MediaController2.java index 4b140d7035bd..30b7f70ccf3b 100644 --- a/media/java/android/media/MediaController2.java +++ b/media/java/android/media/MediaController2.java @@ -790,7 +790,7 @@ public class MediaController2 implements AutoCloseable { } /** - * Returns the lastly cached playlist playlist metadata either from + * Gets the lastly cached playlist playlist metadata either from * {@link ControllerCallback#onPlaylistMetadataChanged( * MediaController2, MediaPlaylistAgent, MediaMetadata2)} or * {@link ControllerCallback#onPlaylistChanged( @@ -814,15 +814,14 @@ public class MediaController2 implements AutoCloseable { } /** - * Inserts the media item to the play list at position index. + * Inserts the media item to the playlist at position index. * <p> * This will not change the currently playing media item. - * If index is less than or equal to the current index of the play list, - * the current index of the play list will be incremented correspondingly. + * If index is less than or equal to the current index of the playlist, + * the current index of the playlist will be incremented correspondingly. * * @param index the index you want to add * @param item the media item you want to add - * @throws IndexOutOfBoundsException if index is outside play list range */ public void addPlaylistItem(int index, @NonNull MediaItem2 item) { mProvider.addPlaylistItem_impl(index, item); @@ -833,6 +832,8 @@ public class MediaController2 implements AutoCloseable { *<p> * 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. + * + * @param item the media item you want to add */ public void removePlaylistItem(@NonNull MediaItem2 item) { mProvider.removePlaylistItem_impl(item); diff --git a/media/java/android/media/MediaItem2.java b/media/java/android/media/MediaItem2.java index 2db1392a9d83..b50c3e4bcd0b 100644 --- a/media/java/android/media/MediaItem2.java +++ b/media/java/android/media/MediaItem2.java @@ -65,6 +65,13 @@ public class MediaItem2 { } /** + * @hide + */ + public MediaItem2Provider getProvider() { + return mProvider; + } + + /** * Return this object as a bundle to share between processes. * * @return a new bundle instance @@ -141,9 +148,7 @@ public class MediaItem2 { @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); + return mProvider.equals_impl(obj); } /** diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java index a6c4ef732cbb..ddecb95c6528 100644 --- a/media/java/android/media/MediaSession2.java +++ b/media/java/android/media/MediaSession2.java @@ -265,9 +265,6 @@ public class MediaSession2 implements AutoCloseable { /** * Command code for {@link MediaController2#getPlaylistMetadata()}. This will expose * metadata information to the controller. - * * - * Command code for {@link MediaController2#setPlaylist(List, MediaMetadata2)} and - * {@link MediaController2#updatePlaylistMetadata(MediaMetadata2)}. * <p> * Command would be sent directly to the playlist agent if the session doesn't reject the * request through the @@ -1770,12 +1767,17 @@ public class MediaSession2 implements AutoCloseable { mProvider.skipToNextItem_impl(); } + /** + * Gets the playlist metadata from the {@link MediaPlaylistAgent}. + * + * @return the playlist metadata + */ public MediaMetadata2 getPlaylistMetadata() { return mProvider.getPlaylistMetadata_impl(); } /** - * Add the media item to the play list at position index. + * Adds the media item to the playlist at position index. * <p> * This will not change the currently playing media item. * If index is less than or equal to the current index of the play list, @@ -1783,26 +1785,25 @@ public class MediaSession2 implements AutoCloseable { * * @param index the index you want to add * @param item the media item you want to add - * @throws IndexOutOfBoundsException if index is outside play list range */ public void addPlaylistItem(int index, @NonNull MediaItem2 item) { mProvider.addPlaylistItem_impl(index, item); } /** - * Remove the media item in the play list. + * Removes the media item in the playlist. * <p> * 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. * - * @throws IllegalArgumentException if the play list is null + * @param item the media item you want to add */ public void removePlaylistItem(@NonNull MediaItem2 item) { mProvider.removePlaylistItem_impl(item); } /** - * Replace the media item at index in the playlist. This can be also used to update metadata of + * Replaces the media item at index in the playlist. This can be also used to update metadata of * an item. * * @param index the index of the item to replace @@ -1822,6 +1823,11 @@ public class MediaSession2 implements AutoCloseable { return mProvider.getCurrentPlaylistItem_impl(); } + /** + * Updates the playlist metadata to the {@link MediaPlaylistAgent}. + * + * @param metadata metadata of the playlist + */ public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) { mProvider.updatePlaylistMetadata_impl(metadata); } diff --git a/media/java/android/media/update/MediaItem2Provider.java b/media/java/android/media/update/MediaItem2Provider.java index b494f9e2af7f..47db22f22d98 100644 --- a/media/java/android/media/update/MediaItem2Provider.java +++ b/media/java/android/media/update/MediaItem2Provider.java @@ -35,6 +35,7 @@ public interface MediaItem2Provider { MediaMetadata2 getMetadata_impl(); String getMediaId_impl(); DataSourceDesc getDataSourceDesc_impl(); + boolean equals_impl(Object obj); interface BuilderProvider { Builder setMediaId_impl(String mediaId); diff --git a/media/java/android/media/update/MediaSession2Provider.java b/media/java/android/media/update/MediaSession2Provider.java index 3ba689a02b64..84ea369336d7 100644 --- a/media/java/android/media/update/MediaSession2Provider.java +++ b/media/java/android/media/update/MediaSession2Provider.java @@ -61,7 +61,6 @@ public interface MediaSession2Provider extends TransportControlProvider { void sendCustomCommand_impl(Command command, Bundle args); void addPlaylistItem_impl(int index, MediaItem2 item); void removePlaylistItem_impl(MediaItem2 item); - void editPlaylistItem_impl(MediaItem2 item); void replacePlaylistItem_impl(int index, MediaItem2 item); List<MediaItem2> getPlaylist_impl(); void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata); |