Merge "Fix ActivityCallerState's user id resolution" into main
diff --git a/services/core/java/com/android/server/wm/ActivityCallerState.java b/services/core/java/com/android/server/wm/ActivityCallerState.java
index fa0b176..a333a4d 100644
--- a/services/core/java/com/android/server/wm/ActivityCallerState.java
+++ b/services/core/java/com/android/server/wm/ActivityCallerState.java
@@ -119,7 +119,7 @@
 
             if (!hasRead && !hasWrite) {
                 callerInfo.mInaccessibleContentUris.add(convertToGrantUri(contentUri,
-                        /* modeFlags */ 0));
+                        /* modeFlags */ 0, callerUid));
             }
         }
     }
@@ -164,7 +164,7 @@
 
     private boolean addContentUriIfUidHasPermission(Uri contentUri, int uid, int modeFlags,
             ArraySet<GrantUri> grantUris) {
-        final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags);
+        final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags, uid);
         if (mAtmService.mUgmInternal.checkUriPermission(grantUri, uid,
                 modeFlags, /* isFullAccessForContentUri */ true)) {
             grantUris.add(grantUri);
@@ -173,9 +173,9 @@
         return false;
     }
 
-    private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags) {
+    private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags, int uid) {
         return new GrantUri(ContentProvider.getUserIdFromUri(contentUri,
-                UserHandle.getCallingUserId()), ContentProvider.getUriWithoutUserId(contentUri),
+                UserHandle.getUserId(uid)), ContentProvider.getUriWithoutUserId(contentUri),
                 modeFlags);
     }