Loading media/java/android/media/MediaPlaylistAgent.java +25 −29 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.media.update.ApiLoader; import android.media.update.MediaPlaylistAgentProvider; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -92,7 +94,7 @@ public abstract class MediaPlaylistAgent { */ public static final int SHUFFLE_MODE_GROUP = 2; private MediaPlayerBase mPlayer; private final MediaPlaylistAgentProvider mProvider; /** * A callback class to receive notifications for events on the media player. See Loading Loading @@ -146,8 +148,7 @@ public abstract class MediaPlaylistAgent { } public MediaPlaylistAgent(@NonNull Context context) { // FYI, Need to have a context in the constructor for making this class be updatable // TODO(jaewan) : implement this (b/74090741) mProvider = ApiLoader.getProvider(context).createMediaPlaylistAgent(context, this); } /** Loading @@ -160,7 +161,7 @@ public abstract class MediaPlaylistAgent { */ public final void registerPlaylistEventCallback( @NonNull @CallbackExecutor Executor executor, @NonNull PlaylistEventCallback callback) { // TODO(jaewan): implement this (b/74090741) mProvider.registerPlaylistEventCallback_impl(executor, callback); } /** Loading @@ -169,25 +170,24 @@ public abstract class MediaPlaylistAgent { * @param callback the callback to be removed * @throws IllegalArgumentException if the callback is {@code null}. */ public final void unregisterPlaylistEventCallback( @NonNull PlaylistEventCallback callback) { // TODO(jaewan): implement this (b/74090741) public final void unregisterPlaylistEventCallback(@NonNull PlaylistEventCallback callback) { mProvider.unregisterPlaylistEventCallback_impl(callback); } public final void notifyPlaylistChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyPlaylistChanged_impl(); } public final void notifyPlaylistMetadataChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyPlaylistMetadataChanged_impl(); } public final void notifyShuffleModeChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyShuffleModeChanged_impl(); } public final void notifyRepeatModeChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyRepeatModeChanged_impl(); } /** Loading @@ -196,8 +196,7 @@ public abstract class MediaPlaylistAgent { * @return playlist, or null if none is set. */ public @Nullable List<MediaItem2> getPlaylist() { // TODO(jaewan): implement this (b/74090741) return null; return mProvider.getPlaylist_impl(); } /** Loading @@ -207,7 +206,7 @@ public abstract class MediaPlaylistAgent { * @param metadata metadata of the playlist */ public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) { // TODO(jaewan): implement this (b/74090741) mProvider.setPlaylist_impl(list, metadata); } /** Loading @@ -216,8 +215,7 @@ public abstract class MediaPlaylistAgent { * @return metadata metadata of the playlist, or null if none is set */ public @Nullable MediaMetadata2 getPlaylistMetadata() { // TODO(jaewan): implement this (b/74090741) return null; return mProvider.getPlaylistMetadata_impl(); } /** Loading @@ -226,7 +224,7 @@ public abstract class MediaPlaylistAgent { * @param metadata metadata of the playlist */ public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) { // TODO(jaewan): implement this (b/74090741) mProvider.updatePlaylistMetadata_impl(metadata); } /** Loading @@ -236,7 +234,7 @@ public abstract class MediaPlaylistAgent { * @param item media item to add */ public void addPlaylistItem(int index, @NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.addPlaylistItem_impl(index, item); } /** Loading @@ -245,7 +243,7 @@ public abstract class MediaPlaylistAgent { * @param item media item to remove */ public void removePlaylistItem(@NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.removePlaylistItem_impl(item); } /** Loading @@ -256,7 +254,7 @@ public abstract class MediaPlaylistAgent { * @param item the new item */ public void replacePlaylistItem(int index, @NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.replacePlaylistItem_impl(index, item); } /** Loading @@ -265,15 +263,15 @@ public abstract class MediaPlaylistAgent { * @param item media item to start playing from */ public void skipToPlaylistItem(@NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.skipToPlaylistItem_impl(item); } public void skipToPreviousItem() { // TODO(jaewan): implement this (b/74090741) mProvider.skipToPreviousItem_impl(); } public void skipToNextItem() { // TODO(jaewan): implement this (b/74090741) mProvider.skipToNextItem_impl(); } /** Loading @@ -286,8 +284,7 @@ public abstract class MediaPlaylistAgent { * @see #REPEAT_MODE_GROUP */ public @RepeatMode int getRepeatMode() { // TODO(jaewan): implement this (b/74090741) return REPEAT_MODE_NONE; return mProvider.getRepeatMode_impl(); } /** Loading @@ -300,7 +297,7 @@ public abstract class MediaPlaylistAgent { * @see #REPEAT_MODE_GROUP */ public void setRepeatMode(@RepeatMode int repeatMode) { // TODO(jaewan): implement this (b/74090741) mProvider.setRepeatMode_impl(repeatMode); } /** Loading @@ -312,8 +309,7 @@ public abstract class MediaPlaylistAgent { * @see #SHUFFLE_MODE_GROUP */ public @ShuffleMode int getShuffleMode() { // TODO(jaewan): implement this (b/74090741) return SHUFFLE_MODE_NONE; return mProvider.getShuffleMode_impl(); } /** Loading @@ -325,6 +321,6 @@ public abstract class MediaPlaylistAgent { * @see #SHUFFLE_MODE_GROUP */ public void setShuffleMode(@ShuffleMode int shuffleMode) { // TODO(jaewan): implement this (b/74090741) mProvider.setShuffleMode_impl(shuffleMode); } } media/java/android/media/update/MediaPlaylistAgentProvider.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.update; import android.media.MediaItem2; import android.media.MediaMetadata2; import android.media.MediaPlaylistAgent.PlaylistEventCallback; import java.util.List; import java.util.concurrent.Executor; /** * @hide */ public interface MediaPlaylistAgentProvider { // final methods of MediaPlaylistAgent void registerPlaylistEventCallback_impl(Executor executor, PlaylistEventCallback callback); void unregisterPlaylistEventCallback_impl(PlaylistEventCallback callback); void notifyPlaylistChanged_impl(); void notifyPlaylistMetadataChanged_impl(); void notifyShuffleModeChanged_impl(); void notifyRepeatModeChanged_impl(); // public methods of MediaPlaylistAgent List<MediaItem2> getPlaylist_impl(); void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata); MediaMetadata2 getPlaylistMetadata_impl(); void updatePlaylistMetadata_impl(MediaMetadata2 metadata); void addPlaylistItem_impl(int index, MediaItem2 item); void removePlaylistItem_impl(MediaItem2 item); void replacePlaylistItem_impl(int index, MediaItem2 item); void skipToPlaylistItem_impl(MediaItem2 item); void skipToPreviousItem_impl(); void skipToNextItem_impl(); int getRepeatMode_impl(); void setRepeatMode_impl(int repeatMode); int getShuffleMode_impl(); void setShuffleMode_impl(int shuffleMode); } media/java/android/media/update/StaticProvider.java +4 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.media.MediaLibraryService2.LibraryRoot; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback; import android.media.MediaMetadata2; import android.media.MediaPlaylistAgent; import android.media.MediaSession2; import android.media.MediaSession2.CommandButton.Builder; import android.media.MediaSession2.PlaylistParams; Loading Loading @@ -134,4 +135,7 @@ public interface StaticProvider { PlaybackState2Provider createPlaybackState2(Context context, PlaybackState2 instance, int state, long position, long updateTime, float speed, long bufferedPosition, long activeItemId); PlaybackState2 fromBundle_PlaybackState2(Context context, Bundle bundle); MediaPlaylistAgentProvider createMediaPlaylistAgent(Context context, MediaPlaylistAgent instance); } Loading
media/java/android/media/MediaPlaylistAgent.java +25 −29 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.media.update.ApiLoader; import android.media.update.MediaPlaylistAgentProvider; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -92,7 +94,7 @@ public abstract class MediaPlaylistAgent { */ public static final int SHUFFLE_MODE_GROUP = 2; private MediaPlayerBase mPlayer; private final MediaPlaylistAgentProvider mProvider; /** * A callback class to receive notifications for events on the media player. See Loading Loading @@ -146,8 +148,7 @@ public abstract class MediaPlaylistAgent { } public MediaPlaylistAgent(@NonNull Context context) { // FYI, Need to have a context in the constructor for making this class be updatable // TODO(jaewan) : implement this (b/74090741) mProvider = ApiLoader.getProvider(context).createMediaPlaylistAgent(context, this); } /** Loading @@ -160,7 +161,7 @@ public abstract class MediaPlaylistAgent { */ public final void registerPlaylistEventCallback( @NonNull @CallbackExecutor Executor executor, @NonNull PlaylistEventCallback callback) { // TODO(jaewan): implement this (b/74090741) mProvider.registerPlaylistEventCallback_impl(executor, callback); } /** Loading @@ -169,25 +170,24 @@ public abstract class MediaPlaylistAgent { * @param callback the callback to be removed * @throws IllegalArgumentException if the callback is {@code null}. */ public final void unregisterPlaylistEventCallback( @NonNull PlaylistEventCallback callback) { // TODO(jaewan): implement this (b/74090741) public final void unregisterPlaylistEventCallback(@NonNull PlaylistEventCallback callback) { mProvider.unregisterPlaylistEventCallback_impl(callback); } public final void notifyPlaylistChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyPlaylistChanged_impl(); } public final void notifyPlaylistMetadataChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyPlaylistMetadataChanged_impl(); } public final void notifyShuffleModeChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyShuffleModeChanged_impl(); } public final void notifyRepeatModeChanged() { // TODO(jaewan): implement this (b/74090741) mProvider.notifyRepeatModeChanged_impl(); } /** Loading @@ -196,8 +196,7 @@ public abstract class MediaPlaylistAgent { * @return playlist, or null if none is set. */ public @Nullable List<MediaItem2> getPlaylist() { // TODO(jaewan): implement this (b/74090741) return null; return mProvider.getPlaylist_impl(); } /** Loading @@ -207,7 +206,7 @@ public abstract class MediaPlaylistAgent { * @param metadata metadata of the playlist */ public void setPlaylist(@NonNull List<MediaItem2> list, @Nullable MediaMetadata2 metadata) { // TODO(jaewan): implement this (b/74090741) mProvider.setPlaylist_impl(list, metadata); } /** Loading @@ -216,8 +215,7 @@ public abstract class MediaPlaylistAgent { * @return metadata metadata of the playlist, or null if none is set */ public @Nullable MediaMetadata2 getPlaylistMetadata() { // TODO(jaewan): implement this (b/74090741) return null; return mProvider.getPlaylistMetadata_impl(); } /** Loading @@ -226,7 +224,7 @@ public abstract class MediaPlaylistAgent { * @param metadata metadata of the playlist */ public void updatePlaylistMetadata(@Nullable MediaMetadata2 metadata) { // TODO(jaewan): implement this (b/74090741) mProvider.updatePlaylistMetadata_impl(metadata); } /** Loading @@ -236,7 +234,7 @@ public abstract class MediaPlaylistAgent { * @param item media item to add */ public void addPlaylistItem(int index, @NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.addPlaylistItem_impl(index, item); } /** Loading @@ -245,7 +243,7 @@ public abstract class MediaPlaylistAgent { * @param item media item to remove */ public void removePlaylistItem(@NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.removePlaylistItem_impl(item); } /** Loading @@ -256,7 +254,7 @@ public abstract class MediaPlaylistAgent { * @param item the new item */ public void replacePlaylistItem(int index, @NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.replacePlaylistItem_impl(index, item); } /** Loading @@ -265,15 +263,15 @@ public abstract class MediaPlaylistAgent { * @param item media item to start playing from */ public void skipToPlaylistItem(@NonNull MediaItem2 item) { // TODO(jaewan): implement this (b/74090741) mProvider.skipToPlaylistItem_impl(item); } public void skipToPreviousItem() { // TODO(jaewan): implement this (b/74090741) mProvider.skipToPreviousItem_impl(); } public void skipToNextItem() { // TODO(jaewan): implement this (b/74090741) mProvider.skipToNextItem_impl(); } /** Loading @@ -286,8 +284,7 @@ public abstract class MediaPlaylistAgent { * @see #REPEAT_MODE_GROUP */ public @RepeatMode int getRepeatMode() { // TODO(jaewan): implement this (b/74090741) return REPEAT_MODE_NONE; return mProvider.getRepeatMode_impl(); } /** Loading @@ -300,7 +297,7 @@ public abstract class MediaPlaylistAgent { * @see #REPEAT_MODE_GROUP */ public void setRepeatMode(@RepeatMode int repeatMode) { // TODO(jaewan): implement this (b/74090741) mProvider.setRepeatMode_impl(repeatMode); } /** Loading @@ -312,8 +309,7 @@ public abstract class MediaPlaylistAgent { * @see #SHUFFLE_MODE_GROUP */ public @ShuffleMode int getShuffleMode() { // TODO(jaewan): implement this (b/74090741) return SHUFFLE_MODE_NONE; return mProvider.getShuffleMode_impl(); } /** Loading @@ -325,6 +321,6 @@ public abstract class MediaPlaylistAgent { * @see #SHUFFLE_MODE_GROUP */ public void setShuffleMode(@ShuffleMode int shuffleMode) { // TODO(jaewan): implement this (b/74090741) mProvider.setShuffleMode_impl(shuffleMode); } }
media/java/android/media/update/MediaPlaylistAgentProvider.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.update; import android.media.MediaItem2; import android.media.MediaMetadata2; import android.media.MediaPlaylistAgent.PlaylistEventCallback; import java.util.List; import java.util.concurrent.Executor; /** * @hide */ public interface MediaPlaylistAgentProvider { // final methods of MediaPlaylistAgent void registerPlaylistEventCallback_impl(Executor executor, PlaylistEventCallback callback); void unregisterPlaylistEventCallback_impl(PlaylistEventCallback callback); void notifyPlaylistChanged_impl(); void notifyPlaylistMetadataChanged_impl(); void notifyShuffleModeChanged_impl(); void notifyRepeatModeChanged_impl(); // public methods of MediaPlaylistAgent List<MediaItem2> getPlaylist_impl(); void setPlaylist_impl(List<MediaItem2> list, MediaMetadata2 metadata); MediaMetadata2 getPlaylistMetadata_impl(); void updatePlaylistMetadata_impl(MediaMetadata2 metadata); void addPlaylistItem_impl(int index, MediaItem2 item); void removePlaylistItem_impl(MediaItem2 item); void replacePlaylistItem_impl(int index, MediaItem2 item); void skipToPlaylistItem_impl(MediaItem2 item); void skipToPreviousItem_impl(); void skipToNextItem_impl(); int getRepeatMode_impl(); void setRepeatMode_impl(int repeatMode); int getShuffleMode_impl(); void setShuffleMode_impl(int shuffleMode); }
media/java/android/media/update/StaticProvider.java +4 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.media.MediaLibraryService2.LibraryRoot; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback; import android.media.MediaMetadata2; import android.media.MediaPlaylistAgent; import android.media.MediaSession2; import android.media.MediaSession2.CommandButton.Builder; import android.media.MediaSession2.PlaylistParams; Loading Loading @@ -134,4 +135,7 @@ public interface StaticProvider { PlaybackState2Provider createPlaybackState2(Context context, PlaybackState2 instance, int state, long position, long updateTime, float speed, long bufferedPosition, long activeItemId); PlaybackState2 fromBundle_PlaybackState2(Context context, Bundle bundle); MediaPlaylistAgentProvider createMediaPlaylistAgent(Context context, MediaPlaylistAgent instance); }