summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/IntentResolver.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-02-25 16:15:27 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-02-25 16:15:27 -0800
commitd752c3b3e6c576ed1f18e86a7b18c33dc7c65791 (patch)
tree904a8f1e186aba26518269e3bf3271d765e31897 /services/java/com/android/server/IntentResolver.java
parent53c7b1d544f1b78cc4fb206c74dc52b39b58b258 (diff)
parente7f972122db87dc54e41ed1a6e417534d43bca3a (diff)
downloadframeworks_base-d752c3b3e6c576ed1f18e86a7b18c33dc7c65791.zip
frameworks_base-d752c3b3e6c576ed1f18e86a7b18c33dc7c65791.tar.gz
frameworks_base-d752c3b3e6c576ed1f18e86a7b18c33dc7c65791.tar.bz2
Merge "Implement issue #3426299: Introduce application "stopped" state"
Diffstat (limited to 'services/java/com/android/server/IntentResolver.java')
-rw-r--r--services/java/com/android/server/IntentResolver.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/services/java/com/android/server/IntentResolver.java b/services/java/com/android/server/IntentResolver.java
index e9ee12c..b78389b 100644
--- a/services/java/com/android/server/IntentResolver.java
+++ b/services/java/com/android/server/IntentResolver.java
@@ -36,7 +36,6 @@ import android.util.LogPrinter;
import android.util.Printer;
import android.util.Config;
-import android.content.ContentResolver;
import android.content.Intent;
import android.content.IntentFilter;
@@ -326,6 +325,15 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
return true;
}
+ /**
+ * Returns whether the object associated with the given filter is
+ * "stopped," that is whether it should not be included in the result
+ * if the intent requests to excluded stopped objects.
+ */
+ protected boolean isFilterStopped(F filter) {
+ return false;
+ }
+
protected String packageForFilter(F filter) {
return null;
}
@@ -496,6 +504,8 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
final String action = intent.getAction();
final Uri data = intent.getData();
+ final boolean excludingStopped = intent.isExcludingStopped();
+
final int N = src != null ? src.size() : 0;
boolean hasNonDefaults = false;
int i;
@@ -504,6 +514,13 @@ public class IntentResolver<F extends IntentFilter, R extends Object> {
int match;
if (debug) Slog.v(TAG, "Matching against filter " + filter);
+ if (excludingStopped && isFilterStopped(filter)) {
+ if (debug) {
+ Slog.v(TAG, " Filter's target is stopped; skipping");
+ }
+ continue;
+ }
+
// Do we already have this one?
if (!allowFilterResult(filter, dest)) {
if (debug) {