summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathew Inwood <mathewi@google.com> 2018-08-22 10:58:04 -0700
committer android-build-merger <android-build-merger@google.com> 2018-08-22 10:58:04 -0700
commitf66e5e16a1e2814f0c653bad355ac461f977536a (patch)
treee0617f8ac682e05cf917979ce234a8a2058e0c9d
parent619bafd4c254cf714b07a3208b104c70c37dc74b (diff)
parent06cd1d260b54b963baec45c7f7a756f237c24c14 (diff)
Merge "Add maxTargetSdk to @UnsupportedAppUsage annotation." am: 29f955559a
am: 06cd1d260b Change-Id: I05d367b1d00961e262e800c552f8ee1f2ef253e9
-rw-r--r--core/java/android/annotation/UnsupportedAppUsage.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/core/java/android/annotation/UnsupportedAppUsage.java b/core/java/android/annotation/UnsupportedAppUsage.java
index 05de3e8caa3f..fbba6dafde29 100644
--- a/core/java/android/annotation/UnsupportedAppUsage.java
+++ b/core/java/android/annotation/UnsupportedAppUsage.java
@@ -51,6 +51,39 @@ public @interface UnsupportedAppUsage {
long trackingBug() default 0;
/**
+ * Indicates that usage of this API is limited to apps based on their target SDK version.
+ *
+ * Access to the API is allowed if the targetSdkVersion in the apps manifest is no greater than
+ * this value. Access checks are performed at runtime.
+ *
+ * This is used to give app developers a grace period to migrate off a non-SDK interface. When
+ * making Android version N, existing APIs can have a maxTargetSdk of N-1 added to them.
+ * Developers must then migrate off the API when their app is updated in future, but it will
+ * continue working in the meantime.
+ *
+ * Possible values are:
+ * <ul>
+ * <li>
+ * {@link android.os.Build.VERSION_CODES#O} or {@link android.os.Build.VERSION_CODES#P},
+ * to limit access to apps targeting these SDKs (or earlier).
+ * </li>
+ * <li>
+ * absent (default value) - All apps can access this API, but doing so may result in
+ * warnings in the log, UI warnings (on developer builds) and/or strictmode violations.
+ * The API is likely to be further restricted in future.
+ * </li>
+ *
+ * </ul>
+ *
+ * Note, if this is set to {@link android.os.Build.VERSION_CODES#O}, apps targeting O
+ * maintenance releases will also be allowed to use the API, and similarly for any future
+ * maintenance releases of P.
+ *
+ * @return The maximum value for an apps targetSdkVersion in order to access this API.
+ */
+ int maxTargetSdk() default Integer.MAX_VALUE;
+
+ /**
* For debug use only. The expected dex signature to be generated for this API, used to verify
* parts of the build process.
*