From 56f0ff3c48c88b969d9bf5e62eb1ee590e03e461 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 13 Aug 2015 16:29:33 -0700 Subject: Make "Ask every time" actually work that way ..in link-opening behavior. If a candidate is marked as "ask every time," then the user is guaranteed to get a disambiguation prompt including that candidate even when some other candidate app is in the "always prefer this over a browser" state. Bug 23147746 Change-Id: I904d8697a992b3f16f32b1c1b49c2bf9424c7137 --- .../android/content/pm/IntentFilterVerificationInfo.java | 5 +++++ core/java/android/content/pm/PackageManager.java | 12 ++++++++++++ 2 files changed, 17 insertions(+) (limited to 'core') diff --git a/core/java/android/content/pm/IntentFilterVerificationInfo.java b/core/java/android/content/pm/IntentFilterVerificationInfo.java index 4dbac05..953b051 100644 --- a/core/java/android/content/pm/IntentFilterVerificationInfo.java +++ b/core/java/android/content/pm/IntentFilterVerificationInfo.java @@ -19,6 +19,7 @@ package android.content.pm; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS; +import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER; import android.os.Parcel; @@ -199,6 +200,10 @@ public final class IntentFilterVerificationInfo implements Parcelable { sb.append("never"); break; + case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK: + sb.append("always-ask"); + break; + case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED: default: sb.append("undefined"); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 0f936fd..c8e9402 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -1073,6 +1073,18 @@ public abstract class PackageManager { public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER = 3; /** + * Used as the {@code status} argument for {@link PackageManager#updateIntentVerificationStatus} + * to indicate that this app should always be considered as an ambiguous candidate for + * handling the matching Intent even if there are other candidate apps in the "always" + * state. Put another way: if there are any 'always ask' apps in a set of more than + * one candidate app, then a disambiguation is *always* presented even if there is + * another candidate app with the 'always' state. + * + * @hide + */ + public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK = 4; + + /** * Can be used as the {@code millisecondsToDelay} argument for * {@link PackageManager#extendVerificationTimeout}. This is the * maximum time {@code PackageManager} waits for the verification -- cgit v1.1