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;
}