summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorMartijn Coenen <maco@google.com>2017-04-13 16:53:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-04-13 16:53:22 +0000
commite4960cf495465aa3548d788dc1debca71d2692c5 (patch)
treef5eb0e4845f97bc1f94576aab5d06f1bf75d05ba /core/java
parent498a44f33a72b6b977ecc317d7a0ac2e2763475e (diff)
parent441d61bf16fb63a0e19d6252ab9ac4c35a739006 (diff)
Merge "Add persistentFeature application attribute." into oc-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/PackageManager.java11
-rw-r--r--core/java/android/content/pm/PackageParser.java7
2 files changed, 17 insertions, 1 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index c7a0da508b2b..e5c8f0d2ab3e 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -1763,6 +1763,17 @@ public abstract class PackageManager {
/**
* Feature for {@link #getSystemAvailableFeatures} and
+ * {@link #hasSystemFeature}: The device supports any
+ * one of the {@link #FEATURE_NFC}, {@link #FEATURE_NFC_HOST_CARD_EMULATION},
+ * or {@link #FEATURE_NFC_HOST_CARD_EMULATION_NFCF} features.
+ *
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.FEATURE)
+ public static final String FEATURE_NFC_ANY = "android.hardware.nfc.any";
+
+ /**
+ * Feature for {@link #getSystemAvailableFeatures} and
* {@link #hasSystemFeature}: The device supports the OpenGL ES
* <a href="http://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">
* Android Extension Pack</a>.
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index e64b2a56a277..11c658a1d4cf 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -3363,7 +3363,12 @@ public class PackageParser {
if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_persistent,
false)) {
- ai.flags |= ApplicationInfo.FLAG_PERSISTENT;
+ // Check if persistence is based on a feature being present
+ final String requiredFeature = sa.getNonResourceString(
+ com.android.internal.R.styleable.AndroidManifestApplication_persistentFeature);
+ if (requiredFeature == null || mCallback.hasFeature(requiredFeature)) {
+ ai.flags |= ApplicationInfo.FLAG_PERSISTENT;
+ }
}
}