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
This commit is contained in:
@@ -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 \
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
void onActiveSessionsChanged(in List<MediaSession.Token> sessions);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -15,4 +15,4 @@
|
||||
|
||||
package android.media.session;
|
||||
|
||||
parcelable MediaSessionToken;
|
||||
parcelable MediaSession.Token;
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -696,6 +698,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}.
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -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--) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
void onSessionChanged(in MediaSession.Token session);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user