From dc5ab8095a98eb4d128a057f2ecd14c3cff9da8a Mon Sep 17 00:00:00 2001 From: Jaewan Kim Date: Mon, 12 Mar 2018 10:49:28 +0900 Subject: [PATCH] MediaSession2: Implement update/getPlaylistMetadata() Bug: 74174649 Test: Run CTS with MediaComponents/runcts.sh Change-Id: I3ac2dabfc7f532bf7d7262940e3dc309e97fd45a --- media/java/android/media/MediaController2.java | 11 +++++++---- media/java/android/media/MediaSession2.java | 5 ++--- .../media/update/MediaController2Provider.java | 2 ++ .../android/media/update/MediaSession2Provider.java | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/media/java/android/media/MediaController2.java b/media/java/android/media/MediaController2.java index 133f4338b635d..4b140d7035bd6 100644 --- a/media/java/android/media/MediaController2.java +++ b/media/java/android/media/MediaController2.java @@ -786,17 +786,20 @@ public class MediaController2 implements AutoCloseable { * @param metadata metadata of the playlist */ public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) { - // TODO(jaewan): Implement (b/74174649) + mProvider.updatePlaylistMetadata_impl(metadata); } /** - * Returns the playlist metadata + * Returns the lastly cached playlist playlist metadata either from + * {@link ControllerCallback#onPlaylistMetadataChanged( + * MediaController2, MediaPlaylistAgent, MediaMetadata2)} or + * {@link ControllerCallback#onPlaylistChanged( + * MediaController2, MediaPlaylistAgent, List, MediaMetadata2)}. * * @return metadata metadata of the playlist, or null if none is set */ public @Nullable MediaMetadata2 getPlaylistMetadata() { - // TODO(jaewan): Implement (b/74174649) - return null; + return mProvider.getPlaylistMetadata_impl(); } /** diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java index f5c33d33209f5..a6c4ef732cbbd 100644 --- a/media/java/android/media/MediaSession2.java +++ b/media/java/android/media/MediaSession2.java @@ -1771,8 +1771,7 @@ public class MediaSession2 implements AutoCloseable { } public MediaMetadata2 getPlaylistMetadata() { - // TODO(jaewan): Implement (b/74174649) - return null; + return mProvider.getPlaylistMetadata_impl(); } /** @@ -1824,7 +1823,7 @@ public class MediaSession2 implements AutoCloseable { } public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) { - // TODO(jaewan): Implement (b/74174649) + mProvider.updatePlaylistMetadata_impl(metadata); } public @RepeatMode int getRepeatMode() { diff --git a/media/java/android/media/update/MediaController2Provider.java b/media/java/android/media/update/MediaController2Provider.java index f7049a9177f8a..c48f336e832d4 100644 --- a/media/java/android/media/update/MediaController2Provider.java +++ b/media/java/android/media/update/MediaController2Provider.java @@ -60,6 +60,8 @@ public interface MediaController2Provider extends TransportControlProvider { void sendCustomCommand_impl(Command command, Bundle args, ResultReceiver cb); List getPlaylist_impl(); void setPlaylist_impl(List list, MediaMetadata2 metadata); + MediaMetadata2 getPlaylistMetadata_impl(); + void updatePlaylistMetadata_impl(MediaMetadata2 metadata); void addPlaylistItem_impl(int index, MediaItem2 item); void replacePlaylistItem_impl(int index, MediaItem2 item); diff --git a/media/java/android/media/update/MediaSession2Provider.java b/media/java/android/media/update/MediaSession2Provider.java index 8299fdab3c631..3ba689a02b647 100644 --- a/media/java/android/media/update/MediaSession2Provider.java +++ b/media/java/android/media/update/MediaSession2Provider.java @@ -47,6 +47,8 @@ public interface MediaSession2Provider extends TransportControlProvider { void updatePlayer_impl(MediaPlayerBase player, MediaPlaylistAgent playlistAgent, VolumeProvider2 volumeProvider); MediaPlayerBase getPlayer_impl(); + MediaMetadata2 getPlaylistMetadata_impl(); + void updatePlaylistMetadata_impl(MediaMetadata2 metadata); MediaPlaylistAgent getPlaylistAgent_impl(); VolumeProvider2 getVolumeProvider_impl(); SessionToken2 getToken_impl();