Snap for 10102166 from 51fae39af2958909a21e2be8eca283061c2c45a2 to mainline-tzdata4-release

Change-Id: Id953caad0c961914fe1ed62b923cfa68c87c8270
diff --git a/src/main/java/com/android/tools/metalava/AnnotationsMerger.kt b/src/main/java/com/android/tools/metalava/AnnotationsMerger.kt
index 8c46600..30ba4e9 100644
--- a/src/main/java/com/android/tools/metalava/AnnotationsMerger.kt
+++ b/src/main/java/com/android/tools/metalava/AnnotationsMerger.kt
@@ -524,7 +524,7 @@
     private fun mergeAnnotations(xmlElement: Element, item: Item) {
         loop@ for (annotationElement in getChildren(xmlElement)) {
             val originalName = getAnnotationName(annotationElement)
-            val qualifiedName = AnnotationItem.mapName(codebase, originalName) ?: originalName
+            val qualifiedName = AnnotationItem.mapName(originalName) ?: originalName
             if (hasNullnessConflicts(item, qualifiedName)) {
                 continue@loop
             }
@@ -807,10 +807,10 @@
     override val originalName: String,
     override val attributes: List<XmlBackedAnnotationAttribute> = emptyList()
 ) : DefaultAnnotationItem(codebase) {
-    override val qualifiedName: String? = AnnotationItem.mapName(codebase, originalName)
+    override val qualifiedName: String? = AnnotationItem.mapName(originalName)
 
     override fun toSource(target: AnnotationTarget, showDefaultAttrs: Boolean): String {
-        val qualifiedName = AnnotationItem.mapName(codebase, qualifiedName, null, target) ?: return ""
+        val qualifiedName = AnnotationItem.mapName(qualifiedName, target) ?: return ""
 
         if (attributes.isEmpty()) {
             return "@$qualifiedName"
diff --git a/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt b/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
index 26cea66..7c29a0b 100644
--- a/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
+++ b/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
@@ -42,7 +42,6 @@
 import com.intellij.psi.PsiReference
 import org.jetbrains.kotlin.psi.KtObjectDeclaration
 import org.jetbrains.uast.UElement
-import java.util.function.Predicate
 
 fun isNullableAnnotation(qualifiedName: String): Boolean {
     return qualifiedName.endsWith("Nullable")
@@ -175,18 +174,20 @@
          * Annotations that should not be exported are mapped to null.
          */
         fun mapName(
-            codebase: Codebase,
             qualifiedName: String?,
-            filter: Predicate<Item>? = null,
             target: AnnotationTarget = AnnotationTarget.SIGNATURE_FILE
         ): String? {
             qualifiedName ?: return null
-            if (options.passThroughAnnotations.contains(qualifiedName)) {
+            if (options.passThroughAnnotations.contains(qualifiedName) ||
+                options.showAnnotations.matches(qualifiedName) ||
+                options.hideAnnotations.matches(qualifiedName)
+            ) {
                 return qualifiedName
             }
             if (options.excludeAnnotations.contains(qualifiedName)) {
                 return null
             }
+
             when (qualifiedName) {
                 // Resource annotations
                 "android.annotation.AnimRes" -> return "androidx.annotation.AnimRes"
@@ -282,21 +283,7 @@
                 "android.annotation.Condemned",
                 "android.annotation.Hide",
 
-                "android.annotation.Widget" -> {
-                    // Remove, unless (a) public or (b) specifically included in --showAnnotations
-                    return if (options.showAnnotations.matches(qualifiedName)) {
-                        qualifiedName
-                    } else if (filter != null) {
-                        val cls = codebase.findClass(qualifiedName)
-                        if (cls != null && filter.test(cls)) {
-                            qualifiedName
-                        } else {
-                            null
-                        }
-                    } else {
-                        qualifiedName
-                    }
-                }
+                "android.annotation.Widget" -> return qualifiedName
 
                 // Included for analysis, but should not be exported:
                 "android.annotation.BroadcastBehavior",
@@ -325,29 +312,10 @@
 
                         // Unknown Android platform annotations
                         qualifiedName.startsWith("android.annotation.") -> {
-                            // Remove, unless specifically included in --showAnnotations
-                            return if (options.showAnnotations.matches(qualifiedName)) {
-                                qualifiedName
-                            } else {
-                                null
-                            }
+                            return null
                         }
 
-                        else -> {
-                            // Remove, unless (a) public or (b) specifically included in --showAnnotations
-                            return if (options.showAnnotations.matches(qualifiedName)) {
-                                qualifiedName
-                            } else if (filter != null) {
-                                val cls = codebase.findClass(qualifiedName)
-                                if (cls != null && filter.test(cls)) {
-                                    qualifiedName
-                                } else {
-                                    null
-                                }
-                            } else {
-                                qualifiedName
-                            }
-                        }
+                        else -> qualifiedName
                     }
                 }
             }
diff --git a/src/main/java/com/android/tools/metalava/model/ModifierList.kt b/src/main/java/com/android/tools/metalava/model/ModifierList.kt
index 5b81463..5ea4468 100644
--- a/src/main/java/com/android/tools/metalava/model/ModifierList.kt
+++ b/src/main/java/com/android/tools/metalava/model/ModifierList.kt
@@ -192,7 +192,7 @@
      * in this modifier list
      */
     fun findAnnotation(qualifiedName: String): AnnotationItem? {
-        val mappedName = AnnotationItem.mapName(codebase, qualifiedName)
+        val mappedName = AnnotationItem.mapName(qualifiedName)
         return annotations().firstOrNull {
             mappedName == it.qualifiedName
         }
diff --git a/src/main/java/com/android/tools/metalava/model/psi/PsiAnnotationItem.kt b/src/main/java/com/android/tools/metalava/model/psi/PsiAnnotationItem.kt
index 4077b2a..5de4137 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/PsiAnnotationItem.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/PsiAnnotationItem.kt
@@ -51,7 +51,7 @@
     val psiAnnotation: PsiAnnotation,
     override val originalName: String?
 ) : DefaultAnnotationItem(codebase) {
-    override val qualifiedName: String? = AnnotationItem.mapName(codebase, originalName)
+    override val qualifiedName: String? = AnnotationItem.mapName(originalName)
 
     override fun toString(): String = toSource()
 
@@ -137,7 +137,7 @@
             target: AnnotationTarget,
             showDefaultAttrs: Boolean
         ) {
-            val qualifiedName = AnnotationItem.mapName(codebase, originalName, null, target) ?: return
+            val qualifiedName = AnnotationItem.mapName(originalName, target) ?: return
 
             val attributes = getAttributes(psiAnnotation, showDefaultAttrs)
             if (attributes.isEmpty()) {
diff --git a/src/main/java/com/android/tools/metalava/model/psi/PsiTypePrinter.kt b/src/main/java/com/android/tools/metalava/model/psi/PsiTypePrinter.kt
index 0b99b35..3c61a88 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/PsiTypePrinter.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/PsiTypePrinter.kt
@@ -488,7 +488,7 @@
 
         val mapped =
             if (mapAnnotations) {
-                AnnotationItem.mapName(codebase, qualifiedName) ?: return null
+                AnnotationItem.mapName(qualifiedName) ?: return null
             } else {
                 qualifiedName
             }
diff --git a/src/main/java/com/android/tools/metalava/model/psi/UAnnotationItem.kt b/src/main/java/com/android/tools/metalava/model/psi/UAnnotationItem.kt
index c76dfcf..45402e7 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/UAnnotationItem.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/UAnnotationItem.kt
@@ -51,7 +51,7 @@
     val uAnnotation: UAnnotation,
     override val originalName: String?
 ) : DefaultAnnotationItem(codebase) {
-    override val qualifiedName: String? = AnnotationItem.mapName(codebase, originalName)
+    override val qualifiedName: String? = AnnotationItem.mapName(originalName)
 
     override fun toString(): String = toSource()
 
@@ -121,7 +121,7 @@
             target: AnnotationTarget,
             showDefaultAttrs: Boolean
         ) {
-            val qualifiedName = AnnotationItem.mapName(codebase, originalName, null, target) ?: return
+            val qualifiedName = AnnotationItem.mapName(originalName, target) ?: return
 
             val attributes = getAttributes(uAnnotation, showDefaultAttrs)
             if (attributes.isEmpty()) {
diff --git a/src/main/java/com/android/tools/metalava/model/text/TextBackedAnnotationItem.kt b/src/main/java/com/android/tools/metalava/model/text/TextBackedAnnotationItem.kt
index fce3a9d..b3bd1fc 100644
--- a/src/main/java/com/android/tools/metalava/model/text/TextBackedAnnotationItem.kt
+++ b/src/main/java/com/android/tools/metalava/model/text/TextBackedAnnotationItem.kt
@@ -40,7 +40,7 @@
         else source.substring(1, index)
 
         originalName = annotationClass
-        qualifiedName = if (mapName) AnnotationItem.mapName(codebase, annotationClass) else annotationClass
+        qualifiedName = if (mapName) AnnotationItem.mapName(annotationClass) else annotationClass
         full = when {
             qualifiedName == null -> ""
             index == -1 -> "@$qualifiedName"
diff --git a/src/main/java/com/android/tools/metalava/model/text/TextModifiers.kt b/src/main/java/com/android/tools/metalava/model/text/TextModifiers.kt
index 2c72a0d..143ffcd 100644
--- a/src/main/java/com/android/tools/metalava/model/text/TextModifiers.kt
+++ b/src/main/java/com/android/tools/metalava/model/text/TextModifiers.kt
@@ -53,7 +53,7 @@
         annotationSources.forEach { source ->
             val index = source.indexOf('(')
             val originalName = if (index == -1) source.substring(1) else source.substring(1, index)
-            val qualifiedName = AnnotationItem.mapName(codebase, originalName)
+            val qualifiedName = AnnotationItem.mapName(originalName)
 
             // @Deprecated is also treated as a "modifier"
             if (qualifiedName == JAVA_LANG_DEPRECATED) {