summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Patrick Baumann <patb@google.com> 2020-07-08 20:51:26 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-07-08 20:51:26 +0000
commit7719b5644b6cc07a022bfeed0732b182a2522945 (patch)
tree61147dd05c8aebe4ef7d85abbd69f0dfd35ba8c5
parentc5b199e721035f08cab016d61cedbd7d6eb9de7f (diff)
parente505016e9b59a8a489260776557e4ae721529319 (diff)
Merge "Fixes component-based visibility recompute" into rvc-dev am: e505016e9b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12099329 Change-Id: If541087ede76594ce90a4179013e37a2d93c6586
-rw-r--r--services/core/java/com/android/server/pm/AppsFilter.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java
index 3a203d52edbe..c3c2e5e65103 100644
--- a/services/core/java/com/android/server/pm/AppsFilter.java
+++ b/services/core/java/com/android/server/pm/AppsFilter.java
@@ -708,12 +708,15 @@ public class AppsFilter {
return ret;
}
+ /**
+ * This method recomputes all component / intent-based visibility and is intended to match the
+ * relevant logic of {@link #addPackageInternal(PackageSetting, ArrayMap)}
+ */
private void recomputeComponentVisibility(ArrayMap<String, PackageSetting> existingSettings) {
mQueriesViaComponent.clear();
for (int i = existingSettings.size() - 1; i >= 0; i--) {
PackageSetting setting = existingSettings.valueAt(i);
- if (setting.pkg == null
- || mForceQueryable.contains(setting.appId)) {
+ if (setting.pkg == null || requestsQueryAllPackages(setting.pkg)) {
continue;
}
for (int j = existingSettings.size() - 1; j >= 0; j--) {
@@ -721,7 +724,7 @@ public class AppsFilter {
continue;
}
final PackageSetting otherSetting = existingSettings.valueAt(j);
- if (otherSetting.pkg == null) {
+ if (otherSetting.pkg == null || mForceQueryable.contains(otherSetting.appId)) {
continue;
}
if (canQueryViaComponents(setting.pkg, otherSetting.pkg, mProtectedBroadcasts)) {