summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoboErik <epastern@google.com>2014-07-28 18:06:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-07-24 20:48:02 +0000
commit30674e91a2b9c6c24e141b31240e3867d97eb0d0 (patch)
tree657509ba33be9ee4e1d720dc6196055741a4c35b
parent14185765213c6ff3ea762053f7bafda3760530d4 (diff)
parent76fca4e177e18b591439fdff64b8f5242a5122d0 (diff)
downloadframeworks_base-30674e91a2b9c6c24e141b31240e3867d97eb0d0.zip
frameworks_base-30674e91a2b9c6c24e141b31240e3867d97eb0d0.tar.gz
frameworks_base-30674e91a2b9c6c24e141b31240e3867d97eb0d0.tar.bz2
Merge "Add getFlags and getSessionToken to MediaController" into lmp-dev
-rw-r--r--api/current.txt2
-rw-r--r--media/java/android/media/session/MediaController.java16
-rw-r--r--media/java/android/media/session/MediaSession.java13
3 files changed, 27 insertions, 4 deletions
diff --git a/api/current.txt b/api/current.txt
index b1b1708..5b9ea82 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -16584,10 +16584,12 @@ package android.media.session {
method public void adjustVolume(int, int);
method public android.media.routing.MediaRouter.Delegate createMediaRouterDelegate();
method public boolean dispatchMediaButtonEvent(android.view.KeyEvent);
+ method public long getFlags();
method public android.media.MediaMetadata getMetadata();
method public android.media.session.PlaybackState getPlaybackState();
method public java.util.List<android.media.session.MediaSession.Track> getQueue();
method public int getRatingType();
+ method public android.media.session.MediaSession.Token getSessionToken();
method public android.media.session.MediaController.TransportControls getTransportControls();
method public android.media.session.MediaController.VolumeInfo getVolumeInfo();
method public void removeCallback(android.media.session.MediaController.Callback);
diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java
index 050db21..89c61c8 100644
--- a/media/java/android/media/session/MediaController.java
+++ b/media/java/android/media/session/MediaController.java
@@ -64,6 +64,7 @@ public final class MediaController {
private final ISessionController mSessionBinder;
+ private final MediaSession.Token mToken;
private final CallbackStub mCbStub = new CallbackStub(this);
private final ArrayList<MessageHandler> mCallbacks = new ArrayList<MessageHandler>();
private final Object mLock = new Object();
@@ -85,6 +86,7 @@ public final class MediaController {
}
mSessionBinder = sessionBinder;
mTransportControls = new TransportControls();
+ mToken = new MediaSession.Token(sessionBinder);
}
/**
@@ -208,12 +210,11 @@ public final class MediaController {
}
/**
- * Get the flags for this session.
+ * Get the flags for this session. Flags are defined in {@link MediaSession}.
*
* @return The current set of flags for the session.
- * @hide
*/
- public long getFlags() {
+ public @MediaSession.SessionFlags long getFlags() {
try {
return mSessionBinder.getFlags();
} catch (RemoteException e) {
@@ -240,6 +241,15 @@ public final class MediaController {
}
/**
+ * Get the token for the session this is connected to.
+ *
+ * @return The token for the connected session.
+ */
+ public @NonNull MediaSession.Token getSessionToken() {
+ return mToken;
+ }
+
+ /**
* Set the volume of the output this session is playing on. The command will
* be ignored if it does not support
* {@link VolumeProvider#VOLUME_CONTROL_ABSOLUTE}. The flags in
diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java
index be2d479..866910d 100644
--- a/media/java/android/media/session/MediaSession.java
+++ b/media/java/android/media/session/MediaSession.java
@@ -16,6 +16,7 @@
package android.media.session;
+import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.PendingIntent;
@@ -42,6 +43,8 @@ import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
@@ -95,6 +98,14 @@ public final class MediaSession {
*/
public static final int FLAG_EXCLUSIVE_GLOBAL_PRIORITY = 1 << 16;
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(flag = true, value = {
+ FLAG_HANDLES_MEDIA_BUTTONS,
+ FLAG_HANDLES_TRANSPORT_CONTROLS,
+ FLAG_EXCLUSIVE_GLOBAL_PRIORITY })
+ public @interface SessionFlags { }
+
/**
* The session uses local playback.
*/
@@ -256,7 +267,7 @@ public final class MediaSession {
*
* @param flags The flags to set for this session.
*/
- public void setFlags(int flags) {
+ public void setFlags(@SessionFlags int flags) {
try {
mBinder.setFlags(flags);
} catch (RemoteException e) {