ChecksSdkIntAtLeast

@Documented  @Retention(value = CLASS)  @Target(value = ) annotation ChecksSdkIntAtLeast


Denotes that the annotated method checks if the SDK_INT API level is at least the given value, and either returns it or executes the given lambda in that case (or if it's a field, has the value true). The API level can be specified either as an API level via api, or for preview platforms as a codename (such as "R") via codename}, or it can be passed in to the method; in that case, the parameter containing the API level or code name should be specified via parameter, where the first parameter is numbered 0.

Examples:

 // Simple version check
 @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
 public static boolean isAtLeastO() {
     return Build.VERSION.SDK_INT >= 26;
 }

 // Required API level is passed in as first argument, and function
 // in second parameter is executed if SDK_INT is at least that high:
 @ChecksSdkIntAtLeast(parameter = 0, lambda = 1)
 inline fun fromApi(value: Int, action: () -> Unit) {
     if (Build.VERSION.SDK_INT >= value) {
         action()
     }
 }

 // Kotlin property:
 @get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.GINGERBREAD)
 val isGingerbread: Boolean
    get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD

 // Java field:
 @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.LOLLIPOP)
 public static final boolean SUPPORTS_LETTER_SPACING =
        Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;

Summary

Public methods

abstract @NonNull int
api()

The API level is at least the given level

abstract @NonNull String

The API level is at least the given codename (such as "R")

abstract @NonNull int

The parameter number for a lambda that will be executed if the API level is at least the value supplied via api, codename or parameter

abstract @NonNull int

The API level is specified in the given parameter, where the first parameter is number 0

Public methods

api

@NonNull
public abstract int api()

The API level is at least the given level

codename

@NonNull
public abstract String codename()

The API level is at least the given codename (such as "R")

lambda

@NonNull
public abstract int lambda()

The parameter number for a lambda that will be executed if the API level is at least the value supplied via api, codename or parameter

parameter

@NonNull
public abstract int parameter()

The API level is specified in the given parameter, where the first parameter is number 0