MediaSession2: Unhide APIs

Bug: 64098437
Test: make update-api
Change-Id: Ifb0f76f3a75b099485392e2b137cca39e1f35d0a
gugelfrei
Jaewan Kim 6 years ago
parent 218f8e3bec
commit 81c1b87234

@ -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
@ -486,7 +489,7 @@ public class MediaController2Impl implements MediaController2Provider {
@Override
public void addPlaylistItem_impl(int index, MediaItem2 item) {
// TODO(jaewan): Implement
// TODO(jaewan): Implement
}
@Override
@ -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;

@ -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;
@ -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);
@ -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);
}

@ -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;
@ -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")
@ -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.
@ -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");
@ -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) {
@ -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) {
@ -300,7 +300,7 @@ public class MediaSession2Impl implements MediaSession2Provider {
}
@Override
public MediaPlayerInterface getPlayer_impl() {
public MediaPlayerBase getPlayer_impl() {
return getPlayer();
}
@ -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) {
@ -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) {
@ -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) {
@ -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) {
@ -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) {
@ -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);
@ -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.
@ -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) {
@ -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);
@ -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.
@ -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) {
@ -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) {
@ -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) {
@ -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) {
@ -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());
}
@ -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.
@ -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
///////////////////////////////////////////////////
@ -624,7 +645,7 @@ public class MediaSession2Impl implements MediaSession2Provider {
return mInstance;
}
MediaPlayerInterface getPlayer() {
MediaPlayerBase getPlayer() {
return mPlayer;
}
@ -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;
}
@ -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;
@ -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");
}
@ -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);
}
@ -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,

@ -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(

@ -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;
@ -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;
}
@ -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;
}
@ -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) {
@ -143,7 +143,7 @@ public class MediaSessionService2Impl implements MediaSessionService2Provider {
return;
}
MediaSession2Impl impl = (MediaSession2Impl) mSession.getProvider();
updateNotification(state);
updateNotification(impl.getInstance().getPlaybackState());
}
}

@ -53,8 +53,8 @@ public class SessionToken2Impl implements SessionToken2Provider {
private final IMediaSession2 mSessionBinder;
/**
* Public constructor for the legacy support (i.e. browser can try connecting to any browser service
* if it knows the service name)
* Public constructor for the legacy support (i.e. browser can try connecting to any browser
* service if it knows the service name)
*/
public SessionToken2Impl(Context context, SessionToken2 instance,
String packageName, String serviceName, int uid) {

@ -29,13 +29,11 @@ import android.media.MediaItem2;
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.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback;
import android.media.MediaMetadata2;
import android.media.MediaPlayerInterface;
import android.media.MediaPlayerBase;
import android.media.MediaSession2;
import android.media.MediaSession2.Command;
import android.media.MediaSession2.CommandButton.Builder;
import android.media.MediaSession2.CommandGroup;
import android.media.MediaSession2.ControllerInfo;
import android.media.MediaSession2.PlaylistParams;
@ -159,12 +157,12 @@ public class ApiFactory implements StaticProvider {
@Override
public BuilderProvider createMediaSession2CommandButtonBuilder(Context context,
Builder instance) {
MediaSession2.CommandButton.Builder instance) {
return new MediaSession2Impl.CommandButtonImpl.BuilderImpl(context, instance);
}
public BuilderBaseProvider<MediaSession2, SessionCallback> createMediaSession2Builder(
Context context, MediaSession2.Builder instance, MediaPlayerInterface player) {
Context context, MediaSession2.Builder instance, MediaPlayerBase player) {
return new MediaSession2Impl.BuilderImpl(context, instance, player);
}
@ -189,10 +187,10 @@ public class ApiFactory implements StaticProvider {
@Override
public BuilderBaseProvider<MediaLibrarySession, MediaLibrarySessionCallback>
createMediaLibraryService2Builder(
Context context, MediaLibrarySessionBuilder instance, MediaPlayerInterface player,
createMediaLibraryService2Builder(MediaLibraryService2 service,
MediaLibrarySession.Builder instance, MediaPlayerBase player,
Executor callbackExecutor, MediaLibrarySessionCallback callback) {
return new MediaLibraryService2Impl.BuilderImpl(context, instance, player, callbackExecutor,
return new MediaLibraryService2Impl.BuilderImpl(service, instance, player, callbackExecutor,
callback);
}
@ -223,7 +221,7 @@ public class ApiFactory implements StaticProvider {
}
@Override
public SessionToken2 SessionToken2_fromBundle(Context context, Bundle bundle) {
public SessionToken2 fromBundle_SessionToken2(Context context, Bundle bundle) {
return SessionToken2Impl.fromBundle_impl(context, bundle);
}

@ -24,7 +24,7 @@ import android.media.AudioFocusRequest;
import android.media.AudioManager;
import android.media.MediaMetadata;
import android.media.MediaPlayer;
import android.media.MediaPlayerInterface;
import android.media.MediaPlayerBase;
import android.media.Cea708CaptionRenderer;
import android.media.ClosedCaptionRenderer;
import android.media.MediaMetadata2;
@ -312,7 +312,7 @@ public class VideoView2Impl extends BaseLayout
}
@Override
public void setRouteAttributes_impl(List<String> routeCategories, MediaPlayerInterface player) {
public void setRouteAttributes_impl(List<String> routeCategories, MediaPlayerBase player) {
// TODO: implement this.
}

@ -19,7 +19,7 @@ package android.media;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayerInterface.EventCallback;
import android.media.MediaPlayerBase.EventCallback;
import android.media.MediaSession2.Command;
import android.media.MediaSession2.CommandGroup;
import android.media.MediaSession2.ControllerInfo;
@ -77,7 +77,7 @@ public class MediaController2Test extends MediaSession2TestBase {
mPlayer = new MockPlayer(1);
mSession = new MediaSession2.Builder(mContext, mPlayer)
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext))
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext) {})
.setSessionActivity(mIntent)
.setId(TAG).build();
mController = createController(mSession.getToken());
@ -195,18 +195,22 @@ public class MediaController2Test extends MediaSession2TestBase {
assertEquals(seekPosition, mPlayer.mSeekPosition);
}
// TODO(jaewan): Re-enable this test
/*
@Test
public void testSetCurrentPlaylistItem() throws InterruptedException {
final
final int itemIndex = 9;
mController.setCurrentPlaylistItem(itemIndex);
mController.skipToPlaylistItem(itemIndex);
try {
assertTrue(mPlayer.mCountDownLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS));
} catch (InterruptedException e) {
fail(e.getMessage());
}
assertTrue(mPlayer.mSetCurrentPlaylistItemCalled);
assertEquals(itemIndex, mPlayer.mItemIndex);
assertEquals(itemIndex, mPlayer.mCurrentItem);
}
*/
@Test
public void testGetSessionActivity() throws InterruptedException {
@ -579,7 +583,7 @@ public class MediaController2Test extends MediaSession2TestBase {
final MockPlayer player = new MockPlayer(0);
sessionHandler.postAndSync(() -> {
mSession = new MediaSession2.Builder(mContext, mPlayer)
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext))
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext) {})
.setId("testDeadlock").build();
});
final MediaController2 controller = createController(mSession.getToken());
@ -769,7 +773,7 @@ public class MediaController2Test extends MediaSession2TestBase {
// Recreated session has different session stub, so previously created controller
// shouldn't be available.
mSession = new MediaSession2.Builder(mContext, mPlayer)
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext))
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext) {})
.setId(id).build();
});
testNoInteraction();

@ -29,7 +29,7 @@ import static org.junit.Assert.fail;
import android.content.Context;
import android.media.MediaController2.PlaybackInfo;
import android.media.MediaPlayerInterface.EventCallback;
import android.media.MediaPlayerBase.EventCallback;
import android.media.MediaSession2.Builder;
import android.media.MediaSession2.Command;
import android.media.MediaSession2.CommandButton;
@ -73,7 +73,7 @@ public class MediaSession2Test extends MediaSession2TestBase {
super.setUp();
mPlayer = new MockPlayer(0);
mSession = new MediaSession2.Builder(mContext, mPlayer)
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext)).build();
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext) {}).build();
}
@After

@ -117,8 +117,7 @@ abstract class MediaSession2TestBase {
* @return a PlaybackState
*/
public PlaybackState2 createPlaybackState(int state) {
return new PlaybackState2(mContext, state, 0, 0, 1.0f,
0, 0);
return new PlaybackState2(mContext, state, 0, 0, 1.0f, 0, 0);
}
final MediaController2 createController(SessionToken2 token) throws InterruptedException {

@ -55,7 +55,7 @@ public class MediaSessionManager_MediaSession2 extends MediaSession2TestBase {
// per test thread differs across the {@link MediaSession2} with the same TAG.
final MockPlayer player = new MockPlayer(1);
mSession = new MediaSession2.Builder(mContext, player)
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext))
.setSessionCallback(sHandlerExecutor, new SessionCallback(mContext) { })
.setId(TAG)
.build();
ensureChangeInSession();

@ -23,6 +23,8 @@ import static org.junit.Assert.assertEquals;
import android.content.Context;
import android.media.MediaSession2.CommandGroup;
import android.media.MediaSession2.ControllerInfo;
import android.media.MediaLibraryService2.MediaLibrarySession;
import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback;
import android.media.TestServiceRegistry.SessionCallbackProxy;
import android.media.TestUtils.SyncHandler;
import android.os.Bundle;
@ -112,7 +114,7 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 {
}
TestLibrarySessionCallback callback =
new TestLibrarySessionCallback(sessionCallbackProxy);
mSession = new MediaLibrarySessionBuilder(MockMediaLibraryService2.this, player,
mSession = new MediaLibrarySession.Builder(MockMediaLibraryService2.this, player,
executor, callback).setId(sessionId).build();
return mSession;
}

@ -77,7 +77,7 @@ public class MockMediaSessionService2 extends MediaSessionService2 {
}
@Override
public MediaNotification onUpdateNotification(PlaybackState2 state) {
public MediaNotification onUpdateNotification() {
if (mDefaultNotificationChannel == null) {
mDefaultNotificationChannel = new NotificationChannel(
DEFAULT_MEDIA_NOTIFICATION_CHANNEL_ID,
@ -88,7 +88,7 @@ public class MockMediaSessionService2 extends MediaSessionService2 {
Notification notification = new Notification.Builder(
this, DEFAULT_MEDIA_NOTIFICATION_CHANNEL_ID)
.setContentTitle(getPackageName())
.setContentText("Playback state: " + state.getState())
.setContentText("Dummt test notification")
.setSmallIcon(android.R.drawable.sym_def_app_icon).build();
return new MediaNotification(this, DEFAULT_MEDIA_NOTIFICATION_ID, notification);
}

@ -21,15 +21,14 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.ArrayMap;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
/**
* A mock implementation of {@link MediaPlayerInterface} for testing.
* A mock implementation of {@link MediaPlayerBase} for testing.
*/
public class MockPlayer implements MediaPlayerInterface {
public class MockPlayer extends MediaPlayerBase {
public final CountDownLatch mCountDownLatch;
public boolean mPlayCalled;
@ -43,7 +42,7 @@ public class MockPlayer implements MediaPlayerInterface {
public boolean mSeekToCalled;
public long mSeekPosition;
public boolean mSetCurrentPlaylistItemCalled;
public int mItemIndex;
public MediaItem2 mCurrentItem;
public boolean mSetPlaylistCalled;
public boolean mSetPlaylistParamsCalled;
@ -58,6 +57,11 @@ public class MockPlayer implements MediaPlayerInterface {
mCountDownLatch = (count > 0) ? new CountDownLatch(count) : null;
}
@Override
public void close() {
// no-op
}
@Override
public void play() {
mPlayCalled = true;
@ -132,9 +136,9 @@ public class MockPlayer implements MediaPlayerInterface {
}
@Override
public void setCurrentPlaylistItem(int index) {
public void setCurrentPlaylistItem(MediaItem2 item) {
mSetCurrentPlaylistItemCalled = true;
mItemIndex = index;
mCurrentItem = item;
if (mCountDownLatch != null) {
mCountDownLatch.countDown();
}
@ -146,6 +150,11 @@ public class MockPlayer implements MediaPlayerInterface {
return mLastPlaybackState;
}
@Override
public int getPlayerState() {
return mLastPlaybackState.getState();
}
@Override
public void registerEventCallback(@NonNull Executor executor,
@NonNull EventCallback callback) {

Loading…
Cancel
Save