Merge SQ1A.220205.002

Bug: 213904741
Merged-In: I716b4aded965af7730860804646317eae7321d7b
Change-Id: Icb300305fbacaf04ef421c4073a43e7a00bbeb56
diff --git a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
index b3218fd..18993ab 100644
--- a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
+++ b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
@@ -48,6 +48,7 @@
     private final DevicePolicyManager mDevicePolicyManager;
     private final AppOpsManager mAppOpsManager;
     private final PackageManager mPackageManager;
+    private final UserManager mUserManager;
 
     public UpdateInteractAcrossProfilesAppOpTask(Context context,
             ProvisioningParams provisioningParams,
@@ -59,6 +60,7 @@
         mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
         mAppOpsManager = context.getSystemService(AppOpsManager.class);
         mPackageManager = context.getPackageManager();
+        mUserManager = context.getSystemService(UserManager.class);
     }
 
     @Override
@@ -133,10 +135,20 @@
 
     private Set<ApplicationInfo> getAllInstalledApps() {
         final Set<ApplicationInfo> apps = new HashSet<>();
-        List<UserHandle> profiles = mContext.getSystemService(UserManager.class).getAllProfiles();
+        List<UserHandle> profiles = mUserManager.getAllProfiles();
         for (UserHandle profile : profiles) {
-            apps.addAll(mContext.createContextAsUser(profile, /* flags= */ 0).getPackageManager()
-                    .getInstalledApplications(/* flags= */ 0));
+            if (profile.getIdentifier() != mContext.getUserId()
+                    && !mUserManager.isManagedProfile(profile.getIdentifier())) {
+                continue;
+            }
+            try {
+                apps.addAll(
+                        mContext.createPackageContextAsUser(
+                        /* packageName= */ "android", /* flags= */ 0, profile)
+                                .getPackageManager().getInstalledApplications(/* flags= */ 0));
+            } catch (PackageManager.NameNotFoundException ignored) {
+                // Should never happen.
+            }
         }
         return apps;
     }