Merge "Fix SdkConstant retention "detection"" into tm-dev am: bedd876239 am: e7bfaa9e6a
Original change: https://googleplex-android-review.googlesource.com/c/platform/tools/metalava/+/17944604
Change-Id: Id41d5968483037ee60afe7d0f4adbccd273c8555
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/src/main/java/com/android/tools/metalava/Constants.kt b/src/main/java/com/android/tools/metalava/Constants.kt
index 5f2354c..943a21e 100644
--- a/src/main/java/com/android/tools/metalava/Constants.kt
+++ b/src/main/java/com/android/tools/metalava/Constants.kt
@@ -36,6 +36,7 @@
const val RECENTLY_NONNULL = "androidx.annotation.RecentlyNonNull"
const val ANDROID_NULLABLE = "android.annotation.Nullable"
const val ANDROID_NONNULL = "android.annotation.NonNull"
+const val ANDROID_SDK_CONSTANT = "android.annotation.SdkConstant"
const val ANDROIDX_VISIBLE_FOR_TESTING = "androidx.annotation.VisibleForTesting"
const val ATTR_OTHERWISE = "otherwise"
const val ATTR_ALLOW_IN = "allowIn"
diff --git a/src/main/java/com/android/tools/metalava/RewriteAnnotations.kt b/src/main/java/com/android/tools/metalava/RewriteAnnotations.kt
index d256e10..a34c162 100644
--- a/src/main/java/com/android/tools/metalava/RewriteAnnotations.kt
+++ b/src/main/java/com/android/tools/metalava/RewriteAnnotations.kt
@@ -127,6 +127,7 @@
qualifiedName == RECENTLY_NONNULL ||
qualifiedName == ANDROID_NULLABLE ||
qualifiedName == ANDROID_NONNULL -> return false
+ qualifiedName.equals(ANDROID_SDK_CONSTANT) -> return true
qualifiedName.startsWith("androidx.annotation.") -> return true
}
@@ -134,9 +135,9 @@
if (codebase != null) {
val cls = codebase.findClass(qualifiedName) ?: return true
return cls.isAnnotationType() && cls.getRetention() == AnnotationRetention.SOURCE
+ } else {
+ error("Found annotation with unknown desired retention: " + qualifiedName)
}
-
- return false
}
/** Writes the bytecode for the compiled annotations in the given file such that they are package private */
diff --git a/src/main/java/com/android/tools/metalava/SdkFileWriter.kt b/src/main/java/com/android/tools/metalava/SdkFileWriter.kt
index 6d71da5..ee13682 100644
--- a/src/main/java/com/android/tools/metalava/SdkFileWriter.kt
+++ b/src/main/java/com/android/tools/metalava/SdkFileWriter.kt
@@ -29,7 +29,6 @@
private const val ANDROID_VIEW_VIEW = "android.view.View"
private const val ANDROID_VIEW_VIEW_GROUP = "android.view.ViewGroup"
private const val ANDROID_VIEW_VIEW_GROUP_LAYOUT_PARAMS = "android.view.ViewGroup.LayoutParams"
-private const val SDK_CONSTANT_ANNOTATION = "android.annotation.SdkConstant"
private const val SDK_CONSTANT_TYPE_ACTIVITY_ACTION =
"android.annotation.SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION"
private const val SDK_CONSTANT_TYPE_BROADCAST_ACTION =
@@ -77,7 +76,7 @@
val value = field.initialValue() ?: continue
val annotations = field.modifiers.annotations()
for (annotation in annotations) {
- if (SDK_CONSTANT_ANNOTATION == annotation.qualifiedName) {
+ if (ANDROID_SDK_CONSTANT == annotation.qualifiedName) {
val resolved =
annotation.findAttribute(null)?.leafValues()?.firstOrNull()?.resolve() as? FieldItem
?: continue