add isAtLeastV() Basing this on the state from before: https://android-review.googlesource.com/c/platform/frameworks/libs/modules-utils/+/2535803 but with U/UpsideDownCake replaced with V/VanillaIceCream I assume we don't yet know if V will be 35 or higher. Bug: 277813952 Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:600ca498ae054d2a6919378d59c8da471748edc1) Merged-In: Ie2fe7b0bc8b82f8049e51ac7f85b0d9722e9f5ed Change-Id: Ie2fe7b0bc8b82f8049e51ac7f85b0d9722e9f5ed
diff --git a/build/include/android-modules-utils/sdk_level.h b/build/include/android-modules-utils/sdk_level.h index bbb6b46..bbb1cfb 100644 --- a/build/include/android-modules-utils/sdk_level.h +++ b/build/include/android-modules-utils/sdk_level.h
@@ -60,6 +60,12 @@ detail::IsAtLeastPreReleaseCodename("U")); } +// Checks if the device is running on release version of Android V or newer. +inline bool IsAtLeastV() { + return android_get_device_api_level() >= 34 && + detail::IsAtLeastPreReleaseCodename("VanillaIceCream"); +} + } // namespace sdklevel } // namespace modules } // namespace android
diff --git a/java/com/android/modules/utils/build/SdkLevel.java b/java/com/android/modules/utils/build/SdkLevel.java index 4612785..42a1e4f 100644 --- a/java/com/android/modules/utils/build/SdkLevel.java +++ b/java/com/android/modules/utils/build/SdkLevel.java
@@ -64,6 +64,12 @@ (SDK_INT == 33 && isAtLeastPreReleaseCodename("UpsideDownCake")); } + /** Checks if the device is running on a pre-release version of Android V or newer */ + @ChecksSdkIntAtLeast(codename = "VanillaIceCream") + public static boolean isAtLeastV() { + return SDK_INT >= 34 && isAtLeastPreReleaseCodename("VanillaIceCream"); + } + private static boolean isAtLeastPreReleaseCodename(@NonNull String codename) { // Special case "REL", which means the build is not a pre-release build. if ("REL".equals(CODENAME)) {
diff --git a/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java b/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java index 6e32e44..041d6a5 100644 --- a/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java +++ b/java/com/android/modules/utils/build/testing/DeviceSdkLevel.java
@@ -44,22 +44,20 @@ return device.getApiLevel() >= 31; } - /** - * Checks if the device is running on a pre-release version of Android T or a release version of - * Android T or newer. - */ + /** Checks if the device is running on a release version of Android T or newer. */ public boolean isDeviceAtLeastT() throws DeviceNotAvailableException { return device.getApiLevel() >= 33; } - /** - * Checks if the device is running on a pre-release or release version of Android - * UpsideDownCake or newer - */ + /** Checks if the device is running on a (pre-)release version of Android U or newer. */ public boolean isDeviceAtLeastU() throws DeviceNotAvailableException { return device.getApiLevel() >= 34 || - (device.getApiLevel() == 33 && - isDeviceAtLeastPreReleaseCodename("UpsideDownCake")); + (device.getApiLevel() == 33 && isDeviceAtLeastPreReleaseCodename("UpsideDownCake")); + } + + /** Checks if the device is running on a (pre-)release version of Android V or newer. */ + public boolean isDeviceAtLeastV() throws DeviceNotAvailableException { + return device.getApiLevel() >= 34 && isDeviceAtLeastPreReleaseCodename("VanillaIceCream"); } private boolean isDeviceAtLeastPreReleaseCodename(@NonNull String codename)