diff --git a/media/java/android/media/browse/MediaBrowser.java b/media/java/android/media/browse/MediaBrowser.java index baa6b0fc27ef4..79b415f8903d2 100644 --- a/media/java/android/media/browse/MediaBrowser.java +++ b/media/java/android/media/browse/MediaBrowser.java @@ -476,6 +476,9 @@ public final class MediaBrowser { // the service will be told when we connect. if (mState == CONNECT_STATE_CONNECTED) { try { + if (options == null) { + mServiceBinder.addSubscriptionDeprecated(parentId, mServiceCallbacks); + } mServiceBinder.addSubscription(parentId, callback.mToken, options, mServiceCallbacks); } catch (RemoteException ex) { @@ -500,6 +503,7 @@ public final class MediaBrowser { try { if (callback == null) { if (mState == CONNECT_STATE_CONNECTED) { + mServiceBinder.removeSubscriptionDeprecated(parentId, mServiceCallbacks); mServiceBinder.removeSubscription(parentId, null, mServiceCallbacks); } } else { @@ -1070,7 +1074,12 @@ public final class MediaBrowser { } @Override - public void onLoadChildren(String parentId, ParceledListSlice list, + public void onLoadChildren(String parentId, ParceledListSlice list) { + onLoadChildrenWithOptions(parentId, list, null); + } + + @Override + public void onLoadChildrenWithOptions(String parentId, ParceledListSlice list, final Bundle options) { MediaBrowser mediaBrowser = mMediaBrowser.get(); if (mediaBrowser != null) { diff --git a/media/java/android/service/media/IMediaBrowserService.aidl b/media/java/android/service/media/IMediaBrowserService.aidl index 6b6a561168180..84f41f6c3afe7 100644 --- a/media/java/android/service/media/IMediaBrowserService.aidl +++ b/media/java/android/service/media/IMediaBrowserService.aidl @@ -17,8 +17,11 @@ oneway interface IMediaBrowserService { void connect(String pkg, in Bundle rootHints, IMediaBrowserServiceCallbacks callbacks); void disconnect(IMediaBrowserServiceCallbacks callbacks); + void addSubscriptionDeprecated(String uri, IMediaBrowserServiceCallbacks callbacks); + void removeSubscriptionDeprecated(String uri, IMediaBrowserServiceCallbacks callbacks); + + void getMediaItem(String uri, in ResultReceiver cb, IMediaBrowserServiceCallbacks callbacks); void addSubscription(String uri, in IBinder token, in Bundle options, IMediaBrowserServiceCallbacks callbacks); void removeSubscription(String uri, in IBinder token, IMediaBrowserServiceCallbacks callbacks); - void getMediaItem(String uri, in ResultReceiver cb, IMediaBrowserServiceCallbacks callbacks); } diff --git a/media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl b/media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl index dadb025060b7e..deeab1a8a28b9 100644 --- a/media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl +++ b/media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl @@ -22,5 +22,6 @@ oneway interface IMediaBrowserServiceCallbacks { */ void onConnect(String root, in MediaSession.Token session, in Bundle extras); void onConnectFailed(); - void onLoadChildren(String mediaId, in ParceledListSlice list, in Bundle options); + void onLoadChildren(String mediaId, in ParceledListSlice list); + void onLoadChildrenWithOptions(String mediaId, in ParceledListSlice list, in Bundle options); } diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java index 4b88926ce4d43..7eb91884e8d41 100644 --- a/media/java/android/service/media/MediaBrowserService.java +++ b/media/java/android/service/media/MediaBrowserService.java @@ -248,6 +248,11 @@ public abstract class MediaBrowserService extends Service { }); } + @Override + public void addSubscriptionDeprecated(String id, IMediaBrowserServiceCallbacks callbacks) { + // do-nothing + } + @Override public void addSubscription(final String id, final IBinder token, final Bundle options, final IMediaBrowserServiceCallbacks callbacks) { @@ -269,6 +274,11 @@ public abstract class MediaBrowserService extends Service { }); } + @Override + public void removeSubscriptionDeprecated(String id, IMediaBrowserServiceCallbacks callbacks) { + // do-nothing + } + @Override public void removeSubscription(final String id, final IBinder token, final IMediaBrowserServiceCallbacks callbacks) { @@ -632,7 +642,7 @@ public abstract class MediaBrowserService extends Service { final ParceledListSlice pls = filteredList == null ? null : new ParceledListSlice<>(filteredList); try { - connection.callbacks.onLoadChildren(parentId, pls, options); + connection.callbacks.onLoadChildrenWithOptions(parentId, pls, options); } catch (RemoteException ex) { // The other side is in the process of crashing. Log.w(TAG, "Calling onLoadChildren() failed for id=" + parentId