diff options
author | Wale Ogunwale <ogunwale@google.com> | 2020-11-18 22:02:32 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-11-18 22:02:32 +0000 |
commit | e6439f8866394300b81724be108cefd7bba6821b (patch) | |
tree | 1f0cb8b9b2d7b00a88d928b16d3fe911fb4a8ced | |
parent | c778d8e747243a2c77c8a287f5f976d723502963 (diff) | |
parent | fc93d732ae17f21338ce63dc1672082cc349a2e8 (diff) |
Merge "Revert "Restore preferred activity filter if it not inside""
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 { |