Update BuildCompat for Sv2 and Tiramisu
Deprecates isAtLeastS() and replaces usages.
Relnote: Adds experimental BuildCompat methods for future SDKs
Fixes: 207528937
Test: BuildCompatTest
Change-Id: Iafd82e20e0c6d54878d352baddb18e86095504a7
diff --git a/appsearch/appsearch-debug-view/src/main/java/androidx/appsearch/debugview/DebugAppSearchManager.java b/appsearch/appsearch-debug-view/src/main/java/androidx/appsearch/debugview/DebugAppSearchManager.java
index 11b6755..720d679 100644
--- a/appsearch/appsearch-debug-view/src/main/java/androidx/appsearch/debugview/DebugAppSearchManager.java
+++ b/appsearch/appsearch-debug-view/src/main/java/androidx/appsearch/debugview/DebugAppSearchManager.java
@@ -34,7 +34,6 @@
import androidx.appsearch.exceptions.AppSearchException;
import androidx.appsearch.localstorage.LocalStorage;
import androidx.appsearch.platformstorage.PlatformStorage;
-import androidx.core.os.BuildCompat;
import androidx.core.util.Preconditions;
import com.google.common.util.concurrent.Futures;
@@ -103,7 +102,7 @@
unused -> debugAppSearchManager, executor);
break;
case AppSearchDebugActivity.STORAGE_TYPE_PLATFORM:
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
debugAppSearchManagerListenableFuture =
Futures.transform(
debugAppSearchManager.initializePlatformStorage(databaseName),
diff --git a/core/core-appdigest/src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java b/core/core-appdigest/src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java
index 9b66d9a..f01b379 100644
--- a/core/core-appdigest/src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java
+++ b/core/core-appdigest/src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java
@@ -53,7 +53,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.concurrent.futures.ResolvableFuture;
-import androidx.core.os.BuildCompat;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
@@ -273,7 +272,7 @@
public void testDefaultChecksums() throws Exception {
Checksum[] checksums = getChecksums(V2V3_PACKAGE_NAME, true, 0, TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(1, checksums.length);
assertEquals(checksums[0].getType(),
android.content.pm.Checksum.TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256);
@@ -300,7 +299,7 @@
Checksum[] checksums = getChecksums(V4_PACKAGE_NAME, true, 0, TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(checksums.length, 6);
// v2/v3 signature use 1M merkle tree.
assertEquals(null, checksums[0].getSplitName());
@@ -344,7 +343,7 @@
Checksum[] checksums = getChecksums(V4_PACKAGE_NAME, true, TYPE_WHOLE_SHA256,
TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(checksums.length, 12);
// v2/v3 signature use 1M merkle tree.
assertEquals(null, checksums[0].getSplitName());
@@ -440,7 +439,7 @@
Checksum[] checksums = getChecksums(FIXED_PACKAGE_NAME, true, 0,
TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(1, checksums.length);
// v2/v3 signature use 1M merkle tree.
assertEquals(TYPE_PARTIAL_MERKLE_ROOT_1M_SHA256, checksums[0].getType());
@@ -498,7 +497,7 @@
Checksum[] checksums = getChecksums(FIXED_PACKAGE_NAME, true, 0,
TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(1, checksums.length);
// v2/v3 signature use 1M merkle tree.
assertEquals(TYPE_PARTIAL_MERKLE_ROOT_1M_SHA512, checksums[0].getType());
@@ -556,7 +555,7 @@
Checksum[] checksums = getChecksums(V2V3_PACKAGE_NAME, true, ALL_CHECKSUMS,
TRUST_NONE);
assertNotNull(checksums);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(checksums.length, 7);
assertEquals(TYPE_WHOLE_MERKLE_ROOT_4K_SHA256, checksums[0].getType());
assertEquals(TYPE_WHOLE_MD5, checksums[1].getType());
@@ -896,7 +895,7 @@
}
private void validateFixedAllChecksums(Checksum[] checksums) {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
validateFixedAllChecksumsFallback(checksums);
return;
}
diff --git a/core/core-appdigest/src/main/java/androidx/core/appdigest/Checksums.java b/core/core-appdigest/src/main/java/androidx/core/appdigest/Checksums.java
index 708626b7..750ac3d 100644
--- a/core/core-appdigest/src/main/java/androidx/core/appdigest/Checksums.java
+++ b/core/core-appdigest/src/main/java/androidx/core/appdigest/Checksums.java
@@ -34,7 +34,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.concurrent.futures.ResolvableFuture;
-import androidx.core.os.BuildCompat;
import androidx.core.util.Preconditions;
import com.google.common.util.concurrent.ListenableFuture;
@@ -116,7 +115,7 @@
Preconditions.checkNotNull(trustedInstallers);
Preconditions.checkNotNull(executor);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
return ChecksumsApiSImpl.getChecksums(context, packageName, includeSplits, required,
trustedInstallers, executor);
}
@@ -156,7 +155,7 @@
}
final String installerPackageName;
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
installerPackageName = ChecksumsApiSImpl.getInstallerPackageName(context, packageName);
} else {
installerPackageName = null;
@@ -239,7 +238,7 @@
try {
final SparseArray<Checksum> checksums = new SparseArray<>();
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
try {
ChecksumsApiSImpl.getInstallerChecksums(context, split, file, required,
installerPackageName, trustedInstallers, checksums);
diff --git a/core/core/api/current.txt b/core/core/api/current.txt
index 399b948..6480cd1 100644
--- a/core/core/api/current.txt
+++ b/core/core/api/current.txt
@@ -1646,7 +1646,7 @@
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
- method @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
}
public final class CancellationSignal {
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/public_plus_experimental_current.txt
index 03bbcc0..5526a5d 100644
--- a/core/core/api/public_plus_experimental_current.txt
+++ b/core/core/api/public_plus_experimental_current.txt
@@ -1646,8 +1646,9 @@
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
- method @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
- method @ChecksSdkIntAtLeast(codename="T") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ method @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+ method @ChecksSdkIntAtLeast(codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
}
@RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index 85539f6..1c85f37 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -1977,7 +1977,7 @@
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
- method @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
}
public final class CancellationSignal {
diff --git a/core/core/src/androidTest/java/androidx/core/os/BuildCompatTest.java b/core/core/src/androidTest/java/androidx/core/os/BuildCompatTest.java
index 93c2ae3..27b0171 100644
--- a/core/core/src/androidTest/java/androidx/core/os/BuildCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/os/BuildCompatTest.java
@@ -34,8 +34,8 @@
@Test
public void isAtLeastPreReleaseCodename() {
assertTrue(BuildCompat.isAtLeastPreReleaseCodename("S", "S"));
- assertTrue(BuildCompat.isAtLeastPreReleaseCodename("S", "T"));
- assertFalse(BuildCompat.isAtLeastPreReleaseCodename("T", "S"));
+ assertTrue(BuildCompat.isAtLeastPreReleaseCodename("S", "Tiramisu"));
+ assertFalse(BuildCompat.isAtLeastPreReleaseCodename("Tiramisu", "S"));
assertTrue(BuildCompat.isAtLeastPreReleaseCodename("O", "OMR1"));
assertFalse(BuildCompat.isAtLeastPreReleaseCodename("OMR1", "O"));
diff --git a/core/core/src/androidTest/java/androidx/core/widget/EdgeEffectCompatTest.java b/core/core/src/androidTest/java/androidx/core/widget/EdgeEffectCompatTest.java
index 6ca1bf9..80537e2 100644
--- a/core/core/src/androidTest/java/androidx/core/widget/EdgeEffectCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/widget/EdgeEffectCompatTest.java
@@ -20,6 +20,7 @@
import android.app.Activity;
import android.content.Context;
+import android.os.Build;
import android.support.v4.BaseInstrumentationTestCase;
import android.support.v4.BaseTestActivity;
import android.util.AttributeSet;
@@ -29,7 +30,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
-import androidx.core.os.BuildCompat;
import androidx.core.test.R;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
@@ -58,7 +58,7 @@
@Test
public void distanceApi() {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(0, EdgeEffectCompat.getDistance(mEdgeEffect), 0f);
assertEquals(1f, EdgeEffectCompat.onPullDistance(mEdgeEffect, 1, 0.5f), 0f);
assertEquals(1, EdgeEffectCompat.getDistance(mEdgeEffect), 0f);
diff --git a/core/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java b/core/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
index 00466d6..db3f6a7 100644
--- a/core/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
+++ b/core/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
@@ -25,12 +25,12 @@
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.GradientDrawable;
+import android.os.Build;
import android.os.Parcelable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
-import androidx.core.os.BuildCompat;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
@@ -317,7 +317,7 @@
swipeDown(false);
assertEquals(0, mNestedScrollView.getScrollY());
swipeUp(true);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
// This should just reverse the overscroll effect
assertEquals(0, mNestedScrollView.getScrollY());
} else {
@@ -339,7 +339,7 @@
swipeUp(false);
assertEquals(scrollRange, mNestedScrollView.getScrollY());
swipeDown(true);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
// This should just reverse the overscroll effect
assertEquals(scrollRange, mNestedScrollView.getScrollY());
} else {
@@ -358,7 +358,7 @@
flingDown();
assertTrue(edgeEffect.getDistance() > 0);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(edgeEffect.getAbsorbed() > 0);
} else {
assertEquals(0, edgeEffect.getAbsorbed());
@@ -382,7 +382,7 @@
assertTrue(edgeEffect.getDistance() > 0);
assertEquals(scrollRange, mNestedScrollView.getScrollY());
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(edgeEffect.getAbsorbed() > 0);
} else {
assertEquals(0, edgeEffect.getAbsorbed());
diff --git a/core/core/src/main/java/androidx/core/app/ActivityCompat.java b/core/core/src/main/java/androidx/core/app/ActivityCompat.java
index 77a8f39..c8f5b71 100644
--- a/core/core/src/main/java/androidx/core/app/ActivityCompat.java
+++ b/core/core/src/main/java/androidx/core/app/ActivityCompat.java
@@ -42,7 +42,6 @@
import androidx.annotation.RestrictTo;
import androidx.core.content.ContextCompat;
import androidx.core.content.LocusIdCompat;
-import androidx.core.os.BuildCompat;
import androidx.core.view.DragAndDropPermissionsCompat;
import java.util.Arrays;
@@ -580,7 +579,7 @@
* </ul>
*/
public static boolean isLaunchedFromBubble(@NonNull Activity activity) {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
return Api31Impl.isLaunchedFromBubble(activity);
} else if (Build.VERSION.SDK_INT == 30) {
return activity.getDisplay() != null
diff --git a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
index 76a9bcd..15b05ac 100644
--- a/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
+++ b/core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
@@ -36,7 +36,6 @@
import androidx.annotation.RestrictTo;
import androidx.collection.ArraySet;
import androidx.core.graphics.drawable.IconCompat;
-import androidx.core.os.BuildCompat;
import java.util.ArrayList;
import java.util.List;
@@ -248,7 +247,7 @@
mBuilder.setLocusId(b.mLocusId.toLocusId());
}
}
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
if (b.mFgsDeferBehavior != NotificationCompat.FOREGROUND_SERVICE_DEFAULT) {
mBuilder.setForegroundServiceBehavior(b.mFgsDeferBehavior);
}
diff --git a/core/core/src/main/java/androidx/core/content/res/ColorStateListInflaterCompat.java b/core/core/src/main/java/androidx/core/content/res/ColorStateListInflaterCompat.java
index 9ea4288..dbf7d45 100644
--- a/core/core/src/main/java/androidx/core/content/res/ColorStateListInflaterCompat.java
+++ b/core/core/src/main/java/androidx/core/content/res/ColorStateListInflaterCompat.java
@@ -22,6 +22,7 @@
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
+import android.os.Build;
import android.util.AttributeSet;
import android.util.Log;
import android.util.StateSet;
@@ -37,7 +38,6 @@
import androidx.annotation.XmlRes;
import androidx.core.R;
import androidx.core.math.MathUtils;
-import androidx.core.os.BuildCompat;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -168,7 +168,7 @@
}
final float lStar;
- if (BuildCompat.isAtLeastS()
+ if (Build.VERSION.SDK_INT >= 31
&& a.hasValue(R.styleable.ColorStateListItem_android_lStar)) {
lStar = a.getFloat(R.styleable.ColorStateListItem_android_lStar, -1.0f);
} else {
diff --git a/core/core/src/main/java/androidx/core/os/BuildCompat.java b/core/core/src/main/java/androidx/core/os/BuildCompat.java
index 8e25696..b1944a6 100644
--- a/core/core/src/main/java/androidx/core/os/BuildCompat.java
+++ b/core/core/src/main/java/androidx/core/os/BuildCompat.java
@@ -162,27 +162,48 @@
* Android S or newer.
*
* @return {@code true} if S APIs are available for use, {@code false} otherwise
+ * @deprecated Android S is a finalized release and this method is no longer necessary. It
+ * will be removed in a future release of this library. Instead, use
+ * {@code Build.VERSION.SDK_INT >= 31}.
*/
@ChecksSdkIntAtLeast(api = 31, codename = "S")
+ @Deprecated
public static boolean isAtLeastS() {
return VERSION.SDK_INT >= 31
|| (VERSION.SDK_INT >= 30 && isAtLeastPreReleaseCodename("S", VERSION.CODENAME));
}
/**
- * 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 pre-release version of Android Sv2 or a release
+ * version of Android Sv2 or newer.
* <p>
- * <strong>Note:</strong> When Android T is finalized for release, this method will be
+ * <strong>Note:</strong> When Android Sv2 is finalized for release, this method will be
* removed and all calls must be replaced with {@code Build.VERSION.SDK_INT >=
- * Build.VERSION_CODES.T}.
+ * Build.VERSION_CODES.S_V2}.
+ *
+ * @return {@code true} if Sv2 APIs are available for use, {@code false} otherwise
+ */
+ @PrereleaseSdkCheck
+ @ChecksSdkIntAtLeast(api = 32, codename = "Sv2")
+ public static boolean isAtLeastSv2() {
+ return VERSION.SDK_INT >= 32
+ || (VERSION.SDK_INT >= 31 && isAtLeastPreReleaseCodename("Sv2", VERSION.CODENAME));
+ }
+
+ /**
+ * Checks if the device is running on a pre-release version of Android Tiramisu or a release
+ * version of Android Tiramisu or newer.
+ * <p>
+ * <strong>Note:</strong> When Android Tiramisu is finalized for release, this method will be
+ * removed and all calls must be replaced with {@code Build.VERSION.SDK_INT >=
+ * Build.VERSION_CODES.TIRAMISU}.
*
* @return {@code true} if T APIs are available for use, {@code false} otherwise
*/
@PrereleaseSdkCheck
- @ChecksSdkIntAtLeast(codename = "T")
+ @ChecksSdkIntAtLeast(codename = "Tiramisu")
public static boolean isAtLeastT() {
- return VERSION.SDK_INT >= 31 && isAtLeastPreReleaseCodename("T", VERSION.CODENAME);
+ return VERSION.SDK_INT >= 32 && isAtLeastPreReleaseCodename("Tiramisu", VERSION.CODENAME);
}
/**
diff --git a/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java b/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
index 24b4ce6..9203f2f 100644
--- a/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
+++ b/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
@@ -73,7 +73,6 @@
import androidx.annotation.RequiresApi;
import androidx.annotation.RestrictTo;
import androidx.core.app.BundleCompat;
-import androidx.core.os.BuildCompat;
import androidx.media.MediaSessionManager;
import androidx.media.MediaSessionManager.RemoteUserInfo;
import androidx.media.VolumeProviderCompat;
@@ -559,7 +558,7 @@
mediaButtonIntent.setComponent(mbrComponent);
mbrIntent = PendingIntent.getBroadcast(context,
0/* requestCode, ignored */, mediaButtonIntent,
- BuildCompat.isAtLeastS() ? PendingIntent.FLAG_MUTABLE : 0);
+ Build.VERSION.SDK_INT >= 31 ? PendingIntent.FLAG_MUTABLE : 0);
}
if (android.os.Build.VERSION.SDK_INT >= 21) {
diff --git a/media/media/src/main/java/androidx/media/session/MediaButtonReceiver.java b/media/media/src/main/java/androidx/media/session/MediaButtonReceiver.java
index f344746..f131f65 100644
--- a/media/media/src/main/java/androidx/media/session/MediaButtonReceiver.java
+++ b/media/media/src/main/java/androidx/media/session/MediaButtonReceiver.java
@@ -37,7 +37,6 @@
import androidx.annotation.RestrictTo;
import androidx.core.content.ContextCompat;
-import androidx.core.os.BuildCompat;
import androidx.media.MediaBrowserServiceCompat;
import java.util.List;
@@ -272,7 +271,7 @@
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
}
return PendingIntent.getBroadcast(context, keyCode, intent,
- BuildCompat.isAtLeastS() ? PendingIntent.FLAG_MUTABLE : 0);
+ Build.VERSION.SDK_INT >= 31 ? PendingIntent.FLAG_MUTABLE : 0);
}
/**
diff --git a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
index aed2cf7..3ec68e1 100644
--- a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
+++ b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
@@ -101,7 +101,6 @@
import android.util.Log;
import android.view.KeyEvent;
-import androidx.core.os.BuildCompat;
import androidx.media.MediaSessionManager.RemoteUserInfo;
import androidx.media.VolumeProviderCompat;
import androidx.media.test.lib.CustomParcelable;
@@ -745,7 +744,7 @@
.setComponent(new ComponentName(getApplicationContext(),
getApplicationContext().getClass()));
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent,
- BuildCompat.isAtLeastS() ? PendingIntent.FLAG_MUTABLE : 0);
+ Build.VERSION.SDK_INT >= 31 ? PendingIntent.FLAG_MUTABLE : 0);
mSession.setMediaButtonReceiver(pi);
// Set state to STATE_PLAYING to get higher priority.
diff --git a/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java b/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
index ed18bd5..8ab279d 100644
--- a/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
+++ b/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
@@ -101,7 +101,6 @@
import android.util.Log;
import android.view.KeyEvent;
-import androidx.core.os.BuildCompat;
import androidx.media.MediaSessionManager.RemoteUserInfo;
import androidx.media.VolumeProviderCompat;
import androidx.media.test.lib.CustomParcelable;
@@ -745,7 +744,7 @@
.setComponent(new ComponentName(getApplicationContext(),
getApplicationContext().getClass()));
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent,
- BuildCompat.isAtLeastS() ? PendingIntent.FLAG_MUTABLE : 0);
+ Build.VERSION.SDK_INT >= 31 ? PendingIntent.FLAG_MUTABLE : 0);
mSession.setMediaButtonReceiver(pi);
// Set state to STATE_PLAYING to get higher priority.
diff --git a/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionImplBase.java b/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionImplBase.java
index 37081ac7..20d9a96 100644
--- a/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionImplBase.java
+++ b/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionImplBase.java
@@ -61,7 +61,6 @@
import androidx.annotation.Nullable;
import androidx.concurrent.futures.AbstractResolvableFuture;
import androidx.concurrent.futures.ResolvableFuture;
-import androidx.core.os.BuildCompat;
import androidx.core.util.ObjectsCompat;
import androidx.media.AudioAttributesCompat;
import androidx.media.MediaBrowserServiceCompat;
@@ -185,7 +184,7 @@
}
mbrComponent = sServiceComponentName;
}
- int pendingIntentFlagMutable = BuildCompat.isAtLeastS() ? PendingIntent.FLAG_MUTABLE : 0;
+ int pendingIntentFlagMutable = Build.VERSION.SDK_INT >= 31 ? PendingIntent.FLAG_MUTABLE : 0;
if (mbrComponent == null) {
// No service to revive playback after it's dead.
// Create a PendingIntent that points to the runtime broadcast receiver.
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
index 3584deaa..43c29f4 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteButton.java
@@ -45,7 +45,6 @@
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.TooltipCompat;
import androidx.core.graphics.drawable.DrawableCompat;
-import androidx.core.os.BuildCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
@@ -399,7 +398,7 @@
*/
private boolean showOutputSwitcher() {
boolean result = false;
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
result = showOutputSwitcherForAndroidSAndAbove();
if (!result) {
// The intent action and related string constants are changed in S,
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/StretchEdgeEffectTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/StretchEdgeEffectTest.java
index e99348e..a4cea9f 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/StretchEdgeEffectTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/StretchEdgeEffectTest.java
@@ -23,12 +23,12 @@
import static org.junit.Assert.assertTrue;
import android.content.Context;
+import android.os.Build;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.widget.EdgeEffect;
import androidx.annotation.NonNull;
-import androidx.core.os.BuildCompat;
import androidx.core.view.InputDeviceCompat;
import androidx.core.widget.EdgeEffectCompat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -85,12 +85,12 @@
scrollToPosition(0);
waitForIdleScroll(mRecyclerView);
scrollHorizontalBy(-3);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(EdgeEffectCompat.getDistance(mFactory.mLeft) > 0);
}
scrollHorizontalBy(4);
assertEquals(0f, EdgeEffectCompat.getDistance(mFactory.mLeft), 0f);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(mFactory.mLeft.isFinished());
}
}
@@ -103,12 +103,12 @@
scrollToPosition(0);
waitForIdleScroll(mRecyclerView);
scrollVerticalBy(3);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(EdgeEffectCompat.getDistance(mFactory.mTop) > 0);
}
scrollVerticalBy(-4);
assertEquals(0f, EdgeEffectCompat.getDistance(mFactory.mTop), 0f);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(mFactory.mTop.isFinished());
}
}
@@ -123,12 +123,12 @@
scrollToPosition(NUM_ITEMS - 1);
waitForIdleScroll(mRecyclerView);
scrollHorizontalBy(3);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(EdgeEffectCompat.getDistance(mFactory.mRight) > 0);
}
scrollHorizontalBy(-4);
assertEquals(0f, EdgeEffectCompat.getDistance(mFactory.mRight), 0f);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(mFactory.mRight.isFinished());
}
}
@@ -141,12 +141,12 @@
scrollToPosition(NUM_ITEMS - 1);
waitForIdleScroll(mRecyclerView);
scrollVerticalBy(-3);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertTrue(EdgeEffectCompat.getDistance(mFactory.mBottom) > 0);
}
scrollVerticalBy(4);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
assertEquals(0f, EdgeEffectCompat.getDistance(mFactory.mBottom), 0f);
assertTrue(mFactory.mBottom.isFinished());
}
@@ -165,7 +165,7 @@
// test flinging right
dragHorizontally(1000);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
mActivityRule.runOnUiThread(() -> {
float pullDistance = EdgeEffectCompat.getDistance(mFactory.mLeft);
assertTrue(pullDistance > 0);
@@ -219,7 +219,7 @@
dragVertically(1000);
Thread.sleep(1000);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
mActivityRule.runOnUiThread(() -> {
float pullDistance = EdgeEffectCompat.getDistance(mFactory.mTop);
assertTrue(pullDistance > 0);
@@ -273,7 +273,7 @@
// test flinging left
dragHorizontally(-1000);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
mActivityRule.runOnUiThread(() -> {
float pullDistance = EdgeEffectCompat.getDistance(mFactory.mRight);
assertTrue(pullDistance > 0);
@@ -328,7 +328,7 @@
// test flinging up
dragVertically(-1000);
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
mActivityRule.runOnUiThread(() -> {
float pullDistance = EdgeEffectCompat.getDistance(mFactory.mBottom);
assertTrue(pullDistance > 0);
diff --git a/viewpager/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java b/viewpager/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
index ca37f4c..20a36e7 100644
--- a/viewpager/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
+++ b/viewpager/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
@@ -55,6 +55,7 @@
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
+import android.os.Build;
import android.support.v4.testutils.TestUtilsMatchers;
import android.text.TextUtils;
import android.util.Pair;
@@ -66,7 +67,6 @@
import android.widget.LinearLayout;
import android.widget.TextView;
-import androidx.core.os.BuildCompat;
import androidx.test.espresso.ViewAction;
import androidx.test.espresso.action.EspressoKey;
import androidx.test.filters.FlakyTest;
@@ -468,7 +468,7 @@
@Test
@MediumTest
public void testFlingAfterStretchAtLeft() {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
CaptureOnAbsorb edgeEffect = new CaptureOnAbsorb(mViewPager.getContext());
mViewPager.mLeftEdge = edgeEffect;
onView(withId(R.id.pager)).perform(ViewPagerActions.wrap(swipeRight()));
@@ -481,7 +481,7 @@
@Test
@MediumTest
public void testFlingAfterStretchAtRight() throws Throwable {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
CaptureOnAbsorb edgeEffect = new CaptureOnAbsorb(mViewPager.getContext());
mViewPager.mRightEdge = edgeEffect;
mActivityTestRule.runOnUiThread(() -> {
diff --git a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/ForegroundWorker.kt b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/ForegroundWorker.kt
index 3a561f2..b1fbac3 100644
--- a/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/ForegroundWorker.kt
+++ b/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/ForegroundWorker.kt
@@ -23,7 +23,6 @@
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat
-import androidx.core.os.BuildCompat
import androidx.work.CoroutineWorker
import androidx.work.Data
import androidx.work.ForegroundInfo
@@ -47,7 +46,7 @@
delay(delayTime)
progress = workDataOf(Progress to i * (100 / range))
setProgress(progress)
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
// No need for notifications starting S.
notificationManager.notify(
notificationId,
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/WorkForegroundRunnableTest.kt b/work/work-runtime/src/androidTest/java/androidx/work/WorkForegroundRunnableTest.kt
index 96ed737..b464e93 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/WorkForegroundRunnableTest.kt
+++ b/work/work-runtime/src/androidTest/java/androidx/work/WorkForegroundRunnableTest.kt
@@ -18,8 +18,8 @@
import android.app.Notification
import android.content.Context
+import android.os.Build
import android.util.Log
-import androidx.core.os.BuildCompat
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import androidx.test.filters.SdkSuppress
@@ -85,7 +85,7 @@
@Test
@MediumTest
public fun callGetForeground_forExpeditedWork1() {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
return
}
val work = getExpeditedRequest<TestWorker>()
@@ -100,7 +100,7 @@
@Test
@SmallTest
public fun callGetForeground_forExpeditedWork2() {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
return
}
@@ -125,7 +125,7 @@
@SmallTest
public fun callGetForeground_forExpeditedWork3() {
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
return
}
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/WorkTest.java b/work/work-runtime/src/androidTest/java/androidx/work/WorkTest.java
index 67c6b6c..9b3b8ff 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/WorkTest.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/WorkTest.java
@@ -24,7 +24,8 @@
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
-import androidx.core.os.BuildCompat;
+import android.os.Build;
+
import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
import androidx.work.impl.model.WorkSpec;
@@ -146,7 +147,7 @@
@Test
public void testBuild_expedited_noConstraints() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -160,7 +161,7 @@
@Test
public void testBuild_expedited_networkConstraints() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -178,7 +179,7 @@
@Test
public void testBuild_expedited_networkStorageConstraints() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -197,7 +198,7 @@
@Test
public void testBuild_expedited_withUnspportedConstraints() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -218,7 +219,7 @@
@Test
public void testBuild_expedited_withUnspportedConstraints2() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
diff --git a/work/work-runtime/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java b/work/work-runtime/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
index e617d84..327bac6 100644
--- a/work/work-runtime/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
+++ b/work/work-runtime/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
@@ -35,7 +35,6 @@
import android.net.Uri;
import android.os.Build;
-import androidx.core.os.BuildCompat;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SdkSuppress;
@@ -245,7 +244,7 @@
@Test
@SmallTest
public void testConvert_expedited() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -258,7 +257,7 @@
@Test
@SmallTest
public void testConvertExpeditedJobs_retriesAreNotExpedited() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
@@ -272,7 +271,7 @@
@Test
@SmallTest
public void testConvertExpeditedJobs_delaysAreNotExpedited() {
- if (!BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT < 31) {
return;
}
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/WorkManagerImpl.java b/work/work-runtime/src/main/java/androidx/work/impl/WorkManagerImpl.java
index ed8718c..393a553 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/WorkManagerImpl.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/WorkManagerImpl.java
@@ -32,7 +32,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.arch.core.util.Function;
-import androidx.core.os.BuildCompat;
import androidx.lifecycle.LiveData;
import androidx.work.Configuration;
import androidx.work.ExistingPeriodicWorkPolicy;
@@ -478,7 +477,7 @@
public PendingIntent createCancelPendingIntent(@NonNull UUID id) {
Intent intent = createCancelWorkIntent(mContext, id.toString());
int flags = FLAG_UPDATE_CURRENT;
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
flags |= FLAG_MUTABLE;
}
return PendingIntent.getService(mContext, 0, intent, flags);
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java b/work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
index e6f605d..527c6d6 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java
@@ -31,7 +31,6 @@
import androidx.annotation.RequiresApi;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
-import androidx.core.os.BuildCompat;
import androidx.work.BackoffPolicy;
import androidx.work.Constraints;
import androidx.work.ContentUriTriggers;
@@ -128,7 +127,7 @@
// Retries cannot be expedited jobs, given they will occur at some point in the future.
boolean isRetry = workSpec.runAttemptCount > 0;
boolean isDelayed = offset > 0;
- if (BuildCompat.isAtLeastS() && workSpec.expedited && !isRetry && !isDelayed) {
+ if (Build.VERSION.SDK_INT >= 31 && workSpec.expedited && !isRetry && !isDelayed) {
//noinspection NewApi
builder.setExpedited(true);
}
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java b/work/work-runtime/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java
index 4643fbf..ec6db5f 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/utils/ForceStopRunnable.java
@@ -46,7 +46,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
-import androidx.core.os.BuildCompat;
import androidx.work.Configuration;
import androidx.work.InitializationExceptionHandler;
import androidx.work.Logger;
@@ -164,7 +163,7 @@
// something different.
try {
int flags = FLAG_NO_CREATE;
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
flags |= FLAG_MUTABLE;
}
PendingIntent pendingIntent = getPendingIntent(mContext, flags);
@@ -346,7 +345,7 @@
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// Using FLAG_UPDATE_CURRENT, because we only ever want once instance of this alarm.
int flags = FLAG_UPDATE_CURRENT;
- if (BuildCompat.isAtLeastS()) {
+ if (Build.VERSION.SDK_INT >= 31) {
flags |= FLAG_MUTABLE;
}
PendingIntent pendingIntent = getPendingIntent(context, flags);
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/utils/WorkForegroundRunnable.java b/work/work-runtime/src/main/java/androidx/work/impl/utils/WorkForegroundRunnable.java
index d8cd1a5..98a1986 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/utils/WorkForegroundRunnable.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/utils/WorkForegroundRunnable.java
@@ -18,10 +18,10 @@
import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
-import androidx.core.os.BuildCompat;
import androidx.work.ForegroundInfo;
import androidx.work.ForegroundUpdater;
import androidx.work.ListenableWorker;
@@ -73,7 +73,7 @@
@Override
@SuppressLint("UnsafeExperimentalUsageError")
public void run() {
- if (!mWorkSpec.expedited || BuildCompat.isAtLeastS()) {
+ if (!mWorkSpec.expedited || Build.VERSION.SDK_INT >= 31) {
mFuture.set(null);
return;
}