diff options
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | media/java/android/media/session/MediaSessionEngine.java | 52 | ||||
| -rw-r--r-- | media/java/android/media/session/MediaSessionManager.java | 30 | ||||
| -rw-r--r-- | media/java/android/service/media/MediaBrowserService.java | 3 |
4 files changed, 32 insertions, 54 deletions
diff --git a/api/current.txt b/api/current.txt index efd805cf21e9..035d1ad40d32 100644 --- a/api/current.txt +++ b/api/current.txt @@ -27460,7 +27460,6 @@ package android.media.session { public static final class MediaSessionManager.RemoteUserInfo { ctor public MediaSessionManager.RemoteUserInfo(@NonNull String, int, int); - ctor public MediaSessionManager.RemoteUserInfo(String, int, int, android.os.IBinder); method public String getPackageName(); method public int getPid(); method public int getUid(); diff --git a/media/java/android/media/session/MediaSessionEngine.java b/media/java/android/media/session/MediaSessionEngine.java index c4634a915369..f159a9538835 100644 --- a/media/java/android/media/session/MediaSessionEngine.java +++ b/media/java/android/media/session/MediaSessionEngine.java @@ -989,10 +989,8 @@ public final class MediaSessionEngine implements AutoCloseable { public static final class CallbackStub extends SessionCallbackLink.CallbackStub { private WeakReference<MediaSessionEngine> mSessionImpl; - private static RemoteUserInfo createRemoteUserInfo(String packageName, int pid, int uid, - ControllerCallbackLink caller) { - return new RemoteUserInfo(packageName, pid, uid, - caller != null ? caller.getBinder() : null); + private static RemoteUserInfo createRemoteUserInfo(String packageName, int pid, int uid) { + return new RemoteUserInfo(packageName, pid, uid); } public CallbackStub() { @@ -1003,7 +1001,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller, String command, Bundle args, ResultReceiver cb) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchCommand(createRemoteUserInfo(packageName, pid, uid, caller), + sessionImpl.dispatchCommand(createRemoteUserInfo(packageName, pid, uid), command, args, cb); } } @@ -1015,7 +1013,7 @@ public final class MediaSessionEngine implements AutoCloseable { try { if (sessionImpl != null) { sessionImpl.dispatchMediaButton( - createRemoteUserInfo(packageName, pid, uid, null), mediaButtonIntent); + createRemoteUserInfo(packageName, pid, uid), mediaButtonIntent); } } finally { if (cb != null) { @@ -1029,7 +1027,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller, Intent mediaButtonIntent) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchMediaButton(createRemoteUserInfo(packageName, pid, uid, caller), + sessionImpl.dispatchMediaButton(createRemoteUserInfo(packageName, pid, uid), mediaButtonIntent); } } @@ -1039,7 +1037,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchPrepare(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchPrepare(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1050,7 +1048,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPrepareFromMediaId( - createRemoteUserInfo(packageName, pid, uid, caller), mediaId, extras); + createRemoteUserInfo(packageName, pid, uid), mediaId, extras); } } @@ -1061,7 +1059,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPrepareFromSearch( - createRemoteUserInfo(packageName, pid, uid, caller), query, extras); + createRemoteUserInfo(packageName, pid, uid), query, extras); } } @@ -1071,7 +1069,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPrepareFromUri( - createRemoteUserInfo(packageName, pid, uid, caller), uri, extras); + createRemoteUserInfo(packageName, pid, uid), uri, extras); } } @@ -1080,7 +1078,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchPlay(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchPlay(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1091,7 +1089,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPlayFromMediaId( - createRemoteUserInfo(packageName, pid, uid, caller), mediaId, extras); + createRemoteUserInfo(packageName, pid, uid), mediaId, extras); } } @@ -1102,7 +1100,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPlayFromSearch( - createRemoteUserInfo(packageName, pid, uid, caller), query, extras); + createRemoteUserInfo(packageName, pid, uid), query, extras); } } @@ -1112,7 +1110,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchPlayFromUri( - createRemoteUserInfo(packageName, pid, uid, caller), uri, extras); + createRemoteUserInfo(packageName, pid, uid), uri, extras); } } @@ -1122,7 +1120,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchSkipToItem( - createRemoteUserInfo(packageName, pid, uid, caller), id); + createRemoteUserInfo(packageName, pid, uid), id); } } @@ -1131,7 +1129,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchPause(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchPause(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1140,7 +1138,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchStop(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchStop(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1149,7 +1147,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchNext(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchNext(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1158,7 +1156,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchPrevious(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchPrevious(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1168,7 +1166,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchFastForward( - createRemoteUserInfo(packageName, pid, uid, caller)); + createRemoteUserInfo(packageName, pid, uid)); } } @@ -1177,7 +1175,7 @@ public final class MediaSessionEngine implements AutoCloseable { ControllerCallbackLink caller) { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { - sessionImpl.dispatchRewind(createRemoteUserInfo(packageName, pid, uid, caller)); + sessionImpl.dispatchRewind(createRemoteUserInfo(packageName, pid, uid)); } } @@ -1187,7 +1185,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchSeekTo( - createRemoteUserInfo(packageName, pid, uid, caller), pos); + createRemoteUserInfo(packageName, pid, uid), pos); } } @@ -1197,7 +1195,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchRate( - createRemoteUserInfo(packageName, pid, uid, caller), rating); + createRemoteUserInfo(packageName, pid, uid), rating); } } @@ -1207,7 +1205,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchCustomAction( - createRemoteUserInfo(packageName, pid, uid, caller), action, args); + createRemoteUserInfo(packageName, pid, uid), action, args); } } @@ -1217,7 +1215,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchAdjustVolume( - createRemoteUserInfo(packageName, pid, uid, caller), direction); + createRemoteUserInfo(packageName, pid, uid), direction); } } @@ -1227,7 +1225,7 @@ public final class MediaSessionEngine implements AutoCloseable { MediaSessionEngine sessionImpl = mSessionImpl.get(); if (sessionImpl != null) { sessionImpl.dispatchSetVolumeTo( - createRemoteUserInfo(packageName, pid, uid, caller), value); + createRemoteUserInfo(packageName, pid, uid), value); } } diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java index 3f4fbb9af9a7..c64c452be3ef 100644 --- a/media/java/android/media/session/MediaSessionManager.java +++ b/media/java/android/media/session/MediaSessionManager.java @@ -28,7 +28,6 @@ import android.media.AudioManager; import android.media.IRemoteVolumeController; import android.media.MediaSession2; import android.media.Session2Token; -import android.media.browse.MediaBrowser; import android.os.Handler; import android.os.IBinder; import android.os.RemoteException; @@ -37,6 +36,7 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.service.media.MediaBrowserService; import android.service.notification.NotificationListenerService; +import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import android.view.KeyEvent; @@ -797,7 +797,6 @@ public final class MediaSessionManager { private final String mPackageName; private final int mPid; private final int mUid; - private final IBinder mCallerBinder; /** * Create a new remote user information. @@ -807,22 +806,9 @@ public final class MediaSessionManager { * @param uid The uid of the remote user */ public RemoteUserInfo(@NonNull String packageName, int pid, int uid) { - this(packageName, pid, uid, null); - } - - /** - * Create a new remote user information. - * - * @param packageName The package name of the remote user - * @param pid The pid of the remote user - * @param uid The uid of the remote user - * @param callerBinder The binder of the remote user. Can be {@code null}. - */ - public RemoteUserInfo(String packageName, int pid, int uid, IBinder callerBinder) { mPackageName = packageName; mPid = pid; mUid = uid; - mCallerBinder = callerBinder; } /** @@ -847,13 +833,8 @@ public final class MediaSessionManager { } /** - * Returns equality of two RemoteUserInfo. Two RemoteUserInfos are the same only if they're - * sent to the same controller (either {@link MediaController} or - * {@link MediaBrowser}. If it's not nor one of them is triggered by the key presses, they - * would be considered as different one. - * <p> - * If you only want to compare the caller's package, compare them with the - * {@link #getPackageName()}, {@link #getPid()}, and/or {@link #getUid()} directly. + * Returns equality of two RemoteUserInfo. Two RemoteUserInfo objects are equal + * if and only if they have the same package name, same pid, and same uid. * * @param obj the reference object with which to compare. * @return {@code true} if equals, {@code false} otherwise @@ -867,8 +848,9 @@ public final class MediaSessionManager { return true; } RemoteUserInfo otherUserInfo = (RemoteUserInfo) obj; - return (mCallerBinder == null || otherUserInfo.mCallerBinder == null) ? false - : mCallerBinder.equals(otherUserInfo.mCallerBinder); + return TextUtils.equals(mPackageName, otherUserInfo.mPackageName) + && mPid == otherUserInfo.mPid + && mUid == otherUserInfo.mUid; } @Override diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java index d19d1177cae7..2fbc6998576a 100644 --- a/media/java/android/service/media/MediaBrowserService.java +++ b/media/java/android/service/media/MediaBrowserService.java @@ -541,8 +541,7 @@ public abstract class MediaBrowserService extends Service { throw new IllegalStateException("This should be called inside of onGetRoot or" + " onLoadChildren or onLoadItem methods"); } - return new RemoteUserInfo(mCurConnection.pkg, mCurConnection.pid, mCurConnection.uid, - mCurConnection.callbacks.asBinder()); + return new RemoteUserInfo(mCurConnection.pkg, mCurConnection.pid, mCurConnection.uid); } /** |