summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWale Ogunwale <ogunwale@google.com>2020-11-18 22:02:32 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-11-18 22:02:32 +0000
commite6439f8866394300b81724be108cefd7bba6821b (patch)
tree1f0cb8b9b2d7b00a88d928b16d3fe911fb4a8ced
parentc778d8e747243a2c77c8a287f5f976d723502963 (diff)
parentfc93d732ae17f21338ce63dc1672082cc349a2e8 (diff)
Merge "Revert "Restore preferred activity filter if it not inside""
-rw-r--r--services/core/java/com/android/server/pm/PreferredComponent.java37
-rw-r--r--services/core/java/com/android/server/pm/PreferredIntentResolver.java21
-rw-r--r--services/core/java/com/android/server/pm/Settings.java3
3 files changed, 2 insertions, 59 deletions
diff --git a/services/core/java/com/android/server/pm/PreferredComponent.java b/services/core/java/com/android/server/pm/PreferredComponent.java
index 3732bb6a834c..c312fc0eca2f 100644
--- a/services/core/java/com/android/server/pm/PreferredComponent.java
+++ b/services/core/java/com/android/server/pm/PreferredComponent.java
@@ -254,43 +254,6 @@ public class PreferredComponent {
return numMatch == NS;
}
- public boolean sameSet(PreferredComponent pc) {
- if (mSetPackages == null || pc == null || pc.mSetPackages == null
- || !sameComponent(pc.mComponent)) {
- return false;
- }
- final int otherPackageCount = pc.mSetPackages.length;
- final int packageCount = mSetPackages.length;
- int numMatch = 0;
- for (int i = 0; i < otherPackageCount; i++) {
- boolean good = false;
- for (int j = 0; j < packageCount; j++) {
- if (mSetPackages[j].equals(pc.mSetPackages[j])
- && mSetClasses[j].equals(pc.mSetClasses[j])) {
- numMatch++;
- good = true;
- break;
- }
- }
- if (!good) {
- return false;
- }
- }
- return numMatch == packageCount;
- }
-
- /** Returns true if the preferred component represents the provided ComponentName. */
- private boolean sameComponent(ComponentName comp) {
- if (mComponent == null || comp == null) {
- return false;
- }
- if (mComponent.getPackageName().equals(comp.getPackageName())
- && mComponent.getClassName().equals(comp.getClassName())) {
- return true;
- }
- return false;
- }
-
public boolean isSuperset(List<ResolveInfo> query, boolean excludeSetupWizardPackage) {
if (mSetPackages == null) {
return query == null;
diff --git a/services/core/java/com/android/server/pm/PreferredIntentResolver.java b/services/core/java/com/android/server/pm/PreferredIntentResolver.java
index ff3df130a3cc..a261e29b05a7 100644
--- a/services/core/java/com/android/server/pm/PreferredIntentResolver.java
+++ b/services/core/java/com/android/server/pm/PreferredIntentResolver.java
@@ -22,7 +22,6 @@ import android.content.IntentFilter;
import java.io.PrintWriter;
import com.android.server.IntentResolver;
-import java.util.ArrayList;
public class PreferredIntentResolver
extends IntentResolver<PreferredActivity, PreferredActivity> {
@@ -46,24 +45,4 @@ public class PreferredIntentResolver
protected IntentFilter getIntentFilter(@NonNull PreferredActivity input) {
return input;
}
-
- public boolean shouldAddPreferredActivity(PreferredActivity pa) {
- ArrayList<PreferredActivity> pal = findFilters(pa);
- if (pal == null || pal.isEmpty()) {
- return true;
- }
- if (!pa.mPref.mAlways) {
- return false;
- }
- final int activityCount = pal.size();
- for (int i = 0; i < activityCount; i++) {
- PreferredActivity cur = pal.get(i);
- if (cur.mPref.mAlways
- && cur.mPref.mMatch == (pa.mPref.mMatch & IntentFilter.MATCH_CATEGORY_MASK)
- && cur.mPref.sameSet(pa.mPref)) {
- return false;
- }
- }
- return true;
- }
}
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 79e5b276ac64..0f5d9781c612 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -1410,7 +1410,8 @@ public final class Settings {
PreferredActivity pa = new PreferredActivity(parser);
if (pa.mPref.getParseError() == null) {
final PreferredIntentResolver resolver = editPreferredActivitiesLPw(userId);
- if (resolver.shouldAddPreferredActivity(pa)) {
+ ArrayList<PreferredActivity> pal = resolver.findFilters(pa);
+ if (pal == null || pal.size() == 0 || pa.mPref.mAlways) {
resolver.addFilter(pa);
}
} else {