Merge "Remove Constructor of RemoteUserInfo which takes IBinder"
diff --git a/api/current.txt b/api/current.txt
index 4e68ef8..442be315 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -27460,7 +27460,6 @@
 
   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 c4634a9..f159a95 100644
--- a/media/java/android/media/session/MediaSessionEngine.java
+++ b/media/java/android/media/session/MediaSessionEngine.java
@@ -989,10 +989,8 @@
     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 @@
                 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 @@
             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 @@
                 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 @@
                 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 @@
             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 @@
             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 @@
             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 @@
                 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 @@
             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 @@
             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 @@
             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 @@
             MediaSessionEngine sessionImpl = mSessionImpl.get();
             if (sessionImpl != null) {
                 sessionImpl.dispatchSkipToItem(
-                        createRemoteUserInfo(packageName, pid, uid, caller), id);
+                        createRemoteUserInfo(packageName, pid, uid), id);
             }
         }
 
@@ -1131,7 +1129,7 @@
                 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 @@
                 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 @@
                 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 @@
                 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 @@
             MediaSessionEngine sessionImpl = mSessionImpl.get();
             if (sessionImpl != null) {
                 sessionImpl.dispatchFastForward(
-                        createRemoteUserInfo(packageName, pid, uid, caller));
+                        createRemoteUserInfo(packageName, pid, uid));
             }
         }
 
@@ -1177,7 +1175,7 @@
                 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 @@
             MediaSessionEngine sessionImpl = mSessionImpl.get();
             if (sessionImpl != null) {
                 sessionImpl.dispatchSeekTo(
-                        createRemoteUserInfo(packageName, pid, uid, caller), pos);
+                        createRemoteUserInfo(packageName, pid, uid), pos);
             }
         }
 
@@ -1197,7 +1195,7 @@
             MediaSessionEngine sessionImpl = mSessionImpl.get();
             if (sessionImpl != null) {
                 sessionImpl.dispatchRate(
-                        createRemoteUserInfo(packageName, pid, uid, caller), rating);
+                        createRemoteUserInfo(packageName, pid, uid), rating);
             }
         }
 
@@ -1207,7 +1205,7 @@
             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 @@
             MediaSessionEngine sessionImpl = mSessionImpl.get();
             if (sessionImpl != null) {
                 sessionImpl.dispatchAdjustVolume(
-                        createRemoteUserInfo(packageName, pid, uid, caller), direction);
+                        createRemoteUserInfo(packageName, pid, uid), direction);
             }
         }
 
@@ -1227,7 +1225,7 @@
             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 3f4fbb9..c64c452 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -28,7 +28,6 @@
 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.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 @@
         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 @@
          * @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 @@
         }
 
         /**
-         * 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 @@
                 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 d19d117..2fbc699 100644
--- a/media/java/android/service/media/MediaBrowserService.java
+++ b/media/java/android/service/media/MediaBrowserService.java
@@ -541,8 +541,7 @@
             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);
     }
 
     /**