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