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

Commit 5bfa4239 authored by Daniel Bright's avatar Daniel Bright
Browse files

Add enforcement parameter to RequiresFeature

* Allows for a broader range of enforcement checks
* Designed to match androix so that it can be easily slotted into
  Android Studio lint checks

Test: Built
Bug: 173735303
Change-Id: Ia4cc8be8fdccbdeeecee956e4ccf02bda6d91845
parent e1fee3b4
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import java.lang.annotation.Target;
 * Denotes that the annotated element requires one or more device features. This
 * is used to auto-generate documentation.
 *
 * @see PackageManager#hasSystemFeature(String)
 * @hide
 */
@Retention(SOURCE)
@@ -38,8 +37,16 @@ import java.lang.annotation.Target;
public @interface RequiresFeature {
    /**
     * The name of the device feature that is required.
     *
     * @see PackageManager#hasSystemFeature(String)
     */
    String value();

    /**
     * Defines the name of the method that should be called to check whether the feature is
     * available, using the same signature format as javadoc. The feature checking method can have
     * multiple parameters, but the feature name parameter must be of type String and must also be
     * the first String-type parameter.
     * <p>
     * By default, the enforcement is {@link PackageManager#hasSystemFeature(String)}.
     */
    String enforcement() default("android.content.pm.PackageManager#hasSystemFeature");
}