diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-02-25 16:15:27 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-25 16:15:27 -0800 |
commit | d752c3b3e6c576ed1f18e86a7b18c33dc7c65791 (patch) | |
tree | 904a8f1e186aba26518269e3bf3271d765e31897 /services/java/com/android/server/IntentResolver.java | |
parent | 53c7b1d544f1b78cc4fb206c74dc52b39b58b258 (diff) | |
parent | e7f972122db87dc54e41ed1a6e417534d43bca3a (diff) | |
download | frameworks_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.java | 19 |
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) { |