[go: nahoru, domu]

Remove KITKAT mentions in *.java files

Relnote: N/A
Test: refactoring
Change-Id: I691d6fa16803312a6a890f348a22ba1b99629ddd
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/view/ActionBarPolicy.java b/appcompat/appcompat/src/main/java/androidx/appcompat/view/ActionBarPolicy.java
index 9566fa3..9d0943c 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/view/ActionBarPolicy.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/view/ActionBarPolicy.java
@@ -23,7 +23,6 @@
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.os.Build;
-import android.view.ViewConfiguration;
 
 import androidx.annotation.RestrictTo;
 import androidx.appcompat.R;
@@ -74,11 +73,7 @@
     }
 
     public boolean showsOverflowMenuButton() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return true;
-        } else {
-            return !ViewConfiguration.get(mContext).hasPermanentMenuKey();
-        }
+        return true;
     }
 
     public int getEmbeddedMenuWidthLimit() {
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
index 985c7e2..8fc7067 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/widget/ActionBarOverlayLayout.java
@@ -78,7 +78,6 @@
 
     // Content overlay drawable - generally the action bar's shadow
     private Drawable mWindowContentOverlay;
-    private boolean mIgnoreWindowContentOverlay;
 
     private boolean mOverlayMode;
     private boolean mHasNonEmbeddedTabs;
@@ -168,9 +167,6 @@
         setWillNotDraw(mWindowContentOverlay == null);
         ta.recycle();
 
-        mIgnoreWindowContentOverlay = context.getApplicationInfo().targetSdkVersion <
-                Build.VERSION_CODES.KITKAT;
-
         mFlingEstimator = new OverScroller(context);
     }
 
@@ -196,14 +192,6 @@
 
     public void setOverlayMode(boolean overlayMode) {
         mOverlayMode = overlayMode;
-
-        /*
-         * Drawing the window content overlay was broken before K so starting to draw it
-         * again unexpectedly will cause artifacts in some apps. They should fix it.
-         */
-        mIgnoreWindowContentOverlay = overlayMode &&
-                getContext().getApplicationInfo().targetSdkVersion <
-                        Build.VERSION_CODES.KITKAT;
     }
 
     public boolean isInOverlayMode() {
@@ -538,7 +526,7 @@
     @Override
     public void draw(@NonNull Canvas c) {
         super.draw(c);
-        if (mWindowContentOverlay != null && !mIgnoreWindowContentOverlay) {
+        if (mWindowContentOverlay != null) {
             final int top = mActionBarTop.getVisibility() == VISIBLE ?
                     (int) (mActionBarTop.getBottom() + mActionBarTop.getTranslationY() + 0.5f)
                     : 0;
diff --git a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
index a0f89e9..0c4eff7 100644
--- a/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
+++ b/biometric/biometric/src/main/java/androidx/biometric/BiometricFragment.java
@@ -449,11 +449,6 @@
             return;
         }
 
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
-            Log.e(TAG, "Unable to show fingerprint dialog on API <19.");
-            return;
-        }
-
         if (isAdded()) {
             mViewModel.setFingerprintDialogDismissedInstantly(true);
             if (!DeviceUtils.shouldHideFingerprintDialog(context, Build.MODEL)) {
diff --git a/biometric/biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java b/biometric/biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java
index ac10446..878dfad 100644
--- a/biometric/biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java
+++ b/biometric/biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java
@@ -149,7 +149,6 @@
      *
      * @return A {@link FingerprintDialogFragment}.
      */
-    @RequiresApi(Build.VERSION_CODES.KITKAT)
     @NonNull
     static FingerprintDialogFragment newInstance(boolean hostedInActivity) {
         final FingerprintDialogFragment fragment = new FingerprintDialogFragment();
diff --git a/constraintlayout/constraintlayout/src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java b/constraintlayout/constraintlayout/src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java
index 9da084d..1c10668 100644
--- a/constraintlayout/constraintlayout/src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java
+++ b/constraintlayout/constraintlayout/src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java
@@ -1517,12 +1517,10 @@
                     mBeginState = mScene.getStartId();
                     mEndState = mScene.getEndId();
                 }
-                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT || isAttachedToWindow()) {
+                if (isAttachedToWindow()) {
                     try {
-                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
-                            Display display = getDisplay();
-                            mPreviouseRotation = (display == null) ? 0 : display.getRotation();
-                        }
+                        Display display = getDisplay();
+                        mPreviouseRotation = (display == null) ? 0 : display.getRotation();
 
                         if (mScene != null) {
                             ConstraintSet cSet = mScene.getConstraintSet(mCurrentState);
@@ -1576,17 +1574,6 @@
     }
 
     /**
-     * Returns true if the provided view is currently attached to a window.
-     */
-    @Override
-    public boolean isAttachedToWindow() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return super.isAttachedToWindow();
-        }
-        return getWindowToken() != null;
-    }
-
-    /**
      * Set the State of the Constraint layout. Causing it to load a particular ConstraintSet.
      * for states with variants the variant with matching
      * width and height constraintSet will be chosen
diff --git a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
index 216a2317f..d0e1c235 100644
--- a/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
@@ -1549,13 +1549,10 @@
                         .setBigContentTitle("Big Content Title")
                         .setSummaryText("Summary Text"))
                 .build();
-        // Extras are not populated before KITKAT
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            Bundle extras = NotificationCompat.getExtras(n);
-            assertNotNull(extras);
-            assertTrue(extras.containsKey(NotificationCompat.EXTRA_LARGE_ICON_BIG));
-            assertNull(extras.get(NotificationCompat.EXTRA_LARGE_ICON_BIG));
-        }
+        Bundle extras = NotificationCompat.getExtras(n);
+        assertNotNull(extras);
+        assertTrue(extras.containsKey(NotificationCompat.EXTRA_LARGE_ICON_BIG));
+        assertNull(extras.get(NotificationCompat.EXTRA_LARGE_ICON_BIG));
     }
 
     @SdkSuppress(minSdkVersion = 23)
diff --git a/core/core/src/androidTest/java/androidx/core/content/PackageManagerCompatTest.java b/core/core/src/androidTest/java/androidx/core/content/PackageManagerCompatTest.java
index d612ba4..ebe6103 100644
--- a/core/core/src/androidTest/java/androidx/core/content/PackageManagerCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/content/PackageManagerCompatTest.java
@@ -48,10 +48,8 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ProviderInfo;
 import android.content.pm.ResolveInfo;
-import android.os.Build;
 import android.os.UserManager;
 
-import androidx.annotation.RequiresApi;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
@@ -317,7 +315,6 @@
      * Setup applications with the verifier role can handle unused app restriction features. In
      * this case, they are permission revocation apps.
      */
-    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @SuppressWarnings("deprecation")
     static void setupPermissionRevocationApps(
             PackageManager packageManager, List<String> packageNames) {
diff --git a/core/core/src/androidTest/java/androidx/core/graphics/BitmapCompatTest.java b/core/core/src/androidTest/java/androidx/core/graphics/BitmapCompatTest.java
index 0c5e39a..ae50a71 100644
--- a/core/core/src/androidTest/java/androidx/core/graphics/BitmapCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/graphics/BitmapCompatTest.java
@@ -30,7 +30,6 @@
 import android.hardware.HardwareBuffer;
 import android.os.Build;
 
-import androidx.annotation.RequiresApi;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
@@ -39,7 +38,6 @@
 import org.junit.runner.RunWith;
 
 @RunWith(AndroidJUnit4.class)
-@RequiresApi(api = Build.VERSION_CODES.KITKAT)
 @SmallTest
 public class BitmapCompatTest {
 
@@ -381,7 +379,6 @@
     // For a resize smaller than 1/2 of the original dimensions, the result should basically be
     // uniform grey, so the higher quality the resize, the lower the variance in grey values is
     // expected to be.
-    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
     private void scaledBitmapAndAssertQuality(int scaledWidth, int scaledHeight,
             boolean scaleInLinearSpace,
             float expectedMeanValue, float expectedVariance, Bitmap.Config inputConfig) {
@@ -435,7 +432,6 @@
     }
 
     @Test
-    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
     public void testQualityDownscaleNonLinear() {
         scaledBitmapAndAssertQuality(19, 19, false, 127.0f, DOWNSCALE_VARIANCE,
                 Bitmap.Config.ARGB_8888);
@@ -449,7 +445,6 @@
     }
 
     @Test
-    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
     public void testQualityUpscaleNonLinear() {
         scaledBitmapAndAssertQuality(1213, 1213, false, 127.0f, UPSCALE_VARIANCE,
                 Bitmap.Config.ARGB_8888);
diff --git a/core/core/src/main/java/androidx/core/provider/DocumentsContractCompat.java b/core/core/src/main/java/androidx/core/provider/DocumentsContractCompat.java
index 3765bfc..923f3c4 100644
--- a/core/core/src/main/java/androidx/core/provider/DocumentsContractCompat.java
+++ b/core/core/src/main/java/androidx/core/provider/DocumentsContractCompat.java
@@ -66,10 +66,7 @@
      * @see DocumentsContract#isDocumentUri(Context, Uri)
      */
     public static boolean isDocumentUri(@NonNull Context context, @Nullable Uri uri) {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return DocumentsContractApi19Impl.isDocumentUri(context, uri);
-        }
-        return false;
+        return DocumentsContract.isDocumentUri(context, uri);
     }
 
     /**
@@ -96,10 +93,7 @@
      */
     @Nullable
     public static String getDocumentId(@NonNull Uri documentUri) {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return DocumentsContractApi19Impl.getDocumentId(documentUri);
-        }
-        return null;
+        return DocumentsContract.getDocumentId(documentUri);
     }
 
     /**
@@ -124,10 +118,7 @@
      */
     @Nullable
     public static Uri buildDocumentUri(@NonNull String authority, @NonNull String documentId) {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return DocumentsContractApi19Impl.buildDocumentUri(authority, documentId);
-        }
-        return null;
+        return DocumentsContract.buildDocumentUri(authority, documentId);
     }
 
     /**
@@ -243,39 +234,9 @@
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
             return DocumentsContractApi24Impl.removeDocument(content, documentUri,
                     parentDocumentUri);
-        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            return DocumentsContractApi19Impl.deleteDocument(content, documentUri);
         } else {
-            return false;
-        }
-    }
-
-    @RequiresApi(19)
-    private static class DocumentsContractApi19Impl {
-
-        @DoNotInline
-        public static Uri buildDocumentUri(String authority, String documentId) {
-            return DocumentsContract.buildDocumentUri(authority, documentId);
-        }
-
-        @DoNotInline
-        static boolean isDocumentUri(Context context, @Nullable Uri uri) {
-            return DocumentsContract.isDocumentUri(context, uri);
-        }
-
-        @DoNotInline
-        static String getDocumentId(Uri documentUri) {
-            return DocumentsContract.getDocumentId(documentUri);
-        }
-
-        @DoNotInline
-        static boolean deleteDocument(ContentResolver content, Uri documentUri)
-                throws FileNotFoundException {
             return DocumentsContract.deleteDocument(content, documentUri);
         }
-
-        private DocumentsContractApi19Impl() {
-        }
     }
 
     @RequiresApi(21)
diff --git a/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiEditableFactoryTest.java b/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiEditableFactoryTest.java
index ffa1803..df55f27 100644
--- a/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiEditableFactoryTest.java
+++ b/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiEditableFactoryTest.java
@@ -24,12 +24,10 @@
 import static org.mockito.Mockito.mock;
 
 import android.annotation.SuppressLint;
-import android.os.Build;
 import android.text.Editable;
 import android.text.SpannableString;
 import android.text.Spanned;
 
-import androidx.annotation.RequiresApi;
 import androidx.emoji2.text.EmojiSpan;
 import androidx.emoji2.text.SpannableBuilder;
 import androidx.emoji2.text.TypefaceEmojiRasterizer;
@@ -60,7 +58,6 @@
         assertThat(editable, instanceOf(Editable.class));
     }
 
-    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @Test
     public void testNewEditable_preservesCharSequenceData() {
         final String string = "abc";
diff --git a/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java b/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java
index 71dfe18..b8e13b7 100644
--- a/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java
+++ b/emoji2/emoji2-views-helper/src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java
@@ -30,14 +30,12 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.os.Build;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
 import android.text.method.TransformationMethod;
 import android.view.View;
 
-import androidx.annotation.RequiresApi;
 import androidx.emoji2.text.EmojiCompat;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
@@ -49,7 +47,6 @@
 import org.mockito.stubbing.Answer;
 
 @SmallTest
-@RequiresApi(api = Build.VERSION_CODES.KITKAT)
 @RunWith(AndroidJUnit4.class)
 public class EmojiTransformationMethodTest {
 
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java
index 648f1bd..812a223 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java
@@ -19,12 +19,9 @@
 import static org.mockito.Mockito.mock;
 
 import android.graphics.Typeface;
-import android.os.Build;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.RequiresApi;
 
-@RequiresApi(api = Build.VERSION_CODES.KITKAT)
 public class NoFontTestEmojiConfig extends EmojiCompat.Config {
 
     static EmojiCompat.Config emptyConfig() {
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
index d0ba42d..3e7d8ca 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SpannableBuilderTest.java
@@ -35,7 +35,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.withSettings;
 
-import android.os.Build;
 import android.text.DynamicLayout;
 import android.text.Editable;
 import android.text.Layout;
@@ -46,7 +45,6 @@
 import android.text.style.QuoteSpan;
 import android.text.style.TypefaceSpan;
 
-import androidx.annotation.RequiresApi;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
@@ -127,7 +125,6 @@
         assertEquals(1, start);
     }
 
-    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @Test
     public void testBlocksSpanCallbacks_forEmojiSpans() {
         final EmojiSpan span = mock(EmojiSpan.class);
@@ -189,7 +186,6 @@
         verify(mWatcher, times(1)).afterTextChanged(any(Editable.class));
     }
 
-    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @Test
     public void testDoesNotBlockSpanCallbacksForOtherWatchers() {
         final TextWatcher textWatcher = mock(TextWatcher.class);
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
index 1cbaa74..a4b38df 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
@@ -23,11 +23,9 @@
 import android.graphics.Bitmap;
 import android.graphics.Rect;
 import android.graphics.drawable.BitmapDrawable;
-import android.os.Build;
 
 import androidx.leanback.graphics.BoundsRule.ValueRule;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
 
@@ -161,7 +159,6 @@
     }
 
 
-    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
     @Test
     public void constantState() {
         Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
index 43cf638..6212404 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
@@ -24,11 +24,9 @@
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Rect;
-import android.os.Build;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 
 import org.junit.Test;
@@ -69,7 +67,6 @@
     }
 
     @SmallTest
-    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
     @Test
     public void constantState() {
         FitWidthBitmapDrawable drawable = new FitWidthBitmapDrawable();
diff --git a/leanback/leanback/src/main/java/androidx/leanback/app/BackgroundManager.java b/leanback/leanback/src/main/java/androidx/leanback/app/BackgroundManager.java
index 30d9e17..3fc4c83 100644
--- a/leanback/leanback/src/main/java/androidx/leanback/app/BackgroundManager.java
+++ b/leanback/leanback/src/main/java/androidx/leanback/app/BackgroundManager.java
@@ -353,8 +353,7 @@
                 // For each child drawable, we multiple Wrapper's alpha and LayerDrawable's alpha
                 // temporarily using mSuspendInvalidation to suppress invalidate event.
                 if (mWrapper[i] != null && (d = mWrapper[i].getDrawable()) != null) {
-                    int alpha = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
-                            ? DrawableCompat.getAlpha(d) : FULL_ALPHA;
+                    int alpha = DrawableCompat.getAlpha(d);
                     final int savedAlpha = alpha;
                     int multiple = 0;
                     if (mAlpha < FULL_ALPHA) {
diff --git a/media/media/src/main/java/androidx/media/AudioFocusRequestCompat.java b/media/media/src/main/java/androidx/media/AudioFocusRequestCompat.java
index d79fdc5..a126a53 100644
--- a/media/media/src/main/java/androidx/media/AudioFocusRequestCompat.java
+++ b/media/media/src/main/java/androidx/media/AudioFocusRequestCompat.java
@@ -263,10 +263,6 @@
                 throw new IllegalArgumentException("Illegal audio focus gain type " + focusGain);
             }
 
-            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT
-                    && focusGain == AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE) {
-                focusGain = AudioManagerCompat.AUDIOFOCUS_GAIN_TRANSIENT;
-            }
             mFocusGain = focusGain;
             return this;
         }
diff --git a/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java b/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
index c12fa6e..11585c6 100644
--- a/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
+++ b/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
@@ -1349,8 +1349,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MKV_H265_1280x720_500kbps_25fps_AAC_Stereo_128kbps_44100Hz()
             throws Exception {
         playVideoTest(
@@ -1359,8 +1358,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_500kbps_25fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1369,8 +1367,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_500kbps_30fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1379,8 +1376,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1000kbps_25fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1389,8 +1385,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1000kbps_30fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1399,8 +1394,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1350kbps_25fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1409,8 +1403,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1350kbps_30fps_AAC_Stereo_128kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1419,8 +1412,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1350kbps_30fps_AAC_Stereo_128kbps_44110Hz_frag()
             throws Exception {
         playVideoTest(
@@ -1430,8 +1422,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_MP4_H264_480x360_1350kbps_30fps_AAC_Stereo_192kbps_44110Hz()
             throws Exception {
         playVideoTest(
@@ -1440,8 +1431,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Mono_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1450,8 +1440,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Mono_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1460,8 +1449,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Stereo_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1470,8 +1458,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Stereo_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1480,8 +1467,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Stereo_128kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1490,8 +1476,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_12fps_AAC_Stereo_128kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1500,8 +1485,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Mono_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1510,8 +1494,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Mono_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1520,8 +1503,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Stereo_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1530,8 +1512,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Stereo_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1540,8 +1521,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Stereo_128kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1550,8 +1530,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_56kbps_25fps_AAC_Stereo_128kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1560,8 +1539,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Mono_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1570,8 +1548,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Mono_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1580,8 +1557,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Stereo_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1590,8 +1566,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Stereo_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1600,8 +1575,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Stereo_128kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1610,8 +1584,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_12fps_AAC_Stereo_128kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1620,8 +1593,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Mono_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1630,8 +1602,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Mono_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1640,8 +1611,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Stereo_24kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1650,8 +1620,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Stereo_24kbps_22050Hz()
             throws Exception {
         playVideoTest(
@@ -1660,8 +1629,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Stereo_128kbps_11025Hz()
             throws Exception {
         playVideoTest(
@@ -1670,8 +1638,7 @@
 
     @Test
     @LargeTest
-    @SdkSuppress(
-            minSdkVersion = Build.VERSION_CODES.KITKAT, maxSdkVersion = Build.VERSION_CODES.O_MR1)
+    @SdkSuppress(maxSdkVersion = Build.VERSION_CODES.O_MR1)
     public void localVideo_3gp_H263_176x144_300kbps_25fps_AAC_Stereo_128kbps_22050Hz()
             throws Exception {
         playVideoTest(
diff --git a/media2/media2-session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java b/media2/media2-session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
index 6104b39..c12f098 100644
--- a/media2/media2-session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
+++ b/media2/media2-session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
@@ -39,7 +39,6 @@
 import androidx.media2.test.service.R;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.filters.SdkSuppress;
 
 import org.junit.After;
 import org.junit.Before;
@@ -54,7 +53,6 @@
  * In order to get the media key events, the player state is set to 'Playing' before every test
  * method.
  */
-@SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT) // For AudioManager#dispatchMediaKeyEvent()
 @RunWith(AndroidJUnit4.class)
 @LargeTest
 public class MediaSession_KeyEventTest extends MediaSessionTestBase {
diff --git a/media2/media2-session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java b/media2/media2-session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
index 6104b39..c12f098 100644
--- a/media2/media2-session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
+++ b/media2/media2-session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
@@ -39,7 +39,6 @@
 import androidx.media2.test.service.R;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.filters.SdkSuppress;
 
 import org.junit.After;
 import org.junit.Before;
@@ -54,7 +53,6 @@
  * In order to get the media key events, the player state is set to 'Playing' before every test
  * method.
  */
-@SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT) // For AudioManager#dispatchMediaKeyEvent()
 @RunWith(AndroidJUnit4.class)
 @LargeTest
 public class MediaSession_KeyEventTest extends MediaSessionTestBase {
diff --git a/profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstaller.java b/profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstaller.java
index 70f4305..61a098e 100644
--- a/profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstaller.java
+++ b/profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstaller.java
@@ -21,7 +21,6 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.res.AssetManager;
-import android.os.Build;
 import android.util.Log;
 
 import androidx.annotation.IntDef;
@@ -423,10 +422,6 @@
             @NonNull Executor executor,
             @NonNull DiagnosticsCallback diagnostics
     ) {
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
-            result(executor, diagnostics, ProfileInstaller.RESULT_UNSUPPORTED_ART_VERSION, null);
-            return false;
-        }
         File curProfile = new File(new File(PROFILE_BASE_DIR, packageName), PROFILE_FILE);
 
         DeviceProfileWriter deviceProfileWriter = new DeviceProfileWriter(assets, executor,
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityTest.java
index a6d44ad..69ee2cf 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityTest.java
@@ -22,7 +22,6 @@
 import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
-import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 import android.view.ViewGroup;
@@ -52,8 +51,6 @@
 @SmallTest
 @RunWith(Parameterized.class)
 public class RecyclerViewAccessibilityTest extends BaseRecyclerViewInstrumentationTest {
-    private static final boolean SUPPORTS_COLLECTION_INFO =
-            Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
     private final boolean mVerticalScrollBefore;
     private final boolean mHorizontalScrollBefore;
     private final boolean mVerticalScrollAfter;
@@ -164,16 +161,14 @@
                 (info.getActions() & AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD) != 0);
         assertEquals(mHorizontalScrollAfter || mVerticalScrollAfter,
                 (info.getActions() & AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD) != 0);
-        if (SUPPORTS_COLLECTION_INFO) {
-            final AccessibilityNodeInfoCompat.CollectionInfoCompat collectionInfo = info
-                    .getCollectionInfo();
-            assertNotNull(collectionInfo);
-            if (recyclerView.getLayoutManager().canScrollVertically()) {
-                assertEquals(adapter.getItemCount(), collectionInfo.getRowCount());
-            }
-            if (recyclerView.getLayoutManager().canScrollHorizontally()) {
-                assertEquals(adapter.getItemCount(), collectionInfo.getColumnCount());
-            }
+        final AccessibilityNodeInfoCompat.CollectionInfoCompat collectionInfo = info
+                .getCollectionInfo();
+        assertNotNull(collectionInfo);
+        if (recyclerView.getLayoutManager().canScrollVertically()) {
+            assertEquals(adapter.getItemCount(), collectionInfo.getRowCount());
+        }
+        if (recyclerView.getLayoutManager().canScrollHorizontally()) {
+            assertEquals(adapter.getItemCount(), collectionInfo.getColumnCount());
         }
 
         final AccessibilityEvent event = AccessibilityEvent.obtain();
@@ -188,31 +183,29 @@
         assertEquals(event.getItemCount(), adapter.getItemCount());
 
         getInstrumentation().waitForIdleSync();
-        if (SUPPORTS_COLLECTION_INFO) {
-            for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
-                final View view = mRecyclerView.getChildAt(i);
-                final AccessibilityNodeInfoCompat childInfo = AccessibilityNodeInfoCompat.obtain();
-                mActivityRule.runOnUiThread(new Runnable() {
-                    @Override
-                    public void run() {
-                        delegateCompat.getItemDelegate().
-                                onInitializeAccessibilityNodeInfo(view, childInfo);
-                    }
-                });
-                final AccessibilityNodeInfoCompat.CollectionItemInfoCompat collectionItemInfo =
-                        childInfo.getCollectionItemInfo();
-                assertNotNull(collectionItemInfo);
-                if (recyclerView.getLayoutManager().canScrollHorizontally()) {
-                    assertEquals(i, collectionItemInfo.getColumnIndex());
-                } else {
-                    assertEquals(0, collectionItemInfo.getColumnIndex());
+        for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
+            final View view = mRecyclerView.getChildAt(i);
+            final AccessibilityNodeInfoCompat childInfo = AccessibilityNodeInfoCompat.obtain();
+            mActivityRule.runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    delegateCompat.getItemDelegate()
+                            .onInitializeAccessibilityNodeInfo(view, childInfo);
                 }
+            });
+            final AccessibilityNodeInfoCompat.CollectionItemInfoCompat collectionItemInfo =
+                    childInfo.getCollectionItemInfo();
+            assertNotNull(collectionItemInfo);
+            if (recyclerView.getLayoutManager().canScrollHorizontally()) {
+                assertEquals(i, collectionItemInfo.getColumnIndex());
+            } else {
+                assertEquals(0, collectionItemInfo.getColumnIndex());
+            }
 
-                if (recyclerView.getLayoutManager().canScrollVertically()) {
-                    assertEquals(i, collectionItemInfo.getRowIndex());
-                } else {
-                    assertEquals(0, collectionItemInfo.getRowIndex());
-                }
+            if (recyclerView.getLayoutManager().canScrollVertically()) {
+                assertEquals(i, collectionItemInfo.getRowIndex());
+            } else {
+                assertEquals(0, collectionItemInfo.getRowIndex());
             }
         }
 
diff --git a/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java b/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
index 229e42c..f3f5672 100644
--- a/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
+++ b/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
@@ -29,7 +29,6 @@
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.drawable.Icon;
-import android.os.Build;
 
 import androidx.annotation.NonNull;
 import androidx.core.app.Person;
@@ -39,7 +38,6 @@
 import androidx.sharetarget.test.R;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 
 import com.google.common.util.concurrent.ListenableFuture;
@@ -56,7 +54,6 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 
-@SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT)
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class ShortcutInfoCompatSaverTest {
diff --git a/transition/transition/src/main/java/androidx/transition/TransitionUtils.java b/transition/transition/src/main/java/androidx/transition/TransitionUtils.java
index 960a640..3e323a0d 100644
--- a/transition/transition/src/main/java/androidx/transition/TransitionUtils.java
+++ b/transition/transition/src/main/java/androidx/transition/TransitionUtils.java
@@ -36,10 +36,6 @@
 class TransitionUtils {
 
     private static final int MAX_IMAGE_SIZE = 1024 * 1024;
-    private static final boolean HAS_IS_ATTACHED_TO_WINDOW =
-            Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
-    private static final boolean HAS_OVERLAY =
-            Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
     private static final boolean HAS_PICTURE_BITMAP =
             Build.VERSION.SDK_INT >= Build.VERSION_CODES.P;
 
@@ -94,22 +90,18 @@
             ViewGroup sceneRoot) {
         final boolean addToOverlay;
         final boolean sceneRootIsAttached;
-        if (HAS_IS_ATTACHED_TO_WINDOW) {
-            addToOverlay = !Api19Impl.isAttachedToWindow(view);
-            sceneRootIsAttached = sceneRoot != null && Api19Impl.isAttachedToWindow(sceneRoot);
-        } else {
-            addToOverlay = false;
-            sceneRootIsAttached = false;
-        }
+        addToOverlay = !view.isAttachedToWindow();
+        sceneRootIsAttached = sceneRoot != null && sceneRoot.isAttachedToWindow();
         ViewGroup parent = null;
         int indexInParent = 0;
-        if (HAS_OVERLAY && addToOverlay) {
+        if (addToOverlay) {
             if (!sceneRootIsAttached) {
                 return null;
             }
             parent = (ViewGroup) view.getParent();
             indexInParent = parent.indexOfChild(view);
-            Api18Impl.getOverlayAndAdd(sceneRoot, view);
+            ViewGroupOverlay result = sceneRoot.getOverlay();
+            result.add(view);
         }
         Bitmap bitmap = null;
         int bitmapWidth = Math.round(bounds.width());
@@ -137,8 +129,9 @@
                 view.draw(canvas);
             }
         }
-        if (HAS_OVERLAY && addToOverlay) {
-            Api18Impl.getOverlayAndRemove(sceneRoot, view);
+        if (addToOverlay) {
+            ViewGroupOverlay result = sceneRoot.getOverlay();
+            result.remove(view);
             parent.addView(view, indexInParent);
         }
         return bitmap;
@@ -180,26 +173,6 @@
 
     private TransitionUtils() { }
 
-    @RequiresApi(18)
-    static class Api18Impl {
-        private Api18Impl() {
-            // This class is not instantiable.
-        }
-
-        @DoNotInline
-        static ViewGroupOverlay getOverlayAndAdd(ViewGroup viewGroup, View toAdd) {
-            ViewGroupOverlay result = viewGroup.getOverlay();
-            result.add(toAdd);
-            return result;
-        }
-
-        @DoNotInline
-        static ViewGroupOverlay getOverlayAndRemove(ViewGroup viewGroup, View toRemove) {
-            ViewGroupOverlay result = viewGroup.getOverlay();
-            result.remove(toRemove);
-            return result;
-        }
-    }
     @RequiresApi(28)
     static class Api28Impl {
         private Api28Impl() {
@@ -212,15 +185,4 @@
         }
 
     }
-    @RequiresApi(19)
-    static class Api19Impl {
-        private Api19Impl() {
-            // This class is not instantiable.
-        }
-
-        @DoNotInline
-        static boolean isAttachedToWindow(View view) {
-            return view.isAttachedToWindow();
-        }
-    }
 }
diff --git a/transition/transition/src/main/java/androidx/transition/ViewUtils.java b/transition/transition/src/main/java/androidx/transition/ViewUtils.java
index 7d609b0..1cd039c 100644
--- a/transition/transition/src/main/java/androidx/transition/ViewUtils.java
+++ b/transition/transition/src/main/java/androidx/transition/ViewUtils.java
@@ -31,7 +31,7 @@
  */
 class ViewUtils {
 
-    private static final ViewUtilsBase IMPL;
+    private static final ViewUtilsApi19 IMPL;
     private static final String TAG = "ViewUtils";
 
     static {
@@ -43,10 +43,8 @@
             IMPL = new ViewUtilsApi22();
         } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
             IMPL = new ViewUtilsApi21();
-        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            IMPL = new ViewUtilsApi19();
         } else {
-            IMPL = new ViewUtilsBase();
+            IMPL = new ViewUtilsApi19();
         }
     }
 
diff --git a/transition/transition/src/main/java/androidx/transition/ViewUtilsApi19.java b/transition/transition/src/main/java/androidx/transition/ViewUtilsApi19.java
index 3668345..448ba3a 100644
--- a/transition/transition/src/main/java/androidx/transition/ViewUtilsApi19.java
+++ b/transition/transition/src/main/java/androidx/transition/ViewUtilsApi19.java
@@ -17,21 +17,36 @@
 package androidx.transition;
 
 import android.annotation.SuppressLint;
+import android.graphics.Matrix;
+import android.util.Log;
 import android.view.View;
+import android.view.ViewParent;
 
 import androidx.annotation.DoNotInline;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 
-@RequiresApi(19)
-class ViewUtilsApi19 extends ViewUtilsBase {
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+class ViewUtilsApi19 {
+
+    private static final String TAG = "ViewUtilsApi19";
 
     /**
      * False when linking of the hidden set[get]TransitionAlpha method has previously failed.
      */
     private static boolean sTryHiddenTransitionAlpha = true;
+    private static Method sSetFrameMethod;
+    private static boolean sSetFrameFetched;
 
-    @Override
+    private static Field sViewFlagsField;
+    private static boolean sViewFlagsFieldFetched;
+    private static final int VISIBILITY_MASK = 0x0000000C;
+
+    private float[] mMatrixValues;
     @SuppressLint("NewApi") // Lint doesn't know about the hidden method.
     public void setTransitionAlpha(@NonNull View view, float alpha) {
         if (sTryHiddenTransitionAlpha) {
@@ -47,7 +62,6 @@
         view.setAlpha(alpha);
     }
 
-    @Override
     @SuppressLint("NewApi") // Lint doesn't know about the hidden method.
     public float getTransitionAlpha(@NonNull View view) {
         if (sTryHiddenTransitionAlpha) {
@@ -62,16 +76,130 @@
         return view.getAlpha();
     }
 
-    @Override
     public void saveNonTransitionAlpha(@NonNull View view) {
         // Do nothing
     }
 
-    @Override
     public void clearNonTransitionAlpha(@NonNull View view) {
         // Do nothing
     }
 
+    public void transformMatrixToGlobal(@NonNull View view, @NonNull Matrix matrix) {
+        final ViewParent parent = view.getParent();
+        if (parent instanceof View) {
+            final View vp = (View) parent;
+            transformMatrixToGlobal(vp, matrix);
+            matrix.preTranslate(-vp.getScrollX(), -vp.getScrollY());
+        }
+        matrix.preTranslate(view.getLeft(), view.getTop());
+        final Matrix vm = view.getMatrix();
+        if (!vm.isIdentity()) {
+            matrix.preConcat(vm);
+        }
+    }
+
+    public void transformMatrixToLocal(@NonNull View view, @NonNull Matrix matrix) {
+        final ViewParent parent = view.getParent();
+        if (parent instanceof View) {
+            final View vp = (View) parent;
+            transformMatrixToLocal(vp, matrix);
+            matrix.postTranslate(vp.getScrollX(), vp.getScrollY());
+        }
+        matrix.postTranslate(-view.getLeft(), -view.getTop());
+        final Matrix vm = view.getMatrix();
+        if (!vm.isIdentity()) {
+            final Matrix inverted = new Matrix();
+            if (vm.invert(inverted)) {
+                matrix.postConcat(inverted);
+            }
+        }
+    }
+
+    public void setAnimationMatrix(@NonNull View view, @Nullable Matrix matrix) {
+        if (matrix == null || matrix.isIdentity()) {
+            view.setPivotX(view.getWidth() / 2);
+            view.setPivotY(view.getHeight() / 2);
+            view.setTranslationX(0);
+            view.setTranslationY(0);
+            view.setScaleX(1);
+            view.setScaleY(1);
+            view.setRotation(0);
+        } else {
+            float[] values = mMatrixValues;
+            if (values == null) {
+                mMatrixValues = values = new float[9];
+            }
+            matrix.getValues(values);
+            final float sin = values[Matrix.MSKEW_Y];
+            final float cos = (float) Math.sqrt(1 - sin * sin)
+                    * (values[Matrix.MSCALE_X] < 0 ? -1 : 1);
+            final float rotation = (float) Math.toDegrees(Math.atan2(sin, cos));
+            final float scaleX = values[Matrix.MSCALE_X] / cos;
+            final float scaleY = values[Matrix.MSCALE_Y] / cos;
+            final float dx = values[Matrix.MTRANS_X];
+            final float dy = values[Matrix.MTRANS_Y];
+            view.setPivotX(0);
+            view.setPivotY(0);
+            view.setTranslationX(dx);
+            view.setTranslationY(dy);
+            view.setRotation(rotation);
+            view.setScaleX(scaleX);
+            view.setScaleY(scaleY);
+        }
+    }
+
+    @SuppressLint("BanUncheckedReflection") // This class is only used on APIs 14-18
+    public void setLeftTopRightBottom(@NonNull View v, int left, int top, int right, int bottom) {
+        fetchSetFrame();
+        if (sSetFrameMethod != null) {
+            try {
+                sSetFrameMethod.invoke(v, left, top, right, bottom);
+            } catch (IllegalAccessException e) {
+                // Do nothing
+            } catch (InvocationTargetException e) {
+                throw new RuntimeException(e.getCause());
+            }
+        }
+    }
+
+    @SuppressLint("SoonBlockedPrivateApi") // Only called on API <23
+    public void setTransitionVisibility(@NonNull View view, int visibility) {
+        if (!sViewFlagsFieldFetched) {
+            try {
+                sViewFlagsField = View.class.getDeclaredField("mViewFlags");
+                sViewFlagsField.setAccessible(true);
+            } catch (NoSuchFieldException e) {
+                Log.i(TAG, "fetchViewFlagsField: ");
+            }
+            sViewFlagsFieldFetched = true;
+        }
+        if (sViewFlagsField != null) {
+            try {
+                int viewFlags = sViewFlagsField.getInt(view);
+                sViewFlagsField.setInt(view, (viewFlags & ~VISIBILITY_MASK) | visibility);
+            } catch (IllegalAccessException e) {
+                // Do nothing
+            }
+        }
+    }
+
+    /**
+     * Note, this is only called on API 18 and older.
+     */
+    @SuppressLint({"PrivateApi", "SoonBlockedPrivateApi"})
+    private void fetchSetFrame() {
+        if (!sSetFrameFetched) {
+            try {
+                sSetFrameMethod = View.class.getDeclaredMethod("setFrame",
+                        int.class, int.class, int.class, int.class);
+                sSetFrameMethod.setAccessible(true);
+            } catch (NoSuchMethodException e) {
+                Log.i(TAG, "Failed to retrieve setFrame method", e);
+            }
+            sSetFrameFetched = true;
+        }
+    }
+
     @RequiresApi(29)
     static class Api29Impl {
         private Api29Impl() {
diff --git a/transition/transition/src/main/java/androidx/transition/ViewUtilsBase.java b/transition/transition/src/main/java/androidx/transition/ViewUtilsBase.java
deleted file mode 100644
index 535f18c..0000000
--- a/transition/transition/src/main/java/androidx/transition/ViewUtilsBase.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.transition;
-
-import android.annotation.SuppressLint;
-import android.graphics.Matrix;
-import android.util.Log;
-import android.view.View;
-import android.view.ViewParent;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-// This class is guaranteed to only be called on SDKs 14-18 due to gating
-class ViewUtilsBase {
-
-    private static final String TAG = "ViewUtilsBase";
-
-    private static Method sSetFrameMethod;
-    private static boolean sSetFrameFetched;
-
-    private static Field sViewFlagsField;
-    private static boolean sViewFlagsFieldFetched;
-    private static final int VISIBILITY_MASK = 0x0000000C;
-
-    private float[] mMatrixValues;
-
-    public void setTransitionAlpha(@NonNull View view, float alpha) {
-        Float savedAlpha = (Float) view.getTag(R.id.save_non_transition_alpha);
-        if (savedAlpha != null) {
-            view.setAlpha(savedAlpha * alpha);
-        } else {
-            view.setAlpha(alpha);
-        }
-    }
-
-    public float getTransitionAlpha(@NonNull View view) {
-        Float savedAlpha = (Float) view.getTag(R.id.save_non_transition_alpha);
-        if (savedAlpha != null) {
-            return view.getAlpha() / savedAlpha;
-        } else {
-            return view.getAlpha();
-        }
-    }
-
-    public void saveNonTransitionAlpha(@NonNull View view) {
-        if (view.getTag(R.id.save_non_transition_alpha) == null) {
-            view.setTag(R.id.save_non_transition_alpha, view.getAlpha());
-        }
-    }
-
-    public void clearNonTransitionAlpha(@NonNull View view) {
-        // We don't clear the saved value when the view is hidden; that's the situation we are
-        // saving this value for.
-        if (view.getVisibility() == View.VISIBLE) {
-            view.setTag(R.id.save_non_transition_alpha, null);
-        }
-    }
-
-    public void transformMatrixToGlobal(@NonNull View view, @NonNull Matrix matrix) {
-        final ViewParent parent = view.getParent();
-        if (parent instanceof View) {
-            final View vp = (View) parent;
-            transformMatrixToGlobal(vp, matrix);
-            matrix.preTranslate(-vp.getScrollX(), -vp.getScrollY());
-        }
-        matrix.preTranslate(view.getLeft(), view.getTop());
-        final Matrix vm = view.getMatrix();
-        if (!vm.isIdentity()) {
-            matrix.preConcat(vm);
-        }
-    }
-
-    public void transformMatrixToLocal(@NonNull View view, @NonNull Matrix matrix) {
-        final ViewParent parent = view.getParent();
-        if (parent instanceof View) {
-            final View vp = (View) parent;
-            transformMatrixToLocal(vp, matrix);
-            matrix.postTranslate(vp.getScrollX(), vp.getScrollY());
-        }
-        matrix.postTranslate(-view.getLeft(), -view.getTop());
-        final Matrix vm = view.getMatrix();
-        if (!vm.isIdentity()) {
-            final Matrix inverted = new Matrix();
-            if (vm.invert(inverted)) {
-                matrix.postConcat(inverted);
-            }
-        }
-    }
-
-    public void setAnimationMatrix(@NonNull View view, @Nullable Matrix matrix) {
-        if (matrix == null || matrix.isIdentity()) {
-            view.setPivotX(view.getWidth() / 2);
-            view.setPivotY(view.getHeight() / 2);
-            view.setTranslationX(0);
-            view.setTranslationY(0);
-            view.setScaleX(1);
-            view.setScaleY(1);
-            view.setRotation(0);
-        } else {
-            float[] values = mMatrixValues;
-            if (values == null) {
-                mMatrixValues = values = new float[9];
-            }
-            matrix.getValues(values);
-            final float sin = values[Matrix.MSKEW_Y];
-            final float cos = (float) Math.sqrt(1 - sin * sin)
-                    * (values[Matrix.MSCALE_X] < 0 ? -1 : 1);
-            final float rotation = (float) Math.toDegrees(Math.atan2(sin, cos));
-            final float scaleX = values[Matrix.MSCALE_X] / cos;
-            final float scaleY = values[Matrix.MSCALE_Y] / cos;
-            final float dx = values[Matrix.MTRANS_X];
-            final float dy = values[Matrix.MTRANS_Y];
-            view.setPivotX(0);
-            view.setPivotY(0);
-            view.setTranslationX(dx);
-            view.setTranslationY(dy);
-            view.setRotation(rotation);
-            view.setScaleX(scaleX);
-            view.setScaleY(scaleY);
-        }
-    }
-
-    @SuppressLint("BanUncheckedReflection") // This class is only used on APIs 14-18
-    public void setLeftTopRightBottom(@NonNull View v, int left, int top, int right, int bottom) {
-        fetchSetFrame();
-        if (sSetFrameMethod != null) {
-            try {
-                sSetFrameMethod.invoke(v, left, top, right, bottom);
-            } catch (IllegalAccessException e) {
-                // Do nothing
-            } catch (InvocationTargetException e) {
-                throw new RuntimeException(e.getCause());
-            }
-        }
-    }
-
-    @SuppressLint("SoonBlockedPrivateApi") // Only called on API <23
-    public void setTransitionVisibility(@NonNull View view, int visibility) {
-        if (!sViewFlagsFieldFetched) {
-            try {
-                sViewFlagsField = View.class.getDeclaredField("mViewFlags");
-                sViewFlagsField.setAccessible(true);
-            } catch (NoSuchFieldException e) {
-                Log.i(TAG, "fetchViewFlagsField: ");
-            }
-            sViewFlagsFieldFetched = true;
-        }
-        if (sViewFlagsField != null) {
-            try {
-                int viewFlags = sViewFlagsField.getInt(view);
-                sViewFlagsField.setInt(view, (viewFlags & ~VISIBILITY_MASK) | visibility);
-            } catch (IllegalAccessException e) {
-                // Do nothing
-            }
-        }
-    }
-
-    /**
-     * Note, this is only called on API 18 and older.
-     */
-    @SuppressLint({"PrivateApi", "SoonBlockedPrivateApi"})
-    private void fetchSetFrame() {
-        if (!sSetFrameFetched) {
-            try {
-                sSetFrameMethod = View.class.getDeclaredMethod("setFrame",
-                        int.class, int.class, int.class, int.class);
-                sSetFrameMethod.setAccessible(true);
-            } catch (NoSuchMethodException e) {
-                Log.i(TAG, "Failed to retrieve setFrame method", e);
-            }
-            sSetFrameFetched = true;
-        }
-    }
-
-}
diff --git a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java
index 1b50075..31c4b7d 100644
--- a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java
+++ b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java
@@ -20,14 +20,12 @@
 
 import android.graphics.Bitmap;
 import android.graphics.Color;
-import android.os.Build;
 import android.util.Base64;
 import android.view.ViewGroup;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.RequiresApi;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -42,7 +40,6 @@
 /**
  * Base class for dark mode related test.
  */
-@RequiresApi(Build.VERSION_CODES.KITKAT)
 public class WebSettingsCompatDarkModeTestBase<T extends WebViewTestActivity> {
 
     // The size of WebViews to use in the app.
diff --git a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
index d22e732..ed2df16 100644
--- a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
+++ b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
@@ -24,7 +24,6 @@
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.net.Uri;
-import android.os.Build;
 import android.os.Looper;
 import android.os.SystemClock;
 import android.webkit.ValueCallback;
@@ -36,7 +35,6 @@
 import androidx.annotation.CallSuper;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.RequiresApi;
 import androidx.concurrent.futures.ResolvableFuture;
 import androidx.test.core.app.ApplicationProvider;
 
@@ -53,7 +51,6 @@
  * Modifications to this class should be reflected in that class as necessary. See
  * http://go/modifying-webview-cts.
  */
-@RequiresApi(api = Build.VERSION_CODES.KITKAT)
 public class WebViewOnUiThread implements AutoCloseable{
     /**
      * The maximum time, in milliseconds (10 seconds) to wait for a load
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
index 1fd56c5..4c0492b 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
@@ -18,11 +18,8 @@
 
 import static org.chromium.support_lib_boundary.WebMessagePayloadBoundaryInterface.WebMessagePayloadType;
 
-import android.os.Build;
-
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.RequiresApi;
 import androidx.webkit.WebMessageCompat;
 import androidx.webkit.WebMessagePortCompat;
 
@@ -59,7 +56,6 @@
         return mWebMessageCompat.getData();
     }
 
-    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @Override
     @Nullable
     public InvocationHandler getMessagePayload() {
diff --git a/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewProviderAdapter.java b/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewProviderAdapter.java
index 68c1056..eae16ef7 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewProviderAdapter.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/internal/WebViewProviderAdapter.java
@@ -18,7 +18,6 @@
 
 import android.annotation.SuppressLint;
 import android.net.Uri;
-import android.os.Build;
 import android.webkit.WebChromeClient;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
@@ -56,7 +55,6 @@
     /**
      * Adapter method WebViewCompat.insertVisualStateCallback().
      */
-    @RequiresApi(Build.VERSION_CODES.KITKAT)
     public void insertVisualStateCallback(
             long requestId, @NonNull WebViewCompat.VisualStateCallback callback) {
         mImpl.insertVisualStateCallback(requestId,
@@ -80,7 +78,6 @@
     /**
      * Adapter method for {@link WebViewCompat#postWebMessage(WebView, WebMessageCompat, Uri)}.
      */
-    @RequiresApi(Build.VERSION_CODES.KITKAT)
     public void postWebMessage(@NonNull WebMessageCompat message, @NonNull Uri targetOrigin) {
         mImpl.postMessageToMainFrame(
                 BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(
@@ -91,7 +88,6 @@
      * Adapter method for {@link WebViewCompat#addWebMessageListener(android.webkit.WebView,
      * String, List<String>, androidx.webkit.WebViewCompat.WebMessageListener)}.
      */
-    @RequiresApi(Build.VERSION_CODES.KITKAT)
     public void addWebMessageListener(@NonNull String jsObjectName,
             @NonNull String[] allowedOriginRules,
             @NonNull WebViewCompat.WebMessageListener listener) {
@@ -160,7 +156,6 @@
     // WebViewRenderProcessClient is a callback class, so it should be last. See
     // https://issuetracker.google.com/issues/139770271.
     @SuppressLint("LambdaLast")
-    @RequiresApi(Build.VERSION_CODES.KITKAT)
     public void setWebViewRenderProcessClient(@Nullable Executor executor,
             @Nullable WebViewRenderProcessClient webViewRenderProcessClient) {
         InvocationHandler handler = webViewRenderProcessClient != null