summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-09-10 02:00:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-09-10 02:00:05 +0000
commitafb238fed9b316e19bc09db73064a84190a4fb89 (patch)
tree23fe7ad02ce7e0886cef4d9ce8d98e6b25f406e7
parent4fadc17018827e9519ced37295e72ec141f23723 (diff)
parent780d56dae433c48f3f0dec1450f7c74f161b978b (diff)
Merge "Fix for: Intent.FLAG_EXCLUDE_STOPPED_PACKAGES has no effect"
-rw-r--r--services/core/java/com/android/server/IntentResolver.java6
-rw-r--r--services/core/java/com/android/server/pm/resolution/ComponentResolver.java4
2 files changed, 5 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/IntentResolver.java b/services/core/java/com/android/server/IntentResolver.java
index c375c73124da..a1adc6f4aff3 100644
--- a/services/core/java/com/android/server/IntentResolver.java
+++ b/services/core/java/com/android/server/IntentResolver.java
@@ -35,7 +35,6 @@ import android.util.proto.ProtoOutputStream;
import com.android.internal.util.FastPrintWriter;
import com.android.server.pm.Computer;
-import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.snapshot.PackageDataSnapshot;
import java.io.PrintWriter;
@@ -566,7 +565,7 @@ public abstract class IntentResolver<F, R extends Object> {
* "stopped", that is whether it should not be included in the result
* if the intent requests to excluded stopped objects.
*/
- protected boolean isFilterStopped(PackageStateInternal packageState, @UserIdInt int userId) {
+ protected boolean isFilterStopped(@NonNull Computer computer, F filter, @UserIdInt int userId) {
return false;
}
@@ -805,8 +804,7 @@ public abstract class IntentResolver<F, R extends Object> {
int match;
if (debug) Slog.v(TAG, "Matching against filter " + filter);
- if (excludingStopped && isFilterStopped(computer.getPackageStateInternal(packageName),
- userId)) {
+ if (excludingStopped && isFilterStopped(computer, filter, userId)) {
if (debug) {
Slog.v(TAG, " Filter's target is stopped; skipping");
}
diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
index 7baec6217e2e..1d95e8744c47 100644
--- a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
+++ b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
@@ -930,12 +930,14 @@ public class ComponentResolver extends ComponentResolverLocked implements
}
@Override
- protected boolean isFilterStopped(@Nullable PackageStateInternal packageState,
+ protected boolean isFilterStopped(@NonNull Computer computer, F filter,
@UserIdInt int userId) {
if (!mUserManager.exists(userId)) {
return true;
}
+ final PackageStateInternal packageState = computer.getPackageStateInternal(
+ filter.first.getPackageName());
if (packageState == null || packageState.getPkg() == null) {
return false;
}