OSDN Git Service

MediaSession2: Implement subscribe/unsubscribe
authorJaewan Kim <jaewan@google.com>
Mon, 19 Feb 2018 06:20:29 +0000 (15:20 +0900)
committerJaewan Kim <jaewan@google.com>
Wed, 21 Feb 2018 17:00:34 +0000 (02:00 +0900)
Bug: 72786292
Test: Run all MediaComponents tests
Change-Id: I0871f883d638292fb75b2bd8c9bd4d680e4a1d0b

media/java/android/media/MediaBrowser2.java
media/java/android/media/MediaLibraryService2.java
media/java/android/media/update/MediaBrowser2Provider.java

index f03dbae..97f0193 100644 (file)
@@ -156,12 +156,14 @@ public class MediaBrowser2 extends MediaController2 {
     /**
      * Unsubscribe for changes to the children of the parent, which was previously subscribed with
      * {@link #subscribe(String, Bundle)}.
+     * <p>
+     * This unsubscribes all previous subscription with the parent id, regardless of the extra
+     * that was previously sent to the library service.
      *
      * @param parentId parent id
-     * @param extras extra bundle
      */
-    public void unsubscribe(String parentId, @Nullable Bundle extras) {
-        mProvider.unsubscribe_impl(parentId, extras);
+    public void unsubscribe(String parentId) {
+        mProvider.unsubscribe_impl(parentId);
     }
 
     /**
index 19cefa7..fac773b 100644 (file)
@@ -176,25 +176,27 @@ public abstract class MediaLibraryService2 extends MediaSessionService2 {
         }
 
         /**
-         * Called when a controller subscribes to the parent.
+         * Called when a controller subscribed to the parent.
+         * <p>
+         * It's your responsibility to keep subscriptions by your own and call
+         * {@link MediaLibrarySession#notifyChildrenChanged(ControllerInfo, String, Bundle)} when
+         * the parent is changed.
          *
          * @param controller controller
          * @param parentId parent id
          * @param extras extra bundle
          */
-        public void onSubscribed(@NonNull ControllerInfo controller, String parentId,
+        public void onSubscribed(@NonNull ControllerInfo controller, @NonNull String parentId,
                 @Nullable Bundle extras) {
         }
 
         /**
-         * Called when a controller unsubscribes to the parent.
+         * Called when a controller unsubscribed to the parent.
          *
          * @param controller controller
          * @param parentId parent id
-         * @param extras extra bundle
          */
-        public void onUnsubscribed(@NonNull ControllerInfo controller, String parentId,
-                @Nullable Bundle extras) {
+        public void onUnsubscribed(@NonNull ControllerInfo controller, @NonNull String parentId) {
         }
 
         /**
@@ -206,7 +208,6 @@ public abstract class MediaLibraryService2 extends MediaSessionService2 {
          */
         public void onSearch(@NonNull ControllerInfo controllerInfo, @NonNull String query,
                 @Nullable Bundle extras) {
-
         }
 
         /**
index eda4c7c..a18701e 100644 (file)
@@ -25,7 +25,7 @@ public interface MediaBrowser2Provider extends MediaController2Provider {
     void getLibraryRoot_impl(Bundle rootHints);
 
     void subscribe_impl(String parentId, Bundle extras);
-    void unsubscribe_impl(String parentId, Bundle extras);
+    void unsubscribe_impl(String parentId);
 
     void getItem_impl(String mediaId);
     void getChildren_impl(String parentId, int page, int pageSize, Bundle extras);