diff options
| author | 2018-12-07 12:24:47 +0000 | |
|---|---|---|
| committer | 2018-12-07 12:24:47 +0000 | |
| commit | 0a2a1e0e2d2b9df36ab0f2b65fd536fefe854466 (patch) | |
| tree | 5f02f7f871ae89b9687a88abf8baa7204b4299d7 | |
| parent | 6ee45c6f140e11dee472f3832d5e2278ab3643b5 (diff) | |
| parent | ed4d7c282051a9f20f125ac00f8f8efa29cf65f6 (diff) | |
Merge "UnsupportedAppUsage - support implicit member signatures"
| -rw-r--r-- | core/java/android/annotation/UnsupportedAppUsage.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/core/java/android/annotation/UnsupportedAppUsage.java b/core/java/android/annotation/UnsupportedAppUsage.java index 28145a06ecf2..65e3f25f8fb6 100644 --- a/core/java/android/annotation/UnsupportedAppUsage.java +++ b/core/java/android/annotation/UnsupportedAppUsage.java @@ -18,8 +18,10 @@ package android.annotation; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.CLASS; +import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.Target; @@ -40,7 +42,8 @@ import java.lang.annotation.Target; * {@hide} */ @Retention(CLASS) -@Target({CONSTRUCTOR, METHOD, FIELD}) +@Target({CONSTRUCTOR, METHOD, FIELD, TYPE}) +@Repeatable(UnsupportedAppUsage.Container.class) public @interface UnsupportedAppUsage { /** @@ -90,4 +93,27 @@ public @interface UnsupportedAppUsage { * @return A dex API signature. */ String expectedSignature() default ""; + + /** + * The signature of an implicit (not present in the source) member that forms part of the + * hiddenapi. + * + * <p>Allows access to non-SDK API elements that are not represented in the input source to be + * managed. + * + * <p>This must only be used when applying the annotation to a type, using it in any other + * situation is an error. + * + * @return A dex API signature. + */ + String implicitMember() default ""; + + /** + * Container for {@link UnsupportedAppUsage} that allows it to be applied repeatedly to types. + */ + @Retention(CLASS) + @Target(TYPE) + @interface Container { + UnsupportedAppUsage[] value(); + } } |