diff options
author | Jeff Brown <jeffbrown@google.com> | 2014-06-24 20:46:03 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2014-06-30 16:05:25 -0700 |
commit | dba34ba35cd2042d9a8fecfda56e2abe7a680bad (patch) | |
tree | c8dead04fe9fbdba409cfdbf11fcdbcbb9174f99 | |
parent | 854157308e5426437277c9d31be64a2dedd57c7f (diff) | |
download | frameworks_base-dba34ba35cd2042d9a8fecfda56e2abe7a680bad.zip frameworks_base-dba34ba35cd2042d9a8fecfda56e2abe7a680bad.tar.gz frameworks_base-dba34ba35cd2042d9a8fecfda56e2abe7a680bad.tar.bz2 |
Make MediaSessionToken an inner class of MediaSession.
Also add some missing AIDLs to the framework makefile to ensure
they are included in the SDK.
Change-Id: If85a3091c7591e0b3bbe6cc4bb74aba2284b4f42
-rw-r--r-- | Android.mk | 4 | ||||
-rw-r--r-- | api/current.txt | 18 | ||||
-rw-r--r-- | core/java/android/app/Notification.java | 16 | ||||
-rw-r--r-- | media/java/android/media/session/IActiveSessionsListener.aidl | 6 | ||||
-rw-r--r-- | media/java/android/media/session/MediaController.java | 4 | ||||
-rw-r--r-- | media/java/android/media/session/MediaSession.aidl (renamed from media/java/android/media/session/MediaSessionToken.aidl) | 2 | ||||
-rw-r--r-- | media/java/android/media/session/MediaSession.java | 51 | ||||
-rw-r--r-- | media/java/android/media/session/MediaSessionManager.java | 2 | ||||
-rw-r--r-- | media/java/android/media/session/MediaSessionToken.java | 71 | ||||
-rw-r--r-- | services/core/java/com/android/server/media/MediaSessionService.java | 7 | ||||
-rw-r--r-- | tests/OneMedia/src/com/android/onemedia/IPlayerCallback.aidl | 6 | ||||
-rw-r--r-- | tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl | 6 | ||||
-rw-r--r-- | tests/OneMedia/src/com/android/onemedia/PlayerService.java | 4 | ||||
-rw-r--r-- | tests/OneMedia/src/com/android/onemedia/PlayerSession.java | 3 |
14 files changed, 88 insertions, 112 deletions
@@ -509,6 +509,10 @@ aidl_files := \ frameworks/base/location/java/android/location/FusedBatchOptions.aidl \ frameworks/base/location/java/com/android/internal/location/ProviderProperties.aidl \ frameworks/base/location/java/com/android/internal/location/ProviderRequest.aidl \ + frameworks/base/media/java/android/media/MediaMetadata.aidl \ + frameworks/base/media/java/android/media/Rating.aidl \ + frameworks/base/media/java/android/media/session/MediaSession.aidl \ + frameworks/base/media/java/android/media/session/PlaybackState.aidl \ frameworks/base/telephony/java/android/telephony/ServiceState.aidl \ frameworks/base/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \ frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl \ diff --git a/api/current.txt b/api/current.txt index c962c0a..29dcc72 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4699,7 +4699,7 @@ package android.app { ctor public Notification.MediaStyle(); ctor public Notification.MediaStyle(android.app.Notification.Builder); method public android.app.Notification buildStyled(android.app.Notification); - method public android.app.Notification.MediaStyle setMediaSession(android.media.session.MediaSessionToken); + method public android.app.Notification.MediaStyle setMediaSession(android.media.session.MediaSession.Token); method public android.app.Notification.MediaStyle setShowActionsInCompactView(int...); } @@ -15774,7 +15774,7 @@ package android.media.session { method public void addCallback(android.media.session.MediaController.Callback, android.os.Handler); method public void adjustVolumeBy(int, int); method public boolean dispatchMediaButtonEvent(android.view.KeyEvent); - method public static android.media.session.MediaController fromToken(android.media.session.MediaSessionToken); + method public static android.media.session.MediaController fromToken(android.media.session.MediaSession.Token); method public android.media.MediaMetadata getMetadata(); method public android.media.session.PlaybackState getPlaybackState(); method public int getRatingType(); @@ -15818,7 +15818,7 @@ package android.media.session { method public void addCallback(android.media.session.MediaSession.Callback, android.os.Handler); method public void addTransportControlsCallback(android.media.session.MediaSession.TransportControlsCallback); method public void addTransportControlsCallback(android.media.session.MediaSession.TransportControlsCallback, android.os.Handler); - method public android.media.session.MediaSessionToken getSessionToken(); + method public android.media.session.MediaSession.Token getSessionToken(); method public boolean isActive(); method public void release(); method public void removeCallback(android.media.session.MediaSession.Callback); @@ -15843,6 +15843,12 @@ package android.media.session { method public void onMediaButtonEvent(android.content.Intent); } + public static final class MediaSession.Token implements android.os.Parcelable { + method public int describeContents(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.os.Parcelable.Creator CREATOR; + } + public static abstract class MediaSession.TransportControlsCallback { ctor public MediaSession.TransportControlsCallback(); method public void onFastForward(); @@ -15867,12 +15873,6 @@ package android.media.session { method public abstract void onActiveSessionsChanged(java.util.List<android.media.session.MediaController>); } - public final class MediaSessionToken implements android.os.Parcelable { - method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field public static final android.os.Parcelable.Creator CREATOR; - } - public final class PlaybackState implements android.os.Parcelable { ctor public PlaybackState(); ctor public PlaybackState(android.media.session.PlaybackState); diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 84f7e5f..c5eb356 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -27,7 +27,7 @@ import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.media.AudioManager; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; import android.net.Uri; import android.os.BadParcelableException; import android.os.Bundle; @@ -777,7 +777,7 @@ public class Notification implements Parcelable /** * {@link #extras} key: A - * {@link android.media.session.MediaSessionToken} associated with a + * {@link android.media.session.MediaSession.Token} associated with a * {@link android.app.Notification.MediaStyle} notification. */ public static final String EXTRA_MEDIA_SESSION = "android.mediaSession"; @@ -3230,8 +3230,8 @@ public class Notification implements Parcelable * {@link #setShowActionsInCompactView(int...)} you can promote up to 2 actions to be displayed * in the standard view alongside the usual content. * - * Finally, if you attach a {@link android.media.session.MediaSessionToken} using - * {@link android.app.Notification.MediaStyle#setMediaSession(MediaSessionToken)}, + * Finally, if you attach a {@link android.media.session.MediaSession.Token} using + * {@link android.app.Notification.MediaStyle#setMediaSession(MediaSession.Token)}, * the System UI can identify this as a notification representing an active media session * and respond accordingly (by showing album artwork in the lockscreen, for example). * @@ -3255,7 +3255,7 @@ public class Notification implements Parcelable static final int MAX_MEDIA_BUTTONS = 5; private int[] mActionsToShowInCompact = null; - private MediaSessionToken mToken; + private MediaSession.Token mToken; public MediaStyle() { } @@ -3274,10 +3274,10 @@ public class Notification implements Parcelable } /** - * Attach a {@link android.media.session.MediaSessionToken} to this Notification to provide - * additional playback information and control to the SystemUI. + * Attach a {@link android.media.session.MediaSession.Token} to this Notification + * to provide additional playback information and control to the SystemUI. */ - public MediaStyle setMediaSession(MediaSessionToken token) { + public MediaStyle setMediaSession(MediaSession.Token token) { mToken = token; return this; } diff --git a/media/java/android/media/session/IActiveSessionsListener.aidl b/media/java/android/media/session/IActiveSessionsListener.aidl index e5e24bc..4b9e4bd 100644 --- a/media/java/android/media/session/IActiveSessionsListener.aidl +++ b/media/java/android/media/session/IActiveSessionsListener.aidl @@ -15,12 +15,12 @@ package android.media.session; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; /** * Listens for changes to the list of active sessions. * @hide */ oneway interface IActiveSessionsListener { - void onActiveSessionsChanged(in List<MediaSessionToken> sessions); -}
\ No newline at end of file + void onActiveSessionsChanged(in List<MediaSession.Token> sessions); +} diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index 7653e5a..edb69bc 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -42,7 +42,7 @@ import java.util.ArrayList; * <p> * A MediaController can be created through {@link MediaSessionManager} if you * hold the "android.permission.MEDIA_CONTENT_CONTROL" permission or directly if - * you have a {@link MediaSessionToken} from the session owner. + * you have a {@link MediaSession.Token} from the session owner. * <p> * MediaController objects are thread-safe. */ @@ -86,7 +86,7 @@ public final class MediaController { * @param token The session token to control. * @return A controller for the session or null if inaccessible. */ - public static MediaController fromToken(@NonNull MediaSessionToken token) { + public static MediaController fromToken(@NonNull MediaSession.Token token) { return fromBinder(token.getBinder()); } diff --git a/media/java/android/media/session/MediaSessionToken.aidl b/media/java/android/media/session/MediaSession.aidl index 5812682..4a7efc2 100644 --- a/media/java/android/media/session/MediaSessionToken.aidl +++ b/media/java/android/media/session/MediaSession.aidl @@ -15,4 +15,4 @@ package android.media.session; -parcelable MediaSessionToken; +parcelable MediaSession.Token; diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index 7637ec8..dbe13dd 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -32,6 +32,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.os.Parcel; +import android.os.Parcelable; import android.os.RemoteException; import android.os.ResultReceiver; import android.text.TextUtils; @@ -136,7 +138,7 @@ public final class MediaSession { private final Object mLock = new Object(); - private final MediaSessionToken mSessionToken; + private final MediaSession.Token mSessionToken; private final ISession mBinder; private final CallbackStub mCbStub; @@ -165,7 +167,7 @@ public final class MediaSession { } catch (RemoteException e) { throw new RuntimeException("Dead object in MediaSessionController constructor: ", e); } - mSessionToken = new MediaSessionToken(controllerBinder); + mSessionToken = new Token(controllerBinder); } /** @@ -370,7 +372,7 @@ public final class MediaSession { * @return A token that can be used to create a MediaController for this * session */ - public @NonNull MediaSessionToken getSessionToken() { + public @NonNull Token getSessionToken() { return mSessionToken; } @@ -697,6 +699,49 @@ public final class MediaSession { } /** + * Represents an ongoing session. This may be passed to apps by the session + * owner to allow them to create a {@link MediaController} to communicate with + * the session. + */ + public static final class Token implements Parcelable { + private ISessionController mBinder; + + /** + * @hide + */ + public Token(ISessionController binder) { + mBinder = binder; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeStrongBinder(mBinder.asBinder()); + } + + ISessionController getBinder() { + return mBinder; + } + + public static final Parcelable.Creator<Token> CREATOR + = new Parcelable.Creator<Token>() { + @Override + public Token createFromParcel(Parcel in) { + return new Token(ISessionController.Stub.asInterface(in.readStrongBinder())); + } + + @Override + public Token[] newArray(int size) { + return new Token[size]; + } + }; + } + + /** * Receives generic commands or updates from controllers and the system. * Callbacks may be registered using {@link #addCallback}. */ diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java index 9291bb0..c73a8d3 100644 --- a/media/java/android/media/session/MediaSessionManager.java +++ b/media/java/android/media/session/MediaSessionManager.java @@ -292,7 +292,7 @@ public final class MediaSessionManager { private final IActiveSessionsListener.Stub mStub = new IActiveSessionsListener.Stub() { @Override - public void onActiveSessionsChanged(List<MediaSessionToken> tokens) + public void onActiveSessionsChanged(List<MediaSession.Token> tokens) throws RemoteException { ArrayList<MediaController> controllers = new ArrayList<MediaController>(); int size = tokens.size(); diff --git a/media/java/android/media/session/MediaSessionToken.java b/media/java/android/media/session/MediaSessionToken.java deleted file mode 100644 index e599189..0000000 --- a/media/java/android/media/session/MediaSessionToken.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.media.session; - -import android.media.session.ISessionController; -import android.os.Parcel; -import android.os.Parcelable; - -/** - * Represents an ongoing session. This may be passed to apps by the session - * owner to allow them to create a {@link MediaController} to communicate with - * the session. - */ -public final class MediaSessionToken implements Parcelable { - private ISessionController mBinder; - - /** - * @hide - */ - public MediaSessionToken(ISessionController binder) { - mBinder = binder; - } - - private MediaSessionToken(Parcel in) { - mBinder = ISessionController.Stub.asInterface(in.readStrongBinder()); - } - - /** - * @hide - */ - ISessionController getBinder() { - return mBinder; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeStrongBinder(mBinder.asBinder()); - } - - public static final Parcelable.Creator<MediaSessionToken> CREATOR - = new Parcelable.Creator<MediaSessionToken>() { - @Override - public MediaSessionToken createFromParcel(Parcel in) { - return new MediaSessionToken(in); - } - - @Override - public MediaSessionToken[] newArray(int size) { - return new MediaSessionToken[size]; - } - }; -} diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index fe68a86..5738a05 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -34,10 +34,9 @@ import android.media.session.IActiveSessionsListener; import android.media.session.ISession; import android.media.session.ISessionCallback; import android.media.session.ISessionManager; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; import android.media.session.RouteInfo; import android.media.session.RouteOptions; -import android.media.session.MediaSession; import android.os.Binder; import android.os.Bundle; import android.os.Handler; @@ -511,9 +510,9 @@ public class MediaSessionService extends SystemService implements Monitor { if (size > 0) { persistMediaButtonReceiverLocked(records.get(0)); } - ArrayList<MediaSessionToken> tokens = new ArrayList<MediaSessionToken>(); + ArrayList<MediaSession.Token> tokens = new ArrayList<MediaSession.Token>(); for (int i = 0; i < size; i++) { - tokens.add(new MediaSessionToken(records.get(i).getControllerBinder())); + tokens.add(new MediaSession.Token(records.get(i).getControllerBinder())); } pushRemoteVolumeUpdateLocked(userId); for (int i = mSessionsListeners.size() - 1; i >= 0; i--) { diff --git a/tests/OneMedia/src/com/android/onemedia/IPlayerCallback.aidl b/tests/OneMedia/src/com/android/onemedia/IPlayerCallback.aidl index 2b14384..d04f56f 100644 --- a/tests/OneMedia/src/com/android/onemedia/IPlayerCallback.aidl +++ b/tests/OneMedia/src/com/android/onemedia/IPlayerCallback.aidl @@ -15,8 +15,8 @@ package com.android.onemedia; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; interface IPlayerCallback { - void onSessionChanged(in MediaSessionToken session); -}
\ No newline at end of file + void onSessionChanged(in MediaSession.Token session); +} diff --git a/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl b/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl index efdbe9a..d4df4c5 100644 --- a/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl +++ b/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl @@ -15,15 +15,15 @@ package com.android.onemedia; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; import android.os.Bundle; import com.android.onemedia.IPlayerCallback; import com.android.onemedia.playback.IRequestCallback; interface IPlayerService { - MediaSessionToken getSessionToken(); + MediaSession.Token getSessionToken(); void registerCallback(in IPlayerCallback cb); void unregisterCallback(in IPlayerCallback cb); void sendRequest(String action, in Bundle params, in IRequestCallback cb); -}
\ No newline at end of file +} diff --git a/tests/OneMedia/src/com/android/onemedia/PlayerService.java b/tests/OneMedia/src/com/android/onemedia/PlayerService.java index 934f4ef..58ee4a1 100644 --- a/tests/OneMedia/src/com/android/onemedia/PlayerService.java +++ b/tests/OneMedia/src/com/android/onemedia/PlayerService.java @@ -17,7 +17,7 @@ package com.android.onemedia; import android.app.Service; import android.content.Intent; -import android.media.session.MediaSessionToken; +import android.media.session.MediaSession; import android.media.session.PlaybackState; import android.os.Bundle; import android.os.IBinder; @@ -149,7 +149,7 @@ public class PlayerService extends Service { } @Override - public MediaSessionToken getSessionToken() throws RemoteException { + public MediaSession.Token getSessionToken() throws RemoteException { return mSession.getSessionToken(); } } diff --git a/tests/OneMedia/src/com/android/onemedia/PlayerSession.java b/tests/OneMedia/src/com/android/onemedia/PlayerSession.java index d6f8118..a220107 100644 --- a/tests/OneMedia/src/com/android/onemedia/PlayerSession.java +++ b/tests/OneMedia/src/com/android/onemedia/PlayerSession.java @@ -23,7 +23,6 @@ import android.media.session.RouteOptions; import android.media.session.RoutePlaybackControls; import android.media.session.MediaSession; import android.media.session.MediaSessionManager; -import android.media.session.MediaSessionToken; import android.media.session.PlaybackState; import android.os.Bundle; import android.util.Log; @@ -103,7 +102,7 @@ public class PlayerSession { mListener = listener; } - public MediaSessionToken getSessionToken() { + public MediaSession.Token getSessionToken() { return mSession.getSessionToken(); } |