Fix CTS CallComposerTest failure when HSUM is on

The CLs fixes the CTS failures in PhoneInterfaceManager.uploadCallComposerPicture
- It calls PackageManger.getPackageUid without applying to current user.
  The result will mismatch the UID from Binder.getCallingUid. It is
  fixed by calling private utility method enforceCallingPackage which
  has correctly applied to the right user.
- It calls RoleManager.getRoleHolders which applies to SYSTEM_USER. The
  fix is to call getRoleHoldersAsUser and applies to current user
  instead.

Bug: 352173972
Test: atest CallComposerTest with HSUM both on and off
Flag: com.android.internal.telephony.flags.support_phone_uid_check_for_multiuser
Change-Id: I72d7812a657f6ec567b4cb9481ef0fbe117b17c4
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 308ef40..d95f33c 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -8140,20 +8140,31 @@
     @Override
     public void uploadCallComposerPicture(int subscriptionId, String callingPackage,
             String contentType, ParcelFileDescriptor fd, ResultReceiver callback) {
-        try {
-            if (!Objects.equals(mApp.getPackageManager().getPackageUid(callingPackage, 0),
-                    Binder.getCallingUid())) {
+        if (com.android.internal.telephony.flags.Flags.supportPhoneUidCheckForMultiuser()) {
+            enforceCallingPackage(callingPackage, Binder.getCallingUid(),
+                    "Invalid package:" + callingPackage);
+        } else {
+            try {
+                if (!Objects.equals(mApp.getPackageManager().getPackageUid(callingPackage, 0),
+                        Binder.getCallingUid())) {
+                    throw new SecurityException("Invalid package:" + callingPackage);
+                }
+            } catch (PackageManager.NameNotFoundException e) {
                 throw new SecurityException("Invalid package:" + callingPackage);
             }
-        } catch (PackageManager.NameNotFoundException e) {
-            throw new SecurityException("Invalid package:" + callingPackage);
         }
 
         enforceTelephonyFeatureWithException(callingPackage,
                 PackageManager.FEATURE_TELEPHONY_CALLING, "uploadCallComposerPicture");
 
         RoleManager rm = mApp.getSystemService(RoleManager.class);
-        List<String> dialerRoleHolders = rm.getRoleHolders(RoleManager.ROLE_DIALER);
+        List<String> dialerRoleHolders;
+        if (com.android.internal.telephony.flags.Flags.supportPhoneUidCheckForMultiuser()) {
+            dialerRoleHolders = rm.getRoleHoldersAsUser(RoleManager.ROLE_DIALER,
+                    UserHandle.of(ActivityManager.getCurrentUser()));
+        } else {
+            dialerRoleHolders = rm.getRoleHolders(RoleManager.ROLE_DIALER);
+        }
         if (!dialerRoleHolders.contains(callingPackage)) {
             throw new SecurityException("App must be the dialer role holder to"
                     + " upload a call composer pic");