Loading packages/MediaComponents/src/com/android/media/MediaController2Impl.java +36 −3 Original line number Diff line number Diff line Loading @@ -465,11 +465,14 @@ public class MediaController2Impl implements MediaController2Provider { } @Override public void setCurrentPlaylistItem_impl(int index) { public void skipToPlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement this /* Bundle args = new Bundle(); args.putInt(MediaSession2Stub.ARGUMENT_KEY_ITEM_INDEX, index); args.putInt(MediaSession2Stub.ARGUMENT_KEY_ITEM_INDEX, item); sendTransportControlCommand( MediaSession2.COMMAND_CODE_PLAYBACK_SET_CURRENT_PLAYLIST_ITEM, args); */ } @Override Loading Loading @@ -513,6 +516,36 @@ public class MediaController2Impl implements MediaController2Provider { sendTransportControlCommand(MediaSession2.COMMAND_CODE_PLAYBACK_SET_PLAYLIST_PARAMS, args); } @Override public int getPlayerState_impl() { // TODO(jaewan): Implement return 0; } @Override public long getPosition_impl() { // TODO(jaewan): Implement return 0; } @Override public float getPlaybackSpeed_impl() { // TODO(jaewan): Implement return 0; } @Override public long getBufferedPosition_impl() { // TODO(jaewan): Implement return 0; } @Override public MediaItem2 getCurrentPlaylistItem_impl() { // TODO(jaewan): Implement return null; } void pushPlaybackStateChanges(final PlaybackState2 state) { synchronized (mLock) { mPlaybackState = state; Loading packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java +7 −7 Original line number Diff line number Diff line Loading @@ -21,9 +21,9 @@ import android.content.Context; import android.media.MediaLibraryService2; import android.media.MediaLibraryService2.LibraryRoot; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaLibraryService2.MediaLibrarySessionBuilder; import android.media.MediaLibraryService2.MediaLibrarySessionCallback; import android.media.MediaPlayerInterface; import android.media.MediaLibraryService2.MediaLibrarySession.Builder; import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback; import android.media.MediaPlayerBase; import android.media.MediaSession2; import android.media.MediaSession2.ControllerInfo; import android.media.MediaSessionService2; Loading Loading @@ -67,7 +67,7 @@ public class MediaLibraryService2Impl extends MediaSessionService2Impl implement public static class MediaLibrarySessionImpl extends MediaSession2Impl implements MediaLibrarySessionProvider { public MediaLibrarySessionImpl(Context context, MediaPlayerInterface player, String id, VolumeProvider2 volumeProvider, MediaPlayerBase player, String id, VolumeProvider2 volumeProvider, PendingIntent sessionActivity, Executor callbackExecutor, MediaLibrarySessionCallback callback) { super(context, player, id, volumeProvider, sessionActivity, callbackExecutor, callback); Loading Loading @@ -130,10 +130,10 @@ public class MediaLibraryService2Impl extends MediaSessionService2Impl implement public static class BuilderImpl extends BuilderBaseImpl<MediaLibrarySession, MediaLibrarySessionCallback> { public BuilderImpl(Context context, MediaLibrarySessionBuilder instance, MediaPlayerInterface player, Executor callbackExecutor, public BuilderImpl(MediaLibraryService2 service, Builder instance, MediaPlayerBase player, Executor callbackExecutor, MediaLibrarySessionCallback callback) { super(context, player); super(service, player); setSessionCallback_impl(callbackExecutor, callback); } Loading packages/MediaComponents/src/com/android/media/MediaSession2Impl.java +59 −38 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ import android.media.MediaController2.PlaybackInfo; import android.media.MediaItem2; import android.media.MediaLibraryService2; import android.media.MediaMetadata2; import android.media.MediaPlayerInterface; import android.media.MediaPlayerInterface.EventCallback; import android.media.MediaPlayerBase; import android.media.MediaPlayerBase.EventCallback; import android.media.MediaSession2; import android.media.MediaSession2.Builder; import android.media.MediaSession2.Command; Loading Loading @@ -105,7 +105,7 @@ public class MediaSession2Impl implements MediaSession2Provider { // // TODO(jaewan): Should we put volatile here? @GuardedBy("mLock") private MediaPlayerInterface mPlayer; private MediaPlayerBase mPlayer; @GuardedBy("mLock") private VolumeProvider2 mVolumeProvider; @GuardedBy("mLock") Loading @@ -124,7 +124,7 @@ public class MediaSession2Impl implements MediaSession2Provider { * @param callbackExecutor * @param callback */ public MediaSession2Impl(Context context, MediaPlayerInterface player, String id, public MediaSession2Impl(Context context, MediaPlayerBase player, String id, VolumeProvider2 volumeProvider, PendingIntent sessionActivity, Executor callbackExecutor, SessionCallback callback) { // TODO(jaewan): Keep other params. Loading Loading @@ -202,7 +202,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setPlayer_impl(MediaPlayerInterface player) { public void setPlayer_impl(MediaPlayerBase player) { ensureCallingThread(); if (player == null) { throw new IllegalArgumentException("player shouldn't be null"); Loading @@ -211,7 +211,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setPlayer_impl(MediaPlayerInterface player, VolumeProvider2 volumeProvider) public void setPlayer_impl(MediaPlayerBase player, VolumeProvider2 volumeProvider) throws IllegalArgumentException { ensureCallingThread(); if (player == null) { Loading @@ -223,7 +223,7 @@ public class MediaSession2Impl implements MediaSession2Provider { setPlayer(player, volumeProvider); } private void setPlayer(MediaPlayerInterface player, VolumeProvider2 volumeProvider) { private void setPlayer(MediaPlayerBase player, VolumeProvider2 volumeProvider) { final PlaybackInfo info = createPlaybackInfo(volumeProvider, player.getAudioAttributes()); synchronized (mLock) { if (mPlayer != null && mEventCallback != null) { Loading Loading @@ -300,7 +300,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public MediaPlayerInterface getPlayer_impl() { public MediaPlayerBase getPlayer_impl() { return getPlayer(); } Loading @@ -323,7 +323,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void play_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.play(); } else if (DEBUG) { Loading @@ -334,7 +334,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void pause_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.pause(); } else if (DEBUG) { Loading @@ -345,7 +345,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void stop_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.stop(); } else if (DEBUG) { Loading @@ -356,7 +356,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void skipToPrevious_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.skipToPrevious(); } else if (DEBUG) { Loading @@ -367,7 +367,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void skipToNext_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.skipToNext(); } else if (DEBUG) { Loading @@ -393,7 +393,7 @@ public class MediaSession2Impl implements MediaSession2Provider { throw new IllegalArgumentException("params shouldn't be null"); } ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setPlaylistParams(params); mSessionStub.notifyPlaylistParamsChanged(params); Loading @@ -402,7 +402,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public PlaylistParams getPlaylistParams_impl() { final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache parameter of setPlaylistParams. Loading @@ -422,11 +422,6 @@ public class MediaSession2Impl implements MediaSession2Provider { // TODO(jaewan): Implement } @Override public void notifyMetadataChanged_impl() { // TODO(jaewan): Implement } @Override public void sendCustomCommand_impl(ControllerInfo controller, Command command, Bundle args, ResultReceiver receiver) { Loading @@ -444,7 +439,7 @@ public class MediaSession2Impl implements MediaSession2Provider { throw new IllegalArgumentException("playlist shouldn't be null"); } ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setPlaylist(playlist); mSessionStub.notifyPlaylistChanged(playlist); Loading @@ -453,9 +448,24 @@ public class MediaSession2Impl implements MediaSession2Provider { } } @Override public void addPlaylistItem_impl(int index, MediaItem2 item) { // TODO(jaewan): Implement } @Override public void removePlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement } @Override public void editPlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement } @Override public List<MediaItem2> getPlaylist_impl() { final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache parameter of setPlaylist. Loading @@ -466,10 +476,16 @@ public class MediaSession2Impl implements MediaSession2Provider { return null; } @Override public MediaItem2 getCurrentPlaylistItem_impl() { // TODO(jaewan): Implement return null; } @Override public void prepare_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.prepare(); } else if (DEBUG) { Loading @@ -480,7 +496,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void fastForward_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.fastForward(); } else if (DEBUG) { Loading @@ -491,7 +507,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void rewind_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.rewind(); } else if (DEBUG) { Loading @@ -502,7 +518,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void seekTo_impl(long pos) { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.seekTo(pos); } else if (DEBUG) { Loading @@ -511,11 +527,11 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setCurrentPlaylistItem_impl(int index) { public void skipToPlaylistItem_impl(MediaItem2 item) { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setCurrentPlaylistItem(index); player.setCurrentPlaylistItem(item); } else if (DEBUG) { Log.d(TAG, "API calls after the close()", new IllegalStateException()); } Loading Loading @@ -552,7 +568,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public PlaybackState2 getPlaybackState_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache the result from listener. Loading @@ -563,6 +579,11 @@ public class MediaSession2Impl implements MediaSession2Provider { return null; } @Override public void notifyError_impl(int errorCode, int extra) { // TODO(jaewan): Implement } /////////////////////////////////////////////////// // Protected or private methods /////////////////////////////////////////////////// Loading Loading @@ -624,7 +645,7 @@ public class MediaSession2Impl implements MediaSession2Provider { return mInstance; } MediaPlayerInterface getPlayer() { MediaPlayerBase getPlayer() { return mPlayer; } Loading Loading @@ -654,11 +675,11 @@ public class MediaSession2Impl implements MediaSession2Provider { return mSessionActivity; } private static class MyEventCallback implements EventCallback { private static class MyEventCallback extends EventCallback { private final WeakReference<MediaSession2Impl> mSession; private final MediaPlayerInterface mPlayer; private final MediaPlayerBase mPlayer; private MyEventCallback(MediaSession2Impl session, MediaPlayerInterface player) { private MyEventCallback(MediaSession2Impl session, MediaPlayerBase player) { mSession = new WeakReference<>(session); mPlayer = player; } Loading Loading @@ -1195,7 +1216,7 @@ public class MediaSession2Impl implements MediaSession2Provider { public static abstract class BuilderBaseImpl<T extends MediaSession2, C extends SessionCallback> implements BuilderBaseProvider<T, C> { final Context mContext; final MediaPlayerInterface mPlayer; final MediaPlayerBase mPlayer; String mId; Executor mCallbackExecutor; C mCallback; Loading @@ -1211,7 +1232,7 @@ public class MediaSession2Impl implements MediaSession2Provider { * {@link MediaSession2} or {@link MediaController2}. */ // TODO(jaewan): Also need executor public BuilderBaseImpl(Context context, MediaPlayerInterface player) { public BuilderBaseImpl(Context context, MediaPlayerBase player) { if (context == null) { throw new IllegalArgumentException("context shouldn't be null"); } Loading Loading @@ -1254,7 +1275,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } public static class BuilderImpl extends BuilderBaseImpl<MediaSession2, SessionCallback> { public BuilderImpl(Context context, Builder instance, MediaPlayerInterface player) { public BuilderImpl(Context context, Builder instance, MediaPlayerBase player) { super(context, player); } Loading @@ -1264,7 +1285,7 @@ public class MediaSession2Impl implements MediaSession2Provider { mCallbackExecutor = mContext.getMainExecutor(); } if (mCallback == null) { mCallback = new SessionCallback(mContext); mCallback = new SessionCallback(mContext) {}; } return new MediaSession2Impl(mContext, mPlayer, mId, mVolumeProvider, Loading packages/MediaComponents/src/com/android/media/MediaSession2Stub.java +4 −1 Original line number Diff line number Diff line Loading @@ -357,8 +357,11 @@ public class MediaSession2Stub extends IMediaSession2.Stub { session.getInstance().seekTo(args.getLong(ARGUMENT_KEY_POSITION)); break; case MediaSession2.COMMAND_CODE_PLAYBACK_SET_CURRENT_PLAYLIST_ITEM: session.getInstance().setCurrentPlaylistItem( // TODO(jaewan): Implement /* session.getInstance().skipToPlaylistItem( args.getInt(ARGUMENT_KEY_ITEM_INDEX)); */ break; case MediaSession2.COMMAND_CODE_PLAYBACK_SET_PLAYLIST_PARAMS: session.getInstance().setPlaylistParams( Loading packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java +5 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.app.Notification; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.media.MediaPlayerInterface.EventCallback; import android.media.MediaPlayerBase.EventCallback; import android.media.MediaSession2; import android.media.MediaSessionService2; import android.media.MediaSessionService2.MediaNotification; Loading Loading @@ -72,7 +72,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { } @Override public MediaNotification onUpdateNotification_impl(PlaybackState2 state) { public MediaNotification onUpdateNotification_impl() { // Provide default notification UI later. return null; } Loading Loading @@ -109,7 +109,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { } private void updateNotification(PlaybackState2 state) { MediaNotification mediaNotification = mInstance.onUpdateNotification(state); MediaNotification mediaNotification = mInstance.onUpdateNotification(); if (mediaNotification == null) { return; } Loading @@ -135,7 +135,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { mediaNotification.getNotification()); } private class SessionServiceEventCallback implements EventCallback { private class SessionServiceEventCallback extends EventCallback { @Override public void onPlaybackStateChanged(PlaybackState2 state) { if (state == null) { Loading @@ -143,7 +143,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { return; } MediaSession2Impl impl = (MediaSession2Impl) mSession.getProvider(); updateNotification(state); updateNotification(impl.getInstance().getPlaybackState()); } } Loading Loading
packages/MediaComponents/src/com/android/media/MediaController2Impl.java +36 −3 Original line number Diff line number Diff line Loading @@ -465,11 +465,14 @@ public class MediaController2Impl implements MediaController2Provider { } @Override public void setCurrentPlaylistItem_impl(int index) { public void skipToPlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement this /* Bundle args = new Bundle(); args.putInt(MediaSession2Stub.ARGUMENT_KEY_ITEM_INDEX, index); args.putInt(MediaSession2Stub.ARGUMENT_KEY_ITEM_INDEX, item); sendTransportControlCommand( MediaSession2.COMMAND_CODE_PLAYBACK_SET_CURRENT_PLAYLIST_ITEM, args); */ } @Override Loading Loading @@ -513,6 +516,36 @@ public class MediaController2Impl implements MediaController2Provider { sendTransportControlCommand(MediaSession2.COMMAND_CODE_PLAYBACK_SET_PLAYLIST_PARAMS, args); } @Override public int getPlayerState_impl() { // TODO(jaewan): Implement return 0; } @Override public long getPosition_impl() { // TODO(jaewan): Implement return 0; } @Override public float getPlaybackSpeed_impl() { // TODO(jaewan): Implement return 0; } @Override public long getBufferedPosition_impl() { // TODO(jaewan): Implement return 0; } @Override public MediaItem2 getCurrentPlaylistItem_impl() { // TODO(jaewan): Implement return null; } void pushPlaybackStateChanges(final PlaybackState2 state) { synchronized (mLock) { mPlaybackState = state; Loading
packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java +7 −7 Original line number Diff line number Diff line Loading @@ -21,9 +21,9 @@ import android.content.Context; import android.media.MediaLibraryService2; import android.media.MediaLibraryService2.LibraryRoot; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaLibraryService2.MediaLibrarySessionBuilder; import android.media.MediaLibraryService2.MediaLibrarySessionCallback; import android.media.MediaPlayerInterface; import android.media.MediaLibraryService2.MediaLibrarySession.Builder; import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback; import android.media.MediaPlayerBase; import android.media.MediaSession2; import android.media.MediaSession2.ControllerInfo; import android.media.MediaSessionService2; Loading Loading @@ -67,7 +67,7 @@ public class MediaLibraryService2Impl extends MediaSessionService2Impl implement public static class MediaLibrarySessionImpl extends MediaSession2Impl implements MediaLibrarySessionProvider { public MediaLibrarySessionImpl(Context context, MediaPlayerInterface player, String id, VolumeProvider2 volumeProvider, MediaPlayerBase player, String id, VolumeProvider2 volumeProvider, PendingIntent sessionActivity, Executor callbackExecutor, MediaLibrarySessionCallback callback) { super(context, player, id, volumeProvider, sessionActivity, callbackExecutor, callback); Loading Loading @@ -130,10 +130,10 @@ public class MediaLibraryService2Impl extends MediaSessionService2Impl implement public static class BuilderImpl extends BuilderBaseImpl<MediaLibrarySession, MediaLibrarySessionCallback> { public BuilderImpl(Context context, MediaLibrarySessionBuilder instance, MediaPlayerInterface player, Executor callbackExecutor, public BuilderImpl(MediaLibraryService2 service, Builder instance, MediaPlayerBase player, Executor callbackExecutor, MediaLibrarySessionCallback callback) { super(context, player); super(service, player); setSessionCallback_impl(callbackExecutor, callback); } Loading
packages/MediaComponents/src/com/android/media/MediaSession2Impl.java +59 −38 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ import android.media.MediaController2.PlaybackInfo; import android.media.MediaItem2; import android.media.MediaLibraryService2; import android.media.MediaMetadata2; import android.media.MediaPlayerInterface; import android.media.MediaPlayerInterface.EventCallback; import android.media.MediaPlayerBase; import android.media.MediaPlayerBase.EventCallback; import android.media.MediaSession2; import android.media.MediaSession2.Builder; import android.media.MediaSession2.Command; Loading Loading @@ -105,7 +105,7 @@ public class MediaSession2Impl implements MediaSession2Provider { // // TODO(jaewan): Should we put volatile here? @GuardedBy("mLock") private MediaPlayerInterface mPlayer; private MediaPlayerBase mPlayer; @GuardedBy("mLock") private VolumeProvider2 mVolumeProvider; @GuardedBy("mLock") Loading @@ -124,7 +124,7 @@ public class MediaSession2Impl implements MediaSession2Provider { * @param callbackExecutor * @param callback */ public MediaSession2Impl(Context context, MediaPlayerInterface player, String id, public MediaSession2Impl(Context context, MediaPlayerBase player, String id, VolumeProvider2 volumeProvider, PendingIntent sessionActivity, Executor callbackExecutor, SessionCallback callback) { // TODO(jaewan): Keep other params. Loading Loading @@ -202,7 +202,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setPlayer_impl(MediaPlayerInterface player) { public void setPlayer_impl(MediaPlayerBase player) { ensureCallingThread(); if (player == null) { throw new IllegalArgumentException("player shouldn't be null"); Loading @@ -211,7 +211,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setPlayer_impl(MediaPlayerInterface player, VolumeProvider2 volumeProvider) public void setPlayer_impl(MediaPlayerBase player, VolumeProvider2 volumeProvider) throws IllegalArgumentException { ensureCallingThread(); if (player == null) { Loading @@ -223,7 +223,7 @@ public class MediaSession2Impl implements MediaSession2Provider { setPlayer(player, volumeProvider); } private void setPlayer(MediaPlayerInterface player, VolumeProvider2 volumeProvider) { private void setPlayer(MediaPlayerBase player, VolumeProvider2 volumeProvider) { final PlaybackInfo info = createPlaybackInfo(volumeProvider, player.getAudioAttributes()); synchronized (mLock) { if (mPlayer != null && mEventCallback != null) { Loading Loading @@ -300,7 +300,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public MediaPlayerInterface getPlayer_impl() { public MediaPlayerBase getPlayer_impl() { return getPlayer(); } Loading @@ -323,7 +323,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void play_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.play(); } else if (DEBUG) { Loading @@ -334,7 +334,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void pause_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.pause(); } else if (DEBUG) { Loading @@ -345,7 +345,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void stop_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.stop(); } else if (DEBUG) { Loading @@ -356,7 +356,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void skipToPrevious_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.skipToPrevious(); } else if (DEBUG) { Loading @@ -367,7 +367,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void skipToNext_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.skipToNext(); } else if (DEBUG) { Loading @@ -393,7 +393,7 @@ public class MediaSession2Impl implements MediaSession2Provider { throw new IllegalArgumentException("params shouldn't be null"); } ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setPlaylistParams(params); mSessionStub.notifyPlaylistParamsChanged(params); Loading @@ -402,7 +402,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public PlaylistParams getPlaylistParams_impl() { final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache parameter of setPlaylistParams. Loading @@ -422,11 +422,6 @@ public class MediaSession2Impl implements MediaSession2Provider { // TODO(jaewan): Implement } @Override public void notifyMetadataChanged_impl() { // TODO(jaewan): Implement } @Override public void sendCustomCommand_impl(ControllerInfo controller, Command command, Bundle args, ResultReceiver receiver) { Loading @@ -444,7 +439,7 @@ public class MediaSession2Impl implements MediaSession2Provider { throw new IllegalArgumentException("playlist shouldn't be null"); } ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setPlaylist(playlist); mSessionStub.notifyPlaylistChanged(playlist); Loading @@ -453,9 +448,24 @@ public class MediaSession2Impl implements MediaSession2Provider { } } @Override public void addPlaylistItem_impl(int index, MediaItem2 item) { // TODO(jaewan): Implement } @Override public void removePlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement } @Override public void editPlaylistItem_impl(MediaItem2 item) { // TODO(jaewan): Implement } @Override public List<MediaItem2> getPlaylist_impl() { final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache parameter of setPlaylist. Loading @@ -466,10 +476,16 @@ public class MediaSession2Impl implements MediaSession2Provider { return null; } @Override public MediaItem2 getCurrentPlaylistItem_impl() { // TODO(jaewan): Implement return null; } @Override public void prepare_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.prepare(); } else if (DEBUG) { Loading @@ -480,7 +496,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void fastForward_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.fastForward(); } else if (DEBUG) { Loading @@ -491,7 +507,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void rewind_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.rewind(); } else if (DEBUG) { Loading @@ -502,7 +518,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public void seekTo_impl(long pos) { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.seekTo(pos); } else if (DEBUG) { Loading @@ -511,11 +527,11 @@ public class MediaSession2Impl implements MediaSession2Provider { } @Override public void setCurrentPlaylistItem_impl(int index) { public void skipToPlaylistItem_impl(MediaItem2 item) { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { player.setCurrentPlaylistItem(index); player.setCurrentPlaylistItem(item); } else if (DEBUG) { Log.d(TAG, "API calls after the close()", new IllegalStateException()); } Loading Loading @@ -552,7 +568,7 @@ public class MediaSession2Impl implements MediaSession2Provider { @Override public PlaybackState2 getPlaybackState_impl() { ensureCallingThread(); final MediaPlayerInterface player = mPlayer; final MediaPlayerBase player = mPlayer; if (player != null) { // TODO(jaewan): Is it safe to be called on any thread? // Otherwise MediaSession2 should cache the result from listener. Loading @@ -563,6 +579,11 @@ public class MediaSession2Impl implements MediaSession2Provider { return null; } @Override public void notifyError_impl(int errorCode, int extra) { // TODO(jaewan): Implement } /////////////////////////////////////////////////// // Protected or private methods /////////////////////////////////////////////////// Loading Loading @@ -624,7 +645,7 @@ public class MediaSession2Impl implements MediaSession2Provider { return mInstance; } MediaPlayerInterface getPlayer() { MediaPlayerBase getPlayer() { return mPlayer; } Loading Loading @@ -654,11 +675,11 @@ public class MediaSession2Impl implements MediaSession2Provider { return mSessionActivity; } private static class MyEventCallback implements EventCallback { private static class MyEventCallback extends EventCallback { private final WeakReference<MediaSession2Impl> mSession; private final MediaPlayerInterface mPlayer; private final MediaPlayerBase mPlayer; private MyEventCallback(MediaSession2Impl session, MediaPlayerInterface player) { private MyEventCallback(MediaSession2Impl session, MediaPlayerBase player) { mSession = new WeakReference<>(session); mPlayer = player; } Loading Loading @@ -1195,7 +1216,7 @@ public class MediaSession2Impl implements MediaSession2Provider { public static abstract class BuilderBaseImpl<T extends MediaSession2, C extends SessionCallback> implements BuilderBaseProvider<T, C> { final Context mContext; final MediaPlayerInterface mPlayer; final MediaPlayerBase mPlayer; String mId; Executor mCallbackExecutor; C mCallback; Loading @@ -1211,7 +1232,7 @@ public class MediaSession2Impl implements MediaSession2Provider { * {@link MediaSession2} or {@link MediaController2}. */ // TODO(jaewan): Also need executor public BuilderBaseImpl(Context context, MediaPlayerInterface player) { public BuilderBaseImpl(Context context, MediaPlayerBase player) { if (context == null) { throw new IllegalArgumentException("context shouldn't be null"); } Loading Loading @@ -1254,7 +1275,7 @@ public class MediaSession2Impl implements MediaSession2Provider { } public static class BuilderImpl extends BuilderBaseImpl<MediaSession2, SessionCallback> { public BuilderImpl(Context context, Builder instance, MediaPlayerInterface player) { public BuilderImpl(Context context, Builder instance, MediaPlayerBase player) { super(context, player); } Loading @@ -1264,7 +1285,7 @@ public class MediaSession2Impl implements MediaSession2Provider { mCallbackExecutor = mContext.getMainExecutor(); } if (mCallback == null) { mCallback = new SessionCallback(mContext); mCallback = new SessionCallback(mContext) {}; } return new MediaSession2Impl(mContext, mPlayer, mId, mVolumeProvider, Loading
packages/MediaComponents/src/com/android/media/MediaSession2Stub.java +4 −1 Original line number Diff line number Diff line Loading @@ -357,8 +357,11 @@ public class MediaSession2Stub extends IMediaSession2.Stub { session.getInstance().seekTo(args.getLong(ARGUMENT_KEY_POSITION)); break; case MediaSession2.COMMAND_CODE_PLAYBACK_SET_CURRENT_PLAYLIST_ITEM: session.getInstance().setCurrentPlaylistItem( // TODO(jaewan): Implement /* session.getInstance().skipToPlaylistItem( args.getInt(ARGUMENT_KEY_ITEM_INDEX)); */ break; case MediaSession2.COMMAND_CODE_PLAYBACK_SET_PLAYLIST_PARAMS: session.getInstance().setPlaylistParams( Loading
packages/MediaComponents/src/com/android/media/MediaSessionService2Impl.java +5 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.app.Notification; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.media.MediaPlayerInterface.EventCallback; import android.media.MediaPlayerBase.EventCallback; import android.media.MediaSession2; import android.media.MediaSessionService2; import android.media.MediaSessionService2.MediaNotification; Loading Loading @@ -72,7 +72,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { } @Override public MediaNotification onUpdateNotification_impl(PlaybackState2 state) { public MediaNotification onUpdateNotification_impl() { // Provide default notification UI later. return null; } Loading Loading @@ -109,7 +109,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { } private void updateNotification(PlaybackState2 state) { MediaNotification mediaNotification = mInstance.onUpdateNotification(state); MediaNotification mediaNotification = mInstance.onUpdateNotification(); if (mediaNotification == null) { return; } Loading @@ -135,7 +135,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { mediaNotification.getNotification()); } private class SessionServiceEventCallback implements EventCallback { private class SessionServiceEventCallback extends EventCallback { @Override public void onPlaybackStateChanged(PlaybackState2 state) { if (state == null) { Loading @@ -143,7 +143,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider { return; } MediaSession2Impl impl = (MediaSession2Impl) mSession.getProvider(); updateNotification(state); updateNotification(impl.getInstance().getPlaybackState()); } } Loading