summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2016-11-02 12:13:27 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-11-02 12:13:30 +0000
commitfc686becb9851aa009512c285d489d5f8cf209ef (patch)
tree678ad4530b5f9761eec95caf619aedd92dd3eea2
parent3694d8789f579f9a67ca79238b755e18b7c12b77 (diff)
parent9f2c93663c2de84f958eebef96a98458ebaf51a9 (diff)
Merge "Cross profile candidate should be considered"
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 59c4fb9e7591..57aa38d1728b 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -5422,15 +5422,23 @@ public class PackageManagerService extends IPackageManager.Stub {
result.remove(xpResolveInfo);
}
if (result.size() == 0 && !addEphemeral) {
+ // No result in current profile, but found candidate in parent user.
+ // And we are not going to add emphemeral app, so we can return the
+ // result straight away.
result.add(xpDomainInfo.resolveInfo);
return result;
}
- }
- if (result.size() > 1 || addEphemeral) {
- result = filterCandidatesWithDomainPreferredActivitiesLPr(
- intent, flags, result, xpDomainInfo, userId);
- sortResult = true;
- }
+ } else if (result.size() <= 1 && !addEphemeral) {
+ // No result in parent user and <= 1 result in current profile, and we
+ // are not going to add emphemeral app, so we can return the result without
+ // further processing.
+ return result;
+ }
+ // We have more than one candidate (combining results from current and parent
+ // profile), so we need filtering and sorting.
+ result = filterCandidatesWithDomainPreferredActivitiesLPr(
+ intent, flags, result, xpDomainInfo, userId);
+ sortResult = true;
}
} else {
final PackageParser.Package pkg = mPackages.get(pkgName);