aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2022-02-07 23:01:48 -0800
committerXin Li <delphij@google.com>2022-02-07 23:19:32 -0800
commiteb00140a5904aa0ee75c095f330307b1ba66e2b3 (patch)
treeeda15d19b495cea7f0ac69b7eb59ccb4ad2babe4
parent2a2dba1bcff8f599318ad587383e6e1139a1ae57 (diff)
parent353e76edfa2ef8e492bbff51dec60f5a3f19d2c4 (diff)
downloadManagedProvisioning-android-s-qpr3-beta-1.tar.gz
Bug: 213904741 Merged-In: I716b4aded965af7730860804646317eae7321d7b Change-Id: Icb300305fbacaf04ef421c4073a43e7a00bbeb56
-rw-r--r--src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
index b3218fde5..18993ab8e 100644
--- a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
+++ b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
@@ -48,6 +48,7 @@ public class UpdateInteractAcrossProfilesAppOpTask extends AbstractProvisioningT
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 @@ public class UpdateInteractAcrossProfilesAppOpTask extends AbstractProvisioningT
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
mAppOpsManager = context.getSystemService(AppOpsManager.class);
mPackageManager = context.getPackageManager();
+ mUserManager = context.getSystemService(UserManager.class);
}
@Override
@@ -133,10 +135,20 @@ public class UpdateInteractAcrossProfilesAppOpTask extends AbstractProvisioningT
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;
}