summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/pm
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2015-07-10 17:44:53 -0700
committerChristopher Tate <ctate@google.com>2015-07-13 17:01:14 -0700
commitf0d6cb38c47ee37583034dc3a68238ed13c91742 (patch)
tree697334197a4e363bccb6561029bbda7f6adb695a /core/java/android/content/pm
parentc09544bb88ada53494d4a955d0450a22985b4799 (diff)
downloadframeworks_base-f0d6cb38c47ee37583034dc3a68238ed13c91742.zip
frameworks_base-f0d6cb38c47ee37583034dc3a68238ed13c91742.tar.gz
frameworks_base-f0d6cb38c47ee37583034dc3a68238ed13c91742.tar.bz2
Prioritize most-recently-enabled link-handling app
In the case when multiple apps handle a given web-link action, all of which have been marked as "launch the app instead of a browser" and so are otherwise ambiguous, always prefer the app that was most recently placed into the always-handle-links state. Bug 22051035 Change-Id: I3f43c19b0d7b74e9843445e41971bb5433affb1c
Diffstat (limited to 'core/java/android/content/pm')
-rw-r--r--core/java/android/content/pm/IntentFilterVerificationInfo.java28
-rw-r--r--core/java/android/content/pm/PackageUserState.java2
2 files changed, 24 insertions, 6 deletions
diff --git a/core/java/android/content/pm/IntentFilterVerificationInfo.java b/core/java/android/content/pm/IntentFilterVerificationInfo.java
index 96000dd..4dbac05 100644
--- a/core/java/android/content/pm/IntentFilterVerificationInfo.java
+++ b/core/java/android/content/pm/IntentFilterVerificationInfo.java
@@ -26,7 +26,9 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;
+
import com.android.internal.util.XmlUtils;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;
@@ -181,14 +183,28 @@ public final class IntentFilterVerificationInfo implements Parcelable {
return getStatusStringFromValue(mMainStatus);
}
- public static String getStatusStringFromValue(int val) {
- switch (val) {
- case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK : return "ask";
- case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS : return "always";
- case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER : return "never";
+ public static String getStatusStringFromValue(long val) {
+ StringBuilder sb = new StringBuilder();
+ switch ((int)(val >> 32)) {
+ case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS:
+ sb.append("always : ");
+ sb.append(Long.toHexString(val & 0x00000000FFFFFFFF));
+ break;
+
+ case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK:
+ sb.append("ask");
+ break;
+
+ case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER:
+ sb.append("never");
+ break;
+
+ case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED:
default:
- case INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED : return "undefined";
+ sb.append("undefined");
+ break;
}
+ return sb.toString();
}
@Override
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index 92b8055..9b28401 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -38,6 +38,7 @@ public class PackageUserState {
public ArraySet<String> enabledComponents;
public int domainVerificationStatus;
+ public int appLinkGeneration;
public PackageUserState() {
installed = true;
@@ -60,5 +61,6 @@ public class PackageUserState {
? new ArraySet<>(o.enabledComponents) : null;
blockUninstall = o.blockUninstall;
domainVerificationStatus = o.domainVerificationStatus;
+ appLinkGeneration = o.appLinkGeneration;
}
}