summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMihai Preda <preda@google.com>2009-05-18 20:15:32 +0200
committerMihai Preda <preda@google.com>2009-05-19 14:15:14 +0200
commitc3320dbe1c7acf040a3ec895129d8aae09c570ea (patch)
tree6ff817107e7b1ba755ef7e266c5b752b3e45e694
parent5615d35b28119865cd65a79814a69f910e0a3862 (diff)
downloadframeworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.zip
frameworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.tar.gz
frameworks_base-c3320dbe1c7acf040a3ec895129d8aae09c570ea.tar.bz2
Minor performance improvement when filtering intents by package.
Don't consider the activities that have no intent filters.
-rw-r--r--services/java/com/android/server/PackageManagerService.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index a3c702f..1471435 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -2900,8 +2900,13 @@ class PackageManagerService extends IPackageManager.Stub {
int N = packageActivities.size();
ArrayList<ArrayList<PackageParser.ActivityIntentInfo>> listCut =
new ArrayList<ArrayList<PackageParser.ActivityIntentInfo>>(N);
+
+ ArrayList<PackageParser.ActivityIntentInfo> intentFilters;
for (int i = 0; i < N; ++i) {
- listCut.add(packageActivities.get(i).intents);
+ intentFilters = packageActivities.get(i).intents;
+ if (intentFilters != null && intentFilters.size() > 0) {
+ listCut.add(intentFilters);
+ }
}
return super.queryIntentFromList(intent, resolvedType, defaultOnly, listCut);
}