diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-07-17 03:03:39 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-07-17 03:03:39 +0000 |
commit | c29631e2c9b4cf6a4ec549b2892bef82b062e145 (patch) | |
tree | 7aa558d857177a70eafcdf30c9da314d306c971a | |
parent | 1d85239db625bd9d5c28beef8f6f95246af764df (diff) | |
parent | 7bb22d54dd254e13506d116fecaecfa878126678 (diff) | |
download | android_packages_apps_PackageInstaller-c29631e2c9b4cf6a4ec549b2892bef82b062e145.tar.gz android_packages_apps_PackageInstaller-c29631e2c9b4cf6a4ec549b2892bef82b062e145.tar.bz2 android_packages_apps_PackageInstaller-c29631e2c9b4cf6a4ec549b2892bef82b062e145.zip |
Snap for 5733681 from 7bb22d54dd254e13506d116fecaecfa878126678 to qt-qpr1-release
Change-Id: I062042d4547d39b2601d8cc55f4b93bf1883f495
-rw-r--r-- | src/com/android/packageinstaller/role/model/AssistantRoleBehavior.java | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/src/com/android/packageinstaller/role/model/AssistantRoleBehavior.java b/src/com/android/packageinstaller/role/model/AssistantRoleBehavior.java index a950d93a..f79522ea 100644 --- a/src/com/android/packageinstaller/role/model/AssistantRoleBehavior.java +++ b/src/com/android/packageinstaller/role/model/AssistantRoleBehavior.java @@ -61,8 +61,7 @@ public class AssistantRoleBehavior implements RoleBehavior { @Override public boolean isAvailableAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { - return !UserUtils.isWorkProfile(user, context) - && !context.getSystemService(ActivityManager.class).isLowRamDevice(); + return !UserUtils.isWorkProfile(user, context); } @Nullable @@ -97,19 +96,22 @@ public class AssistantRoleBehavior implements RoleBehavior { public List<String> getQualifyingPackagesAsUser(@NonNull Role role, @NonNull UserHandle user, @NonNull Context context) { Context userContext = UserUtils.getUserContext(context, user); + ActivityManager userActivityManager = userContext.getSystemService(ActivityManager.class); PackageManager userPackageManager = userContext.getPackageManager(); Set<String> availableAssistants = new ArraySet<>(); - List<ResolveInfo> services = userPackageManager.queryIntentServices(ASSIST_SERVICE_PROBE, - PackageManager.GET_META_DATA | PackageManager.MATCH_DIRECT_BOOT_AWARE - | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); - - int numServices = services.size(); - for (int i = 0; i < numServices; i++) { - ResolveInfo service = services.get(i); - - if (isAssistantVoiceInteractionService(userPackageManager, service.serviceInfo)) { - availableAssistants.add(service.serviceInfo.packageName); + if (!userActivityManager.isLowRamDevice()) { + List<ResolveInfo> services = userPackageManager.queryIntentServices( + ASSIST_SERVICE_PROBE, PackageManager.GET_META_DATA + | PackageManager.MATCH_DIRECT_BOOT_AWARE + | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); + int numServices = services.size(); + for (int i = 0; i < numServices; i++) { + ResolveInfo service = services.get(i); + + if (isAssistantVoiceInteractionService(userPackageManager, service.serviceInfo)) { + availableAssistants.add(service.serviceInfo.packageName); + } } } @@ -117,7 +119,6 @@ public class AssistantRoleBehavior implements RoleBehavior { ASSIST_ACTIVITY_PROBE, PackageManager.MATCH_DEFAULT_ONLY | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); - int numActivities = activities.size(); for (int i = 0; i < numActivities; i++) { availableAssistants.add(activities.get(i).activityInfo.packageName); @@ -130,31 +131,34 @@ public class AssistantRoleBehavior implements RoleBehavior { @Override public Boolean isPackageQualified(@NonNull Role role, @NonNull String packageName, @NonNull Context context) { - PackageManager pm = context.getPackageManager(); - - Intent pkgServiceProbe = new Intent(ASSIST_SERVICE_PROBE).setPackage(packageName); - List<ResolveInfo> services = pm.queryIntentServices(pkgServiceProbe, - PackageManager.GET_META_DATA | PackageManager.MATCH_DIRECT_BOOT_AWARE - | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); - - int numServices = services.size(); - for (int i = 0; i < numServices; i++) { - ResolveInfo service = services.get(i); - - if (isAssistantVoiceInteractionService(pm, service.serviceInfo)) { - return true; + ActivityManager activityManager = context.getSystemService(ActivityManager.class); + PackageManager packageManager = context.getPackageManager(); + + boolean hasAssistantService = false; + if (!activityManager.isLowRamDevice()) { + Intent pkgServiceProbe = new Intent(ASSIST_SERVICE_PROBE).setPackage(packageName); + List<ResolveInfo> services = packageManager.queryIntentServices(pkgServiceProbe, + PackageManager.GET_META_DATA | PackageManager.MATCH_DIRECT_BOOT_AWARE + | PackageManager.MATCH_DIRECT_BOOT_UNAWARE); + hasAssistantService = !services.isEmpty(); + int numServices = services.size(); + for (int i = 0; i < numServices; i++) { + ResolveInfo service = services.get(i); + + if (isAssistantVoiceInteractionService(packageManager, service.serviceInfo)) { + return true; + } } } Intent pkgActivityProbe = new Intent(ASSIST_ACTIVITY_PROBE).setPackage(packageName); - boolean hasAssistantActivity = !pm.queryIntentActivities(pkgActivityProbe, + boolean hasAssistantActivity = !packageManager.queryIntentActivities(pkgActivityProbe, PackageManager.MATCH_DEFAULT_ONLY | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE).isEmpty(); - if (!hasAssistantActivity) { Log.w(LOG_TAG, "Package " + packageName + " not qualified for " + role.getName() - + " due to " + (services.isEmpty() ? "missing service" - : "service without qualifying metadata") + " and missing activity"); + + " due to " + (hasAssistantService ? "unqualified" : "missing") + + " service and missing activity"); } return hasAssistantActivity; |