From eb9bf73b21eb795cee625f37355c92fb33530bd0 Mon Sep 17 00:00:00 2001 From: Hyundo Moon Date: Wed, 23 Jan 2019 13:32:36 +0900 Subject: [PATCH] Remove Constructor of RemoteUserInfo which takes IBinder This CL reverts the API change in previously merged CL "b505f0a: AML: Unhide 4-params constructor of RemoteUserInfo". Bug: 119752205, Bug: 122550211 Test: make update-api -j; make -j; atest CtsMediaTestCases:android.media.cts.MediaSessionTest; atest CtsMediaTestCases:android.media.cts.MediaControllerTest; atest CtsMediaTestCases:android.media.cts.MediaBrowserTest; atest CtsMediaTestCases:android.media.cts.MediaBrowserServiceTest; atest CtsMediaTestCases:android.media.cts.MediaBrowserServiceTest; Change-Id: I5d6835af4d931c001287126c394db48d65bb09f8 --- api/current.txt | 1 - .../media/session/MediaSessionEngine.java | 52 +++++++++---------- .../media/session/MediaSessionManager.java | 30 +++-------- .../service/media/MediaBrowserService.java | 3 +- 4 files changed, 32 insertions(+), 54 deletions(-) diff --git a/api/current.txt b/api/current.txt index efd805cf21e9f..035d1ad40d321 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 c4634a9153692..f159a9538835d 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 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 3f4fbb9af9a70..c64c452be3ef5 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. - *

- * 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 d19d1177cae76..2fbc6998576af 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); } /**