summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-07-17 03:03:39 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-07-17 03:03:39 +0000
commitc29631e2c9b4cf6a4ec549b2892bef82b062e145 (patch)
tree7aa558d857177a70eafcdf30c9da314d306c971a
parent1d85239db625bd9d5c28beef8f6f95246af764df (diff)
parent7bb22d54dd254e13506d116fecaecfa878126678 (diff)
downloadandroid_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.java64
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;