MediaSession2: Public APIs for MediaBrowser2 and MediaLibraryService2
Test: Run MediaComponents tests once
Change-Id: I34987fdd681c1b9889ae064b4ba8003ce61181ef
diff --git a/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java b/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
index f159398..59d8366 100644
--- a/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaBrowser2Impl.java
@@ -61,6 +61,31 @@
}
}
+ @Override
+ public void subscribe_impl(String parentId, Bundle options) {
+ // TODO(jaewan): Implement
+ }
+
+ @Override
+ public void unsubscribe_impl(String parentId, Bundle options) {
+ // TODO(jaewan): Implement
+ }
+
+ @Override
+ public void getItem_impl(String mediaId) {
+ // TODO(jaewan): Implement
+ }
+
+ @Override
+ public void getChildren_impl(String parentId, int page, int pageSize, Bundle options) {
+ // TODO(jaewan): Implement
+ }
+
+ @Override
+ public void search_impl(String query, int page, int pageSize, Bundle extras) {
+ // TODO(jaewan): Implement
+ }
+
public void onGetRootResult(
final Bundle rootHints, final String rootMediaId, final Bundle rootExtra) {
getCallbackExecutor().execute(() -> {
diff --git a/packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java b/packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java
index 430ab4c..b177dda 100644
--- a/packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaLibraryService2Impl.java
@@ -16,12 +16,20 @@
package com.android.media;
+import android.app.PendingIntent;
+import android.content.Context;
import android.content.Intent;
import android.media.MediaLibraryService2;
import android.media.MediaLibraryService2.MediaLibrarySession;
+import android.media.MediaLibraryService2.MediaLibrarySessionCallback;
+import android.media.MediaPlayerBase;
import android.media.MediaSession2;
+import android.media.MediaSession2.ControllerInfo;
+import android.media.MediaSession2.SessionCallback;
import android.media.MediaSessionService2;
+import android.media.VolumeProvider;
import android.media.update.MediaLibraryService2Provider;
+import android.os.Bundle;
public class MediaLibraryService2Impl extends MediaSessionService2Impl implements
MediaLibraryService2Provider {
@@ -51,4 +59,31 @@
serviceIntent.setAction(MediaLibraryService2.SERVICE_INTERFACE);
return serviceIntent;
}
+
+ public static class MediaLibrarySessionImpl extends MediaSession2Impl
+ implements MediaLibrarySessionProvider {
+ private final MediaLibrarySession mInstance;
+ private final MediaLibrarySessionCallback mCallback;
+
+ public MediaLibrarySessionImpl(MediaLibrarySession instance, Context context,
+ MediaPlayerBase player, String id,
+ MediaLibrarySessionCallback callback, VolumeProvider volumeProvider, int ratingType,
+ PendingIntent sessionActivity) {
+ super(instance, context, player, id, callback, volumeProvider, ratingType,
+ sessionActivity);
+ mInstance = instance;
+ mCallback = callback;
+ }
+
+ @Override
+ public void notifyChildrenChanged_impl(ControllerInfo controller, String parentId,
+ Bundle options) {
+ // TODO(jaewan): Implements
+ }
+
+ @Override
+ public void notifyChildrenChanged_impl(String parentId, Bundle options) {
+ // TODO(jaewan): Implements
+ }
+ }
}
diff --git a/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java b/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
index b54aea6..2e71641 100644
--- a/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
+++ b/packages/MediaComponents/src/com/android/media/MediaSession2Impl.java
@@ -17,6 +17,7 @@
package com.android.media;
import android.Manifest.permission;
+import android.app.PendingIntent;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -67,16 +68,21 @@
/**
* Can be only called by the {@link Builder#build()}.
- *
+ *
* @param instance
* @param context
* @param player
* @param id
* @param callback
+ * @param volumeProvider
+ * @param ratingType
+ * @param sessionActivity
*/
public MediaSession2Impl(MediaSession2 instance, Context context, MediaPlayerBase player,
- String id, SessionCallback callback) {
+ String id, SessionCallback callback, VolumeProvider volumeProvider, int ratingType,
+ PendingIntent sessionActivity) {
mInstance = instance;
+ // TODO(jaewan): Keep other params.
// Argument checks are done by builder already.
// Initialize finals first.
diff --git a/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java b/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
index f2772ed..3f7a1b1 100644
--- a/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
+++ b/packages/MediaComponents/src/com/android/media/MediaSession2Stub.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.media.IMediaSession2;
import android.media.IMediaSession2Callback;
+import android.media.MediaLibraryService2.BrowserRoot;
import android.media.MediaLibraryService2.MediaLibrarySessionCallback;
import android.media.MediaSession2;
import android.media.MediaSession2.Command;
@@ -36,7 +37,6 @@
import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
-import android.service.media.MediaBrowserService.BrowserRoot;
import android.support.annotation.GuardedBy;
import android.util.ArrayMap;
import android.util.Log;
diff --git a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
index 1766a6f..43acaf9 100644
--- a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
+++ b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
@@ -24,6 +24,8 @@
import android.media.MediaBrowser2.BrowserCallback;
import android.media.MediaController2;
import android.media.MediaLibraryService2;
+import android.media.MediaLibraryService2.MediaLibrarySession;
+import android.media.MediaLibraryService2.MediaLibrarySessionCallback;
import android.media.MediaPlayerBase;
import android.media.MediaSession2;
import android.media.MediaSession2.ControllerInfo;
@@ -35,6 +37,7 @@
import android.media.update.MediaBrowser2Provider;
import android.media.update.MediaControlView2Provider;
import android.media.update.MediaController2Provider;
+import android.media.update.MediaLibraryService2Provider.MediaLibrarySessionProvider;
import android.media.update.MediaSession2Provider;
import android.media.update.MediaSessionService2Provider;
import android.media.update.VideoView2Provider;
@@ -48,6 +51,7 @@
import com.android.media.MediaBrowser2Impl;
import com.android.media.MediaController2Impl;
import com.android.media.MediaLibraryService2Impl;
+import com.android.media.MediaLibraryService2Impl.MediaLibrarySessionImpl;
import com.android.media.MediaSession2Impl;
import com.android.media.MediaSessionService2Impl;
import com.android.widget.MediaControlView2Impl;
@@ -80,8 +84,8 @@
MediaPlayerBase player, String id, SessionCallback callback,
VolumeProvider volumeProvider, int ratingType,
PendingIntent sessionActivity) {
- // TOOD(jaewan): Keep and handles extra parameters
- return new MediaSession2Impl(instance, context, player, id, callback);
+ return new MediaSession2Impl(instance, context, player, id, callback,
+ volumeProvider, ratingType, sessionActivity);
}
@Override
@@ -105,6 +109,15 @@
}
@Override
+ public MediaLibrarySessionProvider createMediaLibraryService2MediaLibrarySession(
+ MediaLibrarySession instance, Context context, MediaPlayerBase player, String id,
+ MediaLibrarySessionCallback callback, VolumeProvider volumeProvider, int ratingType,
+ PendingIntent sessionActivity) {
+ return new MediaLibrarySessionImpl(instance, context, player, id, callback, volumeProvider,
+ ratingType, sessionActivity);
+ }
+
+ @Override
public MediaControlView2Provider createMediaControlView2(
MediaControlView2 instance, ViewProvider superProvider) {
return new MediaControlView2Impl(instance, superProvider);
diff --git a/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java b/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
index 7a16127..acf733f 100644
--- a/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
+++ b/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
@@ -24,7 +24,6 @@
import android.media.TestUtils.SyncHandler;
import android.os.Bundle;
import android.os.Process;
-import android.service.media.MediaBrowserService.BrowserRoot;
import javax.annotation.concurrent.GuardedBy;