Loading packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java +11 −6 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.media; import android.content.Context; import android.media.MediaBrowser2; import android.media.MediaBrowser2.BrowserCallback; import android.media.MediaController2; import android.media.MediaItem2; import android.media.SessionToken2; import android.media.update.MediaBrowser2Provider; Loading @@ -44,6 +45,10 @@ public class MediaBrowser2Impl extends MediaController2Impl implements MediaBrow mCallback = callback; } @Override MediaBrowser2 getInstance() { return (MediaBrowser2) super.getInstance(); } @Override public void getLibraryRoot_impl(Bundle rootHints) { final IMediaSession2 binder = getSessionBinder(); Loading Loading @@ -183,39 +188,39 @@ public class MediaBrowser2Impl extends MediaController2Impl implements MediaBrow public void onGetLibraryRootDone( final Bundle rootHints, final String rootMediaId, final Bundle rootExtra) { getCallbackExecutor().execute(() -> { mCallback.onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); mCallback.onGetLibraryRootDone(getInstance(), rootHints, rootMediaId, rootExtra); }); } public void onGetItemDone(String mediaId, MediaItem2 item) { getCallbackExecutor().execute(() -> { mCallback.onGetItemDone(mediaId, item); mCallback.onGetItemDone(getInstance(), mediaId, item); }); } public void onGetChildrenDone(String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onGetChildrenDone(parentId, page, pageSize, result, extras); mCallback.onGetChildrenDone(getInstance(), parentId, page, pageSize, result, extras); }); } public void onSearchResultChanged(String query, int itemCount, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onSearchResultChanged(query, itemCount, extras); mCallback.onSearchResultChanged(getInstance(), query, itemCount, extras); }); } public void onGetSearchResultDone(String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onGetSearchResultDone(query, page, pageSize, result, extras); mCallback.onGetSearchResultDone(getInstance(), query, page, pageSize, result, extras); }); } public void onChildrenChanged(final String parentId, int itemCount, final Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onChildrenChanged(parentId, itemCount, extras); mCallback.onChildrenChanged(getInstance(), parentId, itemCount, extras); }); } } packages/MediaComponents/src/com/android/media/MediaController2Impl.java +8 −8 Original line number Diff line number Diff line Loading @@ -226,7 +226,7 @@ public class MediaController2Impl implements MediaController2Provider { } } mCallbackExecutor.execute(() -> { mCallback.onDisconnected(); mCallback.onDisconnected(mInstance); }); } Loading Loading @@ -623,7 +623,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaybackStateChanged(state); mCallback.onPlaybackStateChanged(mInstance, state); }); } Loading @@ -635,7 +635,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaylistParamsChanged(params); mCallback.onPlaylistParamsChanged(mInstance, params); }); } Loading @@ -647,7 +647,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaybackInfoChanged(info); mCallback.onPlaybackInfoChanged(mInstance, info); }); } Loading @@ -666,7 +666,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaylistChanged(playlist); mCallback.onPlaylistChanged(mInstance, playlist); }); } } Loading Loading @@ -721,7 +721,7 @@ public class MediaController2Impl implements MediaController2Provider { // Note: We may trigger ControllerCallbacks with the initial values // But it's hard to define the order of the controller callbacks // Only notify about the mCallback.onConnected(allowedCommands); mCallback.onConnected(mInstance, allowedCommands); }); } finally { if (close) { Loading @@ -739,13 +739,13 @@ public class MediaController2Impl implements MediaController2Provider { } mCallbackExecutor.execute(() -> { // TODO(jaewan): Double check if the controller exists. mCallback.onCustomCommand(command, args, receiver); mCallback.onCustomCommand(mInstance, command, args, receiver); }); } void onCustomLayoutChanged(final List<CommandButton> layout) { mCallbackExecutor.execute(() -> { mCallback.onCustomLayoutChanged(layout); mCallback.onCustomLayoutChanged(mInstance, layout); }); } Loading packages/MediaComponents/src/com/android/media/MediaSession2Stub.java +34 −19 Original line number Diff line number Diff line Loading @@ -231,7 +231,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // instead of pending them. mConnectingControllers.add(ControllerInfoImpl.from(controllerInfo).getId()); } CommandGroup allowedCommands = session.getCallback().onConnect(controllerInfo); CommandGroup allowedCommands = session.getCallback().onConnect( session.getInstance(), controllerInfo); // Don't reject connection for the request from trusted app. // Otherwise server will fail to retrieve session's information to dispatch // media keys to. Loading Loading @@ -342,7 +343,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // TODO(jaewan): Sanity check. Command command = new Command( session.getContext(), MediaSession2.COMMAND_CODE_SET_VOLUME); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -377,7 +379,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // TODO(jaewan): Sanity check. Command command = new Command( session.getContext(), MediaSession2.COMMAND_CODE_SET_VOLUME); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -416,7 +419,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { } // TODO(jaewan): Sanity check. Command command = new Command(session.getContext(), commandCode); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -488,7 +492,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, command) == null) { return; } session.getCallback().onCustomCommand(controller, command, args, receiver); session.getCallback().onCustomCommand(session.getInstance(), controller, command, args, receiver); }); } Loading @@ -506,7 +511,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_URI) == null) { return; } session.getCallback().onPrepareFromUri(controller, uri, extras); session.getCallback().onPrepareFromUri(session.getInstance(), controller, uri, extras); }); } Loading @@ -524,7 +530,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_SEARCH) == null) { return; } session.getCallback().onPrepareFromSearch(controller, query, extras); session.getCallback().onPrepareFromSearch(session.getInstance(), controller, query, extras); }); } Loading @@ -542,7 +549,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_MEDIA_ID) == null) { return; } session.getCallback().onPrepareFromMediaId(controller, mediaId, extras); session.getCallback().onPrepareFromMediaId(session.getInstance(), controller, mediaId, extras); }); } Loading @@ -560,7 +568,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PLAY_FROM_URI) == null) { return; } session.getCallback().onPlayFromUri(controller, uri, extras); session.getCallback().onPlayFromUri(session.getInstance(), controller, uri, extras); }); } Loading @@ -578,7 +586,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PLAY_FROM_SEARCH) == null) { return; } session.getCallback().onPlayFromSearch(controller, query, extras); session.getCallback().onPlayFromSearch(session.getInstance(), controller, query, extras); }); } Loading @@ -595,7 +604,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (session == null) { return; } session.getCallback().onPlayFromMediaId(controller, mediaId, extras); session.getCallback().onPlayFromMediaId(session.getInstance(), controller, mediaId, extras); }); } Loading @@ -616,7 +626,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { return; } Rating2 rating = Rating2Impl.fromBundle(session.getContext(), ratingBundle); session.getCallback().onSetRating(controller, mediaId, rating); session.getCallback().onSetRating(session.getInstance(), controller, mediaId, rating); }); } Loading @@ -637,7 +648,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } LibraryRoot root = session.getCallback().onGetLibraryRoot(controller, rootHints); LibraryRoot root = session.getCallback().onGetLibraryRoot(session.getInstance(), controller, rootHints); try { caller.onGetLibraryRootDone(rootHints, root == null ? null : root.getRootId(), Loading Loading @@ -668,7 +680,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } MediaItem2 result = session.getCallback().onGetItem(controller, mediaId); MediaItem2 result = session.getCallback().onGetItem(session.getInstance(), controller, mediaId); try { caller.onGetItemDone(mediaId, result == null ? null : result.toBundle()); } catch (RemoteException e) { Loading Loading @@ -703,7 +716,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } List<MediaItem2> result = session.getCallback().onGetChildren( List<MediaItem2> result = session.getCallback().onGetChildren(session.getInstance(), controller, parentId, page, pageSize, extras); if (result != null && result.size() > pageSize) { throw new IllegalArgumentException("onGetChildren() shouldn't return media items " Loading Loading @@ -738,7 +751,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onSearch(controller, query, extras); session.getCallback().onSearch(session.getInstance(), controller, query, extras); }); } Loading Loading @@ -767,7 +781,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } List<MediaItem2> result = session.getCallback().onGetSearchResult( List<MediaItem2> result = session.getCallback().onGetSearchResult(session.getInstance(), controller, query, page, pageSize, extras); if (result != null && result.size() > pageSize) { throw new IllegalArgumentException("onGetSearchResult() shouldn't return media " Loading Loading @@ -804,7 +818,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onSubscribe(controller, parentId, option); session.getCallback().onSubscribe(session.getInstance(), controller, parentId, option); synchronized (mLock) { Set<String> subscription = mSubscriptions.get(controller); if (subscription == null) { Loading @@ -828,7 +843,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onUnsubscribe(controller, parentId); session.getCallback().onUnsubscribe(session.getInstance(), controller, parentId); synchronized (mLock) { mSubscriptions.remove(controller); } Loading packages/MediaComponents/test/src/android/media/MediaBrowser2Test.java +26 −21 Original line number Diff line number Diff line Loading @@ -462,45 +462,48 @@ public class MediaBrowser2Test extends MediaController2Test { @CallSuper @Override public void onConnected(CommandGroup commands) { public void onConnected(MediaController2 controller, CommandGroup commands) { connectLatch.countDown(); } @CallSuper @Override public void onDisconnected() { public void onDisconnected(MediaController2 controller) { disconnectLatch.countDown(); } @Override public void onPlaybackStateChanged(PlaybackState2 state) { public void onPlaybackStateChanged(MediaController2 controller, PlaybackState2 state) { mCallbackProxy.onPlaybackStateChanged(state); } @Override public void onPlaylistParamsChanged(PlaylistParams params) { public void onPlaylistParamsChanged(MediaController2 controller, PlaylistParams params) { mCallbackProxy.onPlaylistParamsChanged(params); } @Override public void onPlaybackInfoChanged(MediaController2.PlaybackInfo info) { public void onPlaybackInfoChanged(MediaController2 controller, MediaController2.PlaybackInfo info) { mCallbackProxy.onPlaybackInfoChanged(info); } @Override public void onCustomCommand(Command command, Bundle args, ResultReceiver receiver) { public void onCustomCommand(MediaController2 controller, Command command, Bundle args, ResultReceiver receiver) { mCallbackProxy.onCustomCommand(command, args, receiver); } @Override public void onCustomLayoutChanged(List<CommandButton> layout) { public void onCustomLayoutChanged(MediaController2 controller, List<CommandButton> layout) { mCallbackProxy.onCustomLayoutChanged(layout); } @Override public void onGetLibraryRootDone(Bundle rootHints, String rootMediaId, Bundle rootExtra) { super.onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); public void onGetLibraryRootDone(MediaBrowser2 browser, Bundle rootHints, String rootMediaId, Bundle rootExtra) { super.onGetLibraryRootDone(browser, rootHints, rootMediaId, rootExtra); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); Loading @@ -508,17 +511,17 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onGetItemDone(String mediaId, MediaItem2 result) { super.onGetItemDone(mediaId, result); public void onGetItemDone(MediaBrowser2 browser, String mediaId, MediaItem2 result) { super.onGetItemDone(browser, mediaId, result); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy).onGetItemDone(mediaId, result); } } @Override public void onGetChildrenDone(String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetChildrenDone(parentId, page, pageSize, result, extras); public void onGetChildrenDone(MediaBrowser2 browser, String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetChildrenDone(browser, parentId, page, pageSize, result, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetChildrenDone(parentId, page, pageSize, result, extras); Loading @@ -526,8 +529,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onSearchResultChanged(String query, int itemCount, Bundle extras) { super.onSearchResultChanged(query, itemCount, extras); public void onSearchResultChanged(MediaBrowser2 browser, String query, int itemCount, Bundle extras) { super.onSearchResultChanged(browser, query, itemCount, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onSearchResultChanged(query, itemCount, extras); Loading @@ -535,9 +539,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onGetSearchResultDone(String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetSearchResultDone(query, page, pageSize, result, extras); public void onGetSearchResultDone(MediaBrowser2 browser, String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetSearchResultDone(browser, query, page, pageSize, result, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetSearchResultDone(query, page, pageSize, result, extras); Loading @@ -545,8 +549,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onChildrenChanged(String parentId, int itemCount, Bundle extras) { super.onChildrenChanged(parentId, itemCount, extras); public void onChildrenChanged(MediaBrowser2 browser, String parentId, int itemCount, Bundle extras) { super.onChildrenChanged(browser, parentId, itemCount, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onChildrenChanged(parentId, itemCount, extras); Loading packages/MediaComponents/test/src/android/media/MediaController2Test.java +22 −16 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.media; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.media.MediaPlayerBase.PlayerEventCallback; import android.media.MediaSession2.Command; import android.media.MediaSession2.CommandGroup; import android.media.MediaSession2.ControllerInfo; Loading Loading @@ -322,9 +321,9 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onCustomCommand(ControllerInfo controller, Command customCommand, Bundle args, ResultReceiver cb) { super.onCustomCommand(controller, customCommand, args, cb); public void onCustomCommand(MediaSession2 session, ControllerInfo controller, Command customCommand, Bundle args, ResultReceiver cb) { super.onCustomCommand(session, controller, customCommand, args, cb); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(testCommand, customCommand); assertTrue(TestUtils.equals(testArgs, args)); Loading Loading @@ -352,7 +351,8 @@ public class MediaController2Test extends MediaSession2TestBase { public void testControllerCallback_sessionRejects() throws InterruptedException { final MediaSession2.SessionCallback sessionCallback = new SessionCallback(mContext) { @Override public MediaSession2.CommandGroup onConnect(ControllerInfo controller) { public MediaSession2.CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return null; } }; Loading Loading @@ -390,7 +390,9 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromSearch(ControllerInfo controller, String query, Bundle extras) { public void onPlayFromSearch(MediaSession2 session, ControllerInfo controller, String query, Bundle extras) { super.onPlayFromSearch(session, controller, query, extras); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, query); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -415,7 +417,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromUri(ControllerInfo controller, Uri uri, Bundle extras) { public void onPlayFromUri(MediaSession2 session, ControllerInfo controller, Uri uri, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, uri); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -440,9 +443,10 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromMediaId(ControllerInfo controller, String id, Bundle extras) { public void onPlayFromMediaId(MediaSession2 session, ControllerInfo controller, String mediaId, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, id); assertEquals(request, mediaId); assertTrue(TestUtils.equals(bundle, extras)); latch.countDown(); } Loading @@ -466,8 +470,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromSearch(ControllerInfo controller, String query, Bundle extras) { public void onPrepareFromSearch(MediaSession2 session, ControllerInfo controller, String query, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, query); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -492,7 +496,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromUri(ControllerInfo controller, Uri uri, Bundle extras) { public void onPrepareFromUri(MediaSession2 session, ControllerInfo controller, Uri uri, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, uri); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -517,9 +522,10 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromMediaId(ControllerInfo controller, String id, Bundle extras) { public void onPrepareFromMediaId(MediaSession2 session, ControllerInfo controller, String mediaId, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, id); assertEquals(request, mediaId); assertTrue(TestUtils.equals(bundle, extras)); latch.countDown(); } Loading @@ -544,8 +550,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onSetRating(ControllerInfo controller, String mediaIdOut, Rating2 ratingOut) { public void onSetRating(MediaSession2 session, ControllerInfo controller, String mediaIdOut, Rating2 ratingOut) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(mediaId, mediaIdOut); assertEquals(rating, ratingOut); Loading Loading
packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java +11 −6 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.media; import android.content.Context; import android.media.MediaBrowser2; import android.media.MediaBrowser2.BrowserCallback; import android.media.MediaController2; import android.media.MediaItem2; import android.media.SessionToken2; import android.media.update.MediaBrowser2Provider; Loading @@ -44,6 +45,10 @@ public class MediaBrowser2Impl extends MediaController2Impl implements MediaBrow mCallback = callback; } @Override MediaBrowser2 getInstance() { return (MediaBrowser2) super.getInstance(); } @Override public void getLibraryRoot_impl(Bundle rootHints) { final IMediaSession2 binder = getSessionBinder(); Loading Loading @@ -183,39 +188,39 @@ public class MediaBrowser2Impl extends MediaController2Impl implements MediaBrow public void onGetLibraryRootDone( final Bundle rootHints, final String rootMediaId, final Bundle rootExtra) { getCallbackExecutor().execute(() -> { mCallback.onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); mCallback.onGetLibraryRootDone(getInstance(), rootHints, rootMediaId, rootExtra); }); } public void onGetItemDone(String mediaId, MediaItem2 item) { getCallbackExecutor().execute(() -> { mCallback.onGetItemDone(mediaId, item); mCallback.onGetItemDone(getInstance(), mediaId, item); }); } public void onGetChildrenDone(String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onGetChildrenDone(parentId, page, pageSize, result, extras); mCallback.onGetChildrenDone(getInstance(), parentId, page, pageSize, result, extras); }); } public void onSearchResultChanged(String query, int itemCount, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onSearchResultChanged(query, itemCount, extras); mCallback.onSearchResultChanged(getInstance(), query, itemCount, extras); }); } public void onGetSearchResultDone(String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onGetSearchResultDone(query, page, pageSize, result, extras); mCallback.onGetSearchResultDone(getInstance(), query, page, pageSize, result, extras); }); } public void onChildrenChanged(final String parentId, int itemCount, final Bundle extras) { getCallbackExecutor().execute(() -> { mCallback.onChildrenChanged(parentId, itemCount, extras); mCallback.onChildrenChanged(getInstance(), parentId, itemCount, extras); }); } }
packages/MediaComponents/src/com/android/media/MediaController2Impl.java +8 −8 Original line number Diff line number Diff line Loading @@ -226,7 +226,7 @@ public class MediaController2Impl implements MediaController2Provider { } } mCallbackExecutor.execute(() -> { mCallback.onDisconnected(); mCallback.onDisconnected(mInstance); }); } Loading Loading @@ -623,7 +623,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaybackStateChanged(state); mCallback.onPlaybackStateChanged(mInstance, state); }); } Loading @@ -635,7 +635,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaylistParamsChanged(params); mCallback.onPlaylistParamsChanged(mInstance, params); }); } Loading @@ -647,7 +647,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaybackInfoChanged(info); mCallback.onPlaybackInfoChanged(mInstance, info); }); } Loading @@ -666,7 +666,7 @@ public class MediaController2Impl implements MediaController2Provider { if (!mInstance.isConnected()) { return; } mCallback.onPlaylistChanged(playlist); mCallback.onPlaylistChanged(mInstance, playlist); }); } } Loading Loading @@ -721,7 +721,7 @@ public class MediaController2Impl implements MediaController2Provider { // Note: We may trigger ControllerCallbacks with the initial values // But it's hard to define the order of the controller callbacks // Only notify about the mCallback.onConnected(allowedCommands); mCallback.onConnected(mInstance, allowedCommands); }); } finally { if (close) { Loading @@ -739,13 +739,13 @@ public class MediaController2Impl implements MediaController2Provider { } mCallbackExecutor.execute(() -> { // TODO(jaewan): Double check if the controller exists. mCallback.onCustomCommand(command, args, receiver); mCallback.onCustomCommand(mInstance, command, args, receiver); }); } void onCustomLayoutChanged(final List<CommandButton> layout) { mCallbackExecutor.execute(() -> { mCallback.onCustomLayoutChanged(layout); mCallback.onCustomLayoutChanged(mInstance, layout); }); } Loading
packages/MediaComponents/src/com/android/media/MediaSession2Stub.java +34 −19 Original line number Diff line number Diff line Loading @@ -231,7 +231,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // instead of pending them. mConnectingControllers.add(ControllerInfoImpl.from(controllerInfo).getId()); } CommandGroup allowedCommands = session.getCallback().onConnect(controllerInfo); CommandGroup allowedCommands = session.getCallback().onConnect( session.getInstance(), controllerInfo); // Don't reject connection for the request from trusted app. // Otherwise server will fail to retrieve session's information to dispatch // media keys to. Loading Loading @@ -342,7 +343,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // TODO(jaewan): Sanity check. Command command = new Command( session.getContext(), MediaSession2.COMMAND_CODE_SET_VOLUME); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -377,7 +379,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { // TODO(jaewan): Sanity check. Command command = new Command( session.getContext(), MediaSession2.COMMAND_CODE_SET_VOLUME); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -416,7 +419,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { } // TODO(jaewan): Sanity check. Command command = new Command(session.getContext(), commandCode); boolean accepted = session.getCallback().onCommandRequest(controller, command); boolean accepted = session.getCallback().onCommandRequest(session.getInstance(), controller, command); if (!accepted) { // Don't run rejected command. if (DEBUG) { Loading Loading @@ -488,7 +492,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, command) == null) { return; } session.getCallback().onCustomCommand(controller, command, args, receiver); session.getCallback().onCustomCommand(session.getInstance(), controller, command, args, receiver); }); } Loading @@ -506,7 +511,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_URI) == null) { return; } session.getCallback().onPrepareFromUri(controller, uri, extras); session.getCallback().onPrepareFromUri(session.getInstance(), controller, uri, extras); }); } Loading @@ -524,7 +530,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_SEARCH) == null) { return; } session.getCallback().onPrepareFromSearch(controller, query, extras); session.getCallback().onPrepareFromSearch(session.getInstance(), controller, query, extras); }); } Loading @@ -542,7 +549,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PREPARE_FROM_MEDIA_ID) == null) { return; } session.getCallback().onPrepareFromMediaId(controller, mediaId, extras); session.getCallback().onPrepareFromMediaId(session.getInstance(), controller, mediaId, extras); }); } Loading @@ -560,7 +568,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PLAY_FROM_URI) == null) { return; } session.getCallback().onPlayFromUri(controller, uri, extras); session.getCallback().onPlayFromUri(session.getInstance(), controller, uri, extras); }); } Loading @@ -578,7 +586,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { caller, MediaSession2.COMMAND_CODE_PLAY_FROM_SEARCH) == null) { return; } session.getCallback().onPlayFromSearch(controller, query, extras); session.getCallback().onPlayFromSearch(session.getInstance(), controller, query, extras); }); } Loading @@ -595,7 +604,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (session == null) { return; } session.getCallback().onPlayFromMediaId(controller, mediaId, extras); session.getCallback().onPlayFromMediaId(session.getInstance(), controller, mediaId, extras); }); } Loading @@ -616,7 +626,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { return; } Rating2 rating = Rating2Impl.fromBundle(session.getContext(), ratingBundle); session.getCallback().onSetRating(controller, mediaId, rating); session.getCallback().onSetRating(session.getInstance(), controller, mediaId, rating); }); } Loading @@ -637,7 +648,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } LibraryRoot root = session.getCallback().onGetLibraryRoot(controller, rootHints); LibraryRoot root = session.getCallback().onGetLibraryRoot(session.getInstance(), controller, rootHints); try { caller.onGetLibraryRootDone(rootHints, root == null ? null : root.getRootId(), Loading Loading @@ -668,7 +680,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } MediaItem2 result = session.getCallback().onGetItem(controller, mediaId); MediaItem2 result = session.getCallback().onGetItem(session.getInstance(), controller, mediaId); try { caller.onGetItemDone(mediaId, result == null ? null : result.toBundle()); } catch (RemoteException e) { Loading Loading @@ -703,7 +716,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } List<MediaItem2> result = session.getCallback().onGetChildren( List<MediaItem2> result = session.getCallback().onGetChildren(session.getInstance(), controller, parentId, page, pageSize, extras); if (result != null && result.size() > pageSize) { throw new IllegalArgumentException("onGetChildren() shouldn't return media items " Loading Loading @@ -738,7 +751,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onSearch(controller, query, extras); session.getCallback().onSearch(session.getInstance(), controller, query, extras); }); } Loading Loading @@ -767,7 +781,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } List<MediaItem2> result = session.getCallback().onGetSearchResult( List<MediaItem2> result = session.getCallback().onGetSearchResult(session.getInstance(), controller, query, page, pageSize, extras); if (result != null && result.size() > pageSize) { throw new IllegalArgumentException("onGetSearchResult() shouldn't return media " Loading Loading @@ -804,7 +818,8 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onSubscribe(controller, parentId, option); session.getCallback().onSubscribe(session.getInstance(), controller, parentId, option); synchronized (mLock) { Set<String> subscription = mSubscriptions.get(controller); if (subscription == null) { Loading @@ -828,7 +843,7 @@ public class MediaSession2Stub extends IMediaSession2.Stub { if (getControllerIfAble(caller, MediaSession2.COMMAND_CODE_BROWSER) == null) { return; } session.getCallback().onUnsubscribe(controller, parentId); session.getCallback().onUnsubscribe(session.getInstance(), controller, parentId); synchronized (mLock) { mSubscriptions.remove(controller); } Loading
packages/MediaComponents/test/src/android/media/MediaBrowser2Test.java +26 −21 Original line number Diff line number Diff line Loading @@ -462,45 +462,48 @@ public class MediaBrowser2Test extends MediaController2Test { @CallSuper @Override public void onConnected(CommandGroup commands) { public void onConnected(MediaController2 controller, CommandGroup commands) { connectLatch.countDown(); } @CallSuper @Override public void onDisconnected() { public void onDisconnected(MediaController2 controller) { disconnectLatch.countDown(); } @Override public void onPlaybackStateChanged(PlaybackState2 state) { public void onPlaybackStateChanged(MediaController2 controller, PlaybackState2 state) { mCallbackProxy.onPlaybackStateChanged(state); } @Override public void onPlaylistParamsChanged(PlaylistParams params) { public void onPlaylistParamsChanged(MediaController2 controller, PlaylistParams params) { mCallbackProxy.onPlaylistParamsChanged(params); } @Override public void onPlaybackInfoChanged(MediaController2.PlaybackInfo info) { public void onPlaybackInfoChanged(MediaController2 controller, MediaController2.PlaybackInfo info) { mCallbackProxy.onPlaybackInfoChanged(info); } @Override public void onCustomCommand(Command command, Bundle args, ResultReceiver receiver) { public void onCustomCommand(MediaController2 controller, Command command, Bundle args, ResultReceiver receiver) { mCallbackProxy.onCustomCommand(command, args, receiver); } @Override public void onCustomLayoutChanged(List<CommandButton> layout) { public void onCustomLayoutChanged(MediaController2 controller, List<CommandButton> layout) { mCallbackProxy.onCustomLayoutChanged(layout); } @Override public void onGetLibraryRootDone(Bundle rootHints, String rootMediaId, Bundle rootExtra) { super.onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); public void onGetLibraryRootDone(MediaBrowser2 browser, Bundle rootHints, String rootMediaId, Bundle rootExtra) { super.onGetLibraryRootDone(browser, rootHints, rootMediaId, rootExtra); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetLibraryRootDone(rootHints, rootMediaId, rootExtra); Loading @@ -508,17 +511,17 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onGetItemDone(String mediaId, MediaItem2 result) { super.onGetItemDone(mediaId, result); public void onGetItemDone(MediaBrowser2 browser, String mediaId, MediaItem2 result) { super.onGetItemDone(browser, mediaId, result); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy).onGetItemDone(mediaId, result); } } @Override public void onGetChildrenDone(String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetChildrenDone(parentId, page, pageSize, result, extras); public void onGetChildrenDone(MediaBrowser2 browser, String parentId, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetChildrenDone(browser, parentId, page, pageSize, result, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetChildrenDone(parentId, page, pageSize, result, extras); Loading @@ -526,8 +529,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onSearchResultChanged(String query, int itemCount, Bundle extras) { super.onSearchResultChanged(query, itemCount, extras); public void onSearchResultChanged(MediaBrowser2 browser, String query, int itemCount, Bundle extras) { super.onSearchResultChanged(browser, query, itemCount, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onSearchResultChanged(query, itemCount, extras); Loading @@ -535,9 +539,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onGetSearchResultDone(String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetSearchResultDone(query, page, pageSize, result, extras); public void onGetSearchResultDone(MediaBrowser2 browser, String query, int page, int pageSize, List<MediaItem2> result, Bundle extras) { super.onGetSearchResultDone(browser, query, page, pageSize, result, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onGetSearchResultDone(query, page, pageSize, result, extras); Loading @@ -545,8 +549,9 @@ public class MediaBrowser2Test extends MediaController2Test { } @Override public void onChildrenChanged(String parentId, int itemCount, Bundle extras) { super.onChildrenChanged(parentId, itemCount, extras); public void onChildrenChanged(MediaBrowser2 browser, String parentId, int itemCount, Bundle extras) { super.onChildrenChanged(browser, parentId, itemCount, extras); if (mCallbackProxy instanceof TestBrowserCallbackInterface) { ((TestBrowserCallbackInterface) mCallbackProxy) .onChildrenChanged(parentId, itemCount, extras); Loading
packages/MediaComponents/test/src/android/media/MediaController2Test.java +22 −16 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package android.media; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.media.MediaPlayerBase.PlayerEventCallback; import android.media.MediaSession2.Command; import android.media.MediaSession2.CommandGroup; import android.media.MediaSession2.ControllerInfo; Loading Loading @@ -322,9 +321,9 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onCustomCommand(ControllerInfo controller, Command customCommand, Bundle args, ResultReceiver cb) { super.onCustomCommand(controller, customCommand, args, cb); public void onCustomCommand(MediaSession2 session, ControllerInfo controller, Command customCommand, Bundle args, ResultReceiver cb) { super.onCustomCommand(session, controller, customCommand, args, cb); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(testCommand, customCommand); assertTrue(TestUtils.equals(testArgs, args)); Loading Loading @@ -352,7 +351,8 @@ public class MediaController2Test extends MediaSession2TestBase { public void testControllerCallback_sessionRejects() throws InterruptedException { final MediaSession2.SessionCallback sessionCallback = new SessionCallback(mContext) { @Override public MediaSession2.CommandGroup onConnect(ControllerInfo controller) { public MediaSession2.CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return null; } }; Loading Loading @@ -390,7 +390,9 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromSearch(ControllerInfo controller, String query, Bundle extras) { public void onPlayFromSearch(MediaSession2 session, ControllerInfo controller, String query, Bundle extras) { super.onPlayFromSearch(session, controller, query, extras); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, query); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -415,7 +417,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromUri(ControllerInfo controller, Uri uri, Bundle extras) { public void onPlayFromUri(MediaSession2 session, ControllerInfo controller, Uri uri, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, uri); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -440,9 +443,10 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPlayFromMediaId(ControllerInfo controller, String id, Bundle extras) { public void onPlayFromMediaId(MediaSession2 session, ControllerInfo controller, String mediaId, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, id); assertEquals(request, mediaId); assertTrue(TestUtils.equals(bundle, extras)); latch.countDown(); } Loading @@ -466,8 +470,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromSearch(ControllerInfo controller, String query, Bundle extras) { public void onPrepareFromSearch(MediaSession2 session, ControllerInfo controller, String query, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, query); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -492,7 +496,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromUri(ControllerInfo controller, Uri uri, Bundle extras) { public void onPrepareFromUri(MediaSession2 session, ControllerInfo controller, Uri uri, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, uri); assertTrue(TestUtils.equals(bundle, extras)); Loading @@ -517,9 +522,10 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onPrepareFromMediaId(ControllerInfo controller, String id, Bundle extras) { public void onPrepareFromMediaId(MediaSession2 session, ControllerInfo controller, String mediaId, Bundle extras) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(request, id); assertEquals(request, mediaId); assertTrue(TestUtils.equals(bundle, extras)); latch.countDown(); } Loading @@ -544,8 +550,8 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallback callback = new SessionCallback(mContext) { @Override public void onSetRating(ControllerInfo controller, String mediaIdOut, Rating2 ratingOut) { public void onSetRating(MediaSession2 session, ControllerInfo controller, String mediaIdOut, Rating2 ratingOut) { assertEquals(mContext.getPackageName(), controller.getPackageName()); assertEquals(mediaId, mediaIdOut); assertEquals(rating, ratingOut); Loading