Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5112b66 authored by Paul Duffin's avatar Paul Duffin Committed by android-build-merger
Browse files

Merge "UnsupportedAppUsage - support implicit member signatures"

am: 0a2a1e0e

Change-Id: I05b97e037467dd744662a8fad23eec474a3fd88b
parents 510c8c46 0a2a1e0e
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -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();
    }
}