ChecksSdkIntAtLeast

  • android
    @MustBeDocumented
    @Retention(value = AnnotationRetention.BINARY)
    @Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.FIELD])
    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 constructors

ChecksSdkIntAtLeast(
    api: Int,
    codename: String,
    parameter: Int,
    lambda: Int,
    extension: Int
)
android

Public properties

Int

The API level is at least the given level

android
String

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

android
Int

The associated Extension SDK id, or 0 if the Android platform

android
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

android
Int

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

android

Public constructors

ChecksSdkIntAtLeast

ChecksSdkIntAtLeast(
    api: Int = -1,
    codename: String = "",
    parameter: Int = -1,
    lambda: Int = -1,
    extension: Int = 0
)

Public properties

api

val apiInt

The API level is at least the given level

codename

val codenameString

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

extension

val extensionInt

The associated Extension SDK id, or 0 if the Android platform

lambda

val lambdaInt

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

val parameterInt

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