Add support for dalvik.annotation.compat.UnsupportedApiUsage

Changes the grey list annotation name to a set and adds a
GreylistAnnotationHandler for each name in the set. Also adds some
extra logging and removes an unused constant.

Test: ensured that generated light grey list did not change
Bug: 117818301
Change-Id: Ib123bd6ae605078b15d0b2e2905bb531d1399924
diff --git a/tools/class2greylist/src/com/android/class2greylist/AnnotationVisitor.java b/tools/class2greylist/src/com/android/class2greylist/AnnotationVisitor.java
index b805b30..57ccbdc 100644
--- a/tools/class2greylist/src/com/android/class2greylist/AnnotationVisitor.java
+++ b/tools/class2greylist/src/com/android/class2greylist/AnnotationVisitor.java
@@ -77,6 +77,9 @@
                 mStatus.debug("Member has annotation %s for which we have a handler",
                         a.getAnnotationType());
                 mAnnotationHandlers.get(a.getAnnotationType()).handleAnnotation(a, context);
+            } else {
+                mStatus.debug("Member has annotation %s for which we do not have a handler",
+                    a.getAnnotationType());
             }
         }
     }
diff --git a/tools/class2greylist/src/com/android/class2greylist/Class2Greylist.java b/tools/class2greylist/src/com/android/class2greylist/Class2Greylist.java
index 53157a3..0a73239 100644
--- a/tools/class2greylist/src/com/android/class2greylist/Class2Greylist.java
+++ b/tools/class2greylist/src/com/android/class2greylist/Class2Greylist.java
@@ -18,6 +18,7 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMap.Builder;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import com.google.common.io.Files;
@@ -48,7 +49,10 @@
  */
 public class Class2Greylist {
 
-    private static final String GREYLIST_ANNOTATION = "Landroid/annotation/UnsupportedAppUsage;";
+    private static final Set<String> GREYLIST_ANNOTATIONS =
+            ImmutableSet.of(
+                    "Landroid/annotation/UnsupportedAppUsage;",
+                    "Ldalvik/annotation/compat/UnsupportedAppUsage;");
     private static final Set<String> WHITELIST_ANNOTATIONS = ImmutableSet.of();
 
     private final Status mStatus;
@@ -176,10 +180,11 @@
     }
 
     private Map<String, AnnotationHandler> createAnnotationHandlers() {
-        return ImmutableMap.<String, AnnotationHandler>builder()
-                .put(GreylistAnnotationHandler.ANNOTATION_NAME,
-                        new GreylistAnnotationHandler(
-                                mStatus, mOutput, mPublicApis, mAllowedSdkVersions))
+        Builder<String, AnnotationHandler> builder = ImmutableMap.builder();
+        GreylistAnnotationHandler greylistAnnotationHandler = new GreylistAnnotationHandler(
+            mStatus, mOutput, mPublicApis, mAllowedSdkVersions);
+        GREYLIST_ANNOTATIONS.forEach(a -> builder.put(a, greylistAnnotationHandler));
+        return builder
                 .put(CovariantReturnTypeHandler.ANNOTATION_NAME,
                         new CovariantReturnTypeHandler(mOutput, mPublicApis))
                 .put(CovariantReturnTypeMultiHandler.ANNOTATION_NAME,
diff --git a/tools/class2greylist/src/com/android/class2greylist/GreylistAnnotationHandler.java b/tools/class2greylist/src/com/android/class2greylist/GreylistAnnotationHandler.java
index 460f2c3..1d377af 100644
--- a/tools/class2greylist/src/com/android/class2greylist/GreylistAnnotationHandler.java
+++ b/tools/class2greylist/src/com/android/class2greylist/GreylistAnnotationHandler.java
@@ -27,8 +27,6 @@
  */
 public class GreylistAnnotationHandler implements AnnotationHandler {
 
-    public static final String ANNOTATION_NAME = "Landroid/annotation/UnsupportedAppUsage;";
-
     // properties of greylist annotations:
     private static final String EXPECTED_SIGNATURE = "expectedSignature";
     private static final String MAX_TARGET_SDK = "maxTargetSdk";