Merge "Add AutoClosingRoomOpenHelper to support AutoClosing room databases." into androidx-main
diff --git a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
index 10c86dc..86560c0 100644
--- a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
+++ b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
@@ -228,6 +228,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation")
     public class MockDrawable extends Drawable {
         @Override
         public void draw(Canvas canvas) {
diff --git a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/MyDrawable.java b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/MyDrawable.java
index b0be5f9..28aa645 100644
--- a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/MyDrawable.java
+++ b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/graphics/drawable/MyDrawable.java
@@ -25,6 +25,7 @@
 /**
  * Simple custom drawable.
  */
+@SuppressWarnings("deprecation")
 public class MyDrawable extends Drawable {
     private final Paint mPaint;
 
diff --git a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
index 5c3e673..313399e 100644
--- a/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
+++ b/appcompat/appcompat-resources/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
@@ -25,18 +25,18 @@
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+@SuppressWarnings("deprecation")
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class TintResourcesTest {
     @Rule
-    public final ActivityTestRule<Activity> mActivityTestRule =
-            new ActivityTestRule<>(Activity.class);
+    public final androidx.test.rule.ActivityTestRule<Activity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(Activity.class);
 
     @Test
     public void testTintResourcesDelegateBackToOriginalResources() {
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
index d32054d..6ce6ee6 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
@@ -65,6 +65,7 @@
 
 import java.io.File;
 
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class AlertDialogCursorTest {
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogTest.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogTest.java
index 923ec16..e197fff 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogTest.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogTest.java
@@ -104,6 +104,7 @@
  *     is rendered by a single <code>CheckedTextView</code>.</li>
  * </ul>
  */
+@SuppressWarnings("unchecked")
 @LargeTest
 public class AlertDialogTest {
     @Rule
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/AppCompatTintableViewActions.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/AppCompatTintableViewActions.java
index 0f29c4c..36c0f87 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/AppCompatTintableViewActions.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/AppCompatTintableViewActions.java
@@ -36,6 +36,7 @@
 
 import org.hamcrest.Matcher;
 
+@SuppressWarnings("unchecked")
 public class AppCompatTintableViewActions {
     /**
      * Sets the passed color state list as the background tint on a {@link View}.
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
index fe4058d..18f7ef7 100755
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
@@ -69,7 +69,7 @@
     public void testImageTintingAcrossStateChange() {
         final @IdRes int viewId = R.id.view_tinted_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt int lilacDefault = ResourcesCompat.getColor(res, R.color.lilac_default, null);
         @ColorInt int lilacDisabled = ResourcesCompat.getColor(res, R.color.lilac_disabled, null);
@@ -147,7 +147,7 @@
     public void testImageTintingAcrossModeChange() {
         final @IdRes int viewId = R.id.view_untinted_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt int emeraldDefault = ResourcesCompat.getColor(
                 res, R.color.emerald_translucent_default, null);
@@ -218,7 +218,7 @@
     public void testImageTintingWithDefaultMode() {
         final @IdRes int viewId = R.id.view_untinted_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt final int sandDefault = ResourcesCompat.getColor(
                 res, R.color.sand_default, null);
@@ -258,7 +258,7 @@
     public void testImageOpaqueTintingAcrossImageChange() {
         final @IdRes int viewId = R.id.view_tinted_no_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt int lilacDefault = ResourcesCompat.getColor(res, R.color.lilac_default, null);
         @ColorInt int lilacDisabled = ResourcesCompat.getColor(res, R.color.lilac_disabled, null);
@@ -313,7 +313,7 @@
     public void testImageTranslucentTintingAcrossImageChange() {
         final @IdRes int viewId = R.id.view_untinted_no_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt int emeraldDefault = ResourcesCompat.getColor(
                 res, R.color.emerald_translucent_default, null);
@@ -403,7 +403,7 @@
     public void testImageTintingAcrossBackgroundTintingChange() {
         final @IdRes int viewId = R.id.view_untinted_source;
         final Resources res = mActivity.getResources();
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         @ColorInt int lilacDefault = ResourcesCompat.getColor(res, R.color.lilac_default, null);
         @ColorInt int lilacDisabled = ResourcesCompat.getColor(res, R.color.lilac_disabled, null);
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
index 2137144..cc18495 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
@@ -110,7 +110,7 @@
         }
 
         final @IdRes int viewId = R.id.view_tinted_no_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         // Note that all the asserts in this test check that the view background
         // is null. This is because the matching child in the activity doesn't define any
@@ -153,7 +153,7 @@
         }
 
         final @IdRes int viewId = R.id.view_tinted_no_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         // Note that all the asserts in this test check that the view background
         // is null. This is because the matching child in the activity doesn't define any
@@ -192,7 +192,7 @@
     @Test
     public void testBackgroundTintingAcrossStateChange() {
         final @IdRes int viewId = R.id.view_tinted_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int lilacDefault = ResourcesCompat.getColor(
                 mResources, R.color.lilac_default, null);
@@ -272,7 +272,7 @@
     @Test
     public void testBackgroundTintingViewCompatAcrossStateChange() {
         final @IdRes int viewId = R.id.view_tinted_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int lilacDefault = ResourcesCompat.getColor(
                 mResources, R.color.lilac_default, null);
@@ -353,7 +353,7 @@
     @Test
     public void testBackgroundTintingAcrossModeChange() {
         final @IdRes int viewId = R.id.view_untinted_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int emeraldDefault = ResourcesCompat.getColor(
                 mResources, R.color.emerald_translucent_default, null);
@@ -421,7 +421,7 @@
     @Test
     public void testBackgroundTintingViewCompatAcrossModeChange() {
         final @IdRes int viewId = R.id.view_untinted_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int emeraldDefault = ResourcesCompat.getColor(
                 mResources, R.color.emerald_translucent_default, null);
@@ -488,7 +488,7 @@
     @Test
     public void testBackgroundOpaqueTintingAcrossBackgroundChange() {
         final @IdRes int viewId = R.id.view_tinted_no_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int lilacDefault = ResourcesCompat.getColor(
                 mResources, R.color.lilac_default, null);
@@ -546,7 +546,7 @@
     @Test
     public void testBackgroundTranslucentTintingAcrossBackgroundChange() {
         final @IdRes int viewId = R.id.view_untinted_no_background;
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int emeraldDefault = ResourcesCompat.getColor(
                 mResources, R.color.emerald_translucent_default, null);
@@ -628,7 +628,7 @@
     }
 
     protected void testUntintedBackgroundTintingViewCompatAcrossStateChange(@IdRes int viewId) {
-        final T view = (T) mContainer.findViewById(viewId);
+        final T view = mContainer.findViewById(viewId);
 
         final @ColorInt int oceanDefault = ResourcesCompat.getColor(
                 mResources, R.color.ocean_default, null);
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java
index fb22cdc..3fc3605 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java
@@ -86,6 +86,7 @@
     private OnReceiveContentListener mMockReceiver;
     private ClipboardManager mClipboardManager;
 
+    @SuppressWarnings("unchecked")
     @UiThreadTest
     @Before
     public void before() {
diff --git a/autofill/autofill/src/androidTest/java/androidx/autofill/inline/RendererTest.java b/autofill/autofill/src/androidTest/java/androidx/autofill/inline/RendererTest.java
index c186e75..cb51c64 100644
--- a/autofill/autofill/src/androidTest/java/androidx/autofill/inline/RendererTest.java
+++ b/autofill/autofill/src/androidTest/java/androidx/autofill/inline/RendererTest.java
@@ -40,7 +40,6 @@
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -56,10 +55,11 @@
 @SdkSuppress(minSdkVersion = 30) // Needed only on 30 and above
 public class RendererTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
     @NonNull
-    public final ActivityTestRule<InlineUiActivity> mActivityTestRule =
-            new ActivityTestRule<>(InlineUiActivity.class);
+    public final androidx.test.rule.ActivityTestRule<InlineUiActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(InlineUiActivity.class);
 
     private Instrumentation mInstrumentation;
     private Context mContext;
diff --git a/autofill/autofill/src/androidTest/java/androidx/autofill/inline/v1/InlineSuggestionUiTest.java b/autofill/autofill/src/androidTest/java/androidx/autofill/inline/v1/InlineSuggestionUiTest.java
index e26e5af..943322b 100644
--- a/autofill/autofill/src/androidTest/java/androidx/autofill/inline/v1/InlineSuggestionUiTest.java
+++ b/autofill/autofill/src/androidTest/java/androidx/autofill/inline/v1/InlineSuggestionUiTest.java
@@ -51,7 +51,6 @@
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -71,10 +70,11 @@
     private static final String TITLE = "Hello world!";
     private static final String SUB_TITLE = "From God";
 
+    @SuppressWarnings("deprecation")
     @Rule
     @NonNull
-    public final ActivityTestRule<InlineUiActivity> mActivityTestRule =
-            new ActivityTestRule<>(InlineUiActivity.class);
+    public final androidx.test.rule.ActivityTestRule<InlineUiActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(InlineUiActivity.class);
 
     private Instrumentation mInstrumentation;
     private Context mContext;
diff --git a/biometric/biometric/src/test/java/androidx/biometric/KeyguardUtilsTest.java b/biometric/biometric/src/test/java/androidx/biometric/KeyguardUtilsTest.java
index 952adaa..453f6a9 100644
--- a/biometric/biometric/src/test/java/androidx/biometric/KeyguardUtilsTest.java
+++ b/biometric/biometric/src/test/java/androidx/biometric/KeyguardUtilsTest.java
@@ -88,6 +88,7 @@
         assertThat(KeyguardUtils.isDeviceSecuredWithCredential(mContext)).isFalse();
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     @Config(minSdk = Build.VERSION_CODES.M)
     public void testIsDeviceSecuredWithCredential_CorrectlyReturnsTrue_OnApi23AndAbove() {
diff --git a/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java b/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
index 390df87..689dc8f 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
@@ -31,7 +31,6 @@
 import androidx.browser.customtabs.TestActivity;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
@@ -45,6 +44,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+@SuppressWarnings("deprecation")
 /** Unit tests for {@link BrowserActionsFallbackMenuUi}. */
 @RunWith(AndroidJUnit4.class)
 @LargeTest
@@ -53,8 +53,8 @@
     private static final String CUSTOM_ITEM_TITLE_1 = "Open url";
     private static final String CUSTOM_ITEM_TITLE_2 = "Share url";
     @Rule
-    public final ActivityTestRule<TestActivity> mActivityTestRule =
-            new ActivityTestRule<>(TestActivity.class);
+    public final androidx.test.rule.ActivityTestRule<TestActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
 
     @Rule
     public final EnableComponentsTestRule mEnableComponents = new EnableComponentsTestRule(
diff --git a/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java b/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
index b8ace06..7dae296 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
@@ -38,6 +38,7 @@
 import java.util.List;
 
 /** Unit tests for {@link BrowserActionsIntent}. */
+@SuppressWarnings("deprecation")
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 public final class BrowserActionsIntentTest {
diff --git a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
index ee74d68..ab0d51b 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
@@ -29,7 +29,6 @@
 import androidx.annotation.NonNull;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 import androidx.test.rule.ServiceTestRule;
 import androidx.testutils.PollingCheck;
 
@@ -40,7 +39,6 @@
 
 import java.util.concurrent.TimeoutException;
 
-
 /**
  * Tests for a complete loop between a browser side {@link CustomTabsService}
  * and a client side {@link PostMessageService}. Both services are bound to through
@@ -52,9 +50,10 @@
 public class PostMessageTest {
     @Rule
     public final ServiceTestRule mServiceRule = new ServiceTestRule();
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<TestActivity> mActivityTestRule =
-            new ActivityTestRule<>(TestActivity.class);
+    public final androidx.test.rule.ActivityTestRule<TestActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
     @Rule
     public final EnableComponentsTestRule mEnableComponents = new EnableComponentsTestRule(
             TestActivity.class,
diff --git a/browser/browser/src/androidTest/java/androidx/browser/trusted/VerifiedProviderTestRule.java b/browser/browser/src/androidTest/java/androidx/browser/trusted/VerifiedProviderTestRule.java
index d0c433f..e895570 100644
--- a/browser/browser/src/androidTest/java/androidx/browser/trusted/VerifiedProviderTestRule.java
+++ b/browser/browser/src/androidTest/java/androidx/browser/trusted/VerifiedProviderTestRule.java
@@ -18,8 +18,6 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
-
 import org.junit.rules.TestWatcher;
 import org.junit.runner.Description;
 
@@ -46,8 +44,9 @@
         set(false);
     }
 
+    @SuppressWarnings("deprecation")
     private void set(boolean enabled) {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = androidx.test.InstrumentationRegistry.getContext();
         TestTrustedWebActivityService.setVerifiedProvider(enabled
                 ? Token.create(context.getPackageName(), context.getPackageManager())
                 : null);
diff --git a/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabColorSchemeParamsTest.java b/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabColorSchemeParamsTest.java
index 3def804..ac2f395 100644
--- a/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabColorSchemeParamsTest.java
+++ b/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabColorSchemeParamsTest.java
@@ -37,6 +37,7 @@
  * In particular, for {@link CustomTabsIntent.Builder#setColorSchemeParams} and
  * {@link CustomTabsIntent#getColorSchemeParams}
  */
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 public class CustomTabColorSchemeParamsTest {
diff --git a/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java b/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java
index 215bbd7..08553dc 100644
--- a/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java
+++ b/browser/browser/src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java
@@ -39,6 +39,7 @@
 /**
  * Tests for CustomTabsIntent.
  */
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 // minSdk For Bundle#getBinder
diff --git a/browser/browser/src/test/java/androidx/browser/trusted/TrustedWebActivityIntentBuilderTest.java b/browser/browser/src/test/java/androidx/browser/trusted/TrustedWebActivityIntentBuilderTest.java
index 59a29ff..8b1847a 100644
--- a/browser/browser/src/test/java/androidx/browser/trusted/TrustedWebActivityIntentBuilderTest.java
+++ b/browser/browser/src/test/java/androidx/browser/trusted/TrustedWebActivityIntentBuilderTest.java
@@ -56,6 +56,7 @@
 @Config(minSdk = Build.VERSION_CODES.JELLY_BEAN_MR2)
 public class TrustedWebActivityIntentBuilderTest {
 
+    @SuppressWarnings("deprecation")
     @Test
     public void intentIsConstructedCorrectly() {
         Uri url = Uri.parse("https://test.com/page");
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
index 09e1a67..a4dd2eb 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
@@ -210,7 +210,7 @@
     ) {
         project.tasks.withType(KotlinCompile::class.java).configureEach { task ->
             task.kotlinOptions.jvmTarget = "1.8"
-            project.configureCompilationWarnings(task)
+            project.configureJavaCompilationWarnings(task)
             if (project.hasProperty(EXPERIMENTAL_KOTLIN_BACKEND_ENABLED)) {
                 task.kotlinOptions.freeCompilerArgs += listOf("-Xuse-ir=true")
             }
@@ -289,6 +289,7 @@
         project.configureSourceJarForAndroid(libraryExtension)
         project.configureVersionFileWriter(libraryExtension, androidXExtension)
         project.addCreateLibraryBuildInfoFileTask(androidXExtension)
+        project.configureJavaCompilationWarnings(androidXExtension)
 
         val verifyDependencyVersionsTask = project.createVerifyDependencyVersionsTask()
         val checkReleaseReadyTasks = mutableListOf<TaskProvider<out Task>>()
@@ -313,10 +314,6 @@
             verifyDependencyVersionsTask?.configure { task ->
                 task.dependsOn(libraryVariant.javaCompileProvider)
             }
-
-            libraryVariant.javaCompileProvider.configure { task ->
-                project.configureCompilationWarnings(task)
-            }
         }
 
         // Standard lint, docs, resource API, and Metalava configuration for AndroidX projects.
@@ -340,9 +337,7 @@
             targetCompatibility = VERSION_1_8
         }
 
-        project.tasks.withType(JavaCompile::class.java) { task ->
-            project.configureCompilationWarnings(task)
-        }
+        project.configureJavaCompilationWarnings(extension)
 
         project.hideJavadocTask()
 
@@ -534,15 +529,6 @@
             if (androidXExtension.publish.shouldRelease()) {
                 project.extra.set("publish", true)
             }
-            if (!project.rootProject.hasProperty(USE_MAX_DEP_VERSIONS)) {
-                defaultPublishVariant { libraryVariant ->
-                    libraryVariant.javaCompileProvider.configure { javaCompile ->
-                        if (androidXExtension.failOnDeprecationWarnings) {
-                            javaCompile.options.compilerArgs.add("-Xlint:deprecation")
-                        }
-                    }
-                }
-            }
         }
     }
 
@@ -752,14 +738,23 @@
     }
 }
 
-private fun Project.configureCompilationWarnings(task: JavaCompile) {
-    if (hasProperty(ALL_WARNINGS_AS_ERRORS)) {
-        task.options.compilerArgs.add("-Werror")
-        task.options.compilerArgs.add("-Xlint:unchecked")
+private fun Project.configureJavaCompilationWarnings(androidXExtension: AndroidXExtension) {
+    afterEvaluate {
+        project.tasks.withType(JavaCompile::class.java).configureEach { task ->
+            if (hasProperty(ALL_WARNINGS_AS_ERRORS)) {
+                task.options.compilerArgs.add("-Werror")
+                task.options.compilerArgs.add("-Xlint:unchecked")
+                if (androidXExtension.failOnDeprecationWarnings &&
+                    !hasProperty(AndroidXPlugin.USE_MAX_DEP_VERSIONS)
+                ) {
+                    task.options.compilerArgs.add("-Xlint:deprecation")
+                }
+            }
+        }
     }
 }
 
-private fun Project.configureCompilationWarnings(task: KotlinCompile) {
+private fun Project.configureJavaCompilationWarnings(task: KotlinCompile) {
     if (hasProperty(ALL_WARNINGS_AS_ERRORS)) {
         task.kotlinOptions.allWarningsAsErrors = true
     }
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
index 50460c4..25ce33e 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
@@ -40,7 +40,6 @@
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
 import org.junit.Before;
@@ -60,12 +59,14 @@
     @Rule
     public TestRule mCameraRule = CameraUtil.grantCameraPermissionAndPreTest();
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<CameraXTestActivity> mCameraXTestActivityRule =
-            new ActivityTestRule<>(CameraXTestActivity.class, true, false);
+    public androidx.test.rule.ActivityTestRule<CameraXTestActivity> mCameraXTestActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(CameraXTestActivity.class, true, false);
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<Camera2TestActivity> mCamera2ActivityRule =
-            new ActivityTestRule<>(Camera2TestActivity.class, true, false);
+    public androidx.test.rule.ActivityTestRule<Camera2TestActivity> mCamera2ActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(Camera2TestActivity.class, true, false);
 
     private CameraXTestActivity mCameraXTestActivity;
 
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
index 85fac6e..2da8952 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
@@ -50,7 +50,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.interop.Camera2Interop;
 import androidx.camera.camera2.interop.ExperimentalCamera2Interop;
 import androidx.camera.core.AspectRatio;
@@ -145,7 +145,7 @@
     }
 
     @Before
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void setUp() throws ExecutionException, InterruptedException {
         createDefaultPictureFolderIfNotExist();
         mContext = ApplicationProvider.getApplicationContext();
@@ -610,7 +610,7 @@
     }
 
     @Test
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void camera2InteropCaptureSessionCallbacks() {
         ImageCapture.Builder builder = new ImageCapture.Builder();
         CameraCaptureSession.CaptureCallback captureCallback =
@@ -825,6 +825,7 @@
                 ImageCapture.ERROR_INVALID_CAMERA);
     }
 
+    @SuppressWarnings("deprecation")
     private void createDefaultPictureFolderIfNotExist() {
         File pictureFolder = Environment.getExternalStoragePublicDirectory(
                 Environment.DIRECTORY_PICTURES);
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
index de75e09..e2fa459 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2CameraImplTest.java
@@ -551,6 +551,7 @@
         assertThat(currentState).isEqualTo(CameraInternal.State.RELEASED);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void openNewCaptureSessionImmediateBeforePreviousCaptureSessionClosed()
             throws InterruptedException {
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2ImplCameraXTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2ImplCameraXTest.java
index 0cf4896..30a066d 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2ImplCameraXTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/Camera2ImplCameraXTest.java
@@ -35,7 +35,7 @@
 import android.hardware.camera2.TotalCaptureResult;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.Camera2Config;
 import androidx.camera.camera2.internal.util.SemaphoreReleasingCamera2Callbacks;
 import androidx.camera.camera2.internal.util.SemaphoreReleasingCamera2Callbacks.DeviceStateCallback;
@@ -81,7 +81,7 @@
 @FlakyTest
 @LargeTest
 @RunWith(AndroidJUnit4.class)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2ImplCameraXTest {
     @CameraSelector.LensFacing
     private static final int DEFAULT_LENS_FACING = CameraSelector.LENS_FACING_BACK;
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
index fc4877c..20e8154 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/CaptureSessionTest.java
@@ -43,7 +43,6 @@
 import android.media.Image;
 import android.media.ImageReader;
 import android.media.ImageReader.OnImageAvailableListener;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
 import android.os.HandlerThread;
@@ -103,6 +102,7 @@
  * android.hardware.camera2.CameraDevice} can be opened since it is used to open a {@link
  * android.hardware.camera2.CaptureRequest}.
  */
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public final class CaptureSessionTest {
@@ -745,7 +745,8 @@
         ArgumentCaptor<Throwable> throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
         ListenableFuture<Void> openingFuture = captureSession.open(mTestParameters0.mSessionConfig,
                 mCameraDeviceHolder.get(), mCaptureSessionOpenerBuilder.build());
-        Futures.addCallback(openingFuture, mockFutureCallback, AsyncTask.THREAD_POOL_EXECUTOR);
+        Futures.addCallback(openingFuture, mockFutureCallback,
+                android.os.AsyncTask.THREAD_POOL_EXECUTOR);
         openingFuture.cancel(true);
 
         // The captureSession opening should callback onFailure with a CancellationException.
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/ExposureDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/ExposureDeviceTest.java
index a053541..69f91ce 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/ExposureDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/ExposureDeviceTest.java
@@ -40,7 +40,7 @@
 import android.view.Surface;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.internal.compat.CameraManagerCompat;
 import androidx.camera.camera2.internal.util.SemaphoreReleasingCamera2Callbacks;
 import androidx.camera.camera2.interop.Camera2Interop;
@@ -93,7 +93,7 @@
  */
 @LargeTest
 @RunWith(AndroidJUnit4.class)
-@UseExperimental(markerClass = ExperimentalExposureCompensation.class)
+@OptIn(markerClass = ExperimentalExposureCompensation.class)
 public class ExposureDeviceTest {
 
     @CameraSelector.LensFacing
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2CameraControlDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2CameraControlDeviceTest.java
index 65f54a8..fc5b274 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2CameraControlDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2CameraControlDeviceTest.java
@@ -38,7 +38,7 @@
 import android.hardware.camera2.params.MeteringRectangle;
 import android.util.Range;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.Camera2Config;
 import androidx.camera.camera2.internal.Camera2CameraControlImpl;
 import androidx.camera.core.CameraSelector;
@@ -70,7 +70,7 @@
 
 @LargeTest
 @RunWith(AndroidJUnit4.class)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2CameraControlDeviceTest {
     private static final Range<Integer> FAKE_RANGE = new Range<>(0, 30);
     private final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation();
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2InteropDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2InteropDeviceTest.java
index 074e01d..38c3594 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2InteropDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/interop/Camera2InteropDeviceTest.java
@@ -36,7 +36,7 @@
 import android.hardware.camera2.params.MeteringRectangle;
 import android.util.Range;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.Camera2Config;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.CameraX;
@@ -65,7 +65,7 @@
 
 @LargeTest
 @RunWith(AndroidJUnit4.class)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2InteropDeviceTest {
     private final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation();
     private CameraSelector mCameraSelector;
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CaptureOptionUnpackerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CaptureOptionUnpackerTest.java
index 06e68a0..8ba5a2a 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CaptureOptionUnpackerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CaptureOptionUnpackerTest.java
@@ -24,7 +24,7 @@
 import android.hardware.camera2.CaptureRequest;
 import android.os.Build;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.impl.Camera2ImplConfig;
 import androidx.camera.camera2.interop.Camera2Interop;
 import androidx.camera.camera2.interop.ExperimentalCamera2Interop;
@@ -54,7 +54,7 @@
     }
 
     @Test
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void unpackerExtractsCaptureCallbacks() {
         ImageCapture.Builder imageCaptureBuilder = new ImageCapture.Builder();
         CaptureCallback captureCallback = mock(CaptureCallback.class);
@@ -73,7 +73,7 @@
     }
 
     @Test
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void unpackerExtractsOptions() {
         ImageCapture.Builder imageCaptureConfigBuilder = new ImageCapture.Builder();
 
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
index 85d73124c..12109f9 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2DeviceSurfaceManagerTest.java
@@ -18,10 +18,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2SessionOptionUnpackerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2SessionOptionUnpackerTest.java
index ca78fc8..a301832 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2SessionOptionUnpackerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2SessionOptionUnpackerTest.java
@@ -27,7 +27,7 @@
 import android.hardware.camera2.CaptureRequest;
 import android.os.Build;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.impl.Camera2ImplConfig;
 import androidx.camera.camera2.impl.CameraEventCallbacks;
 import androidx.camera.camera2.interop.Camera2Interop;
@@ -58,7 +58,7 @@
     }
 
     @Test
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void unpackerExtractsInteropCallbacks() {
         ImageCapture.Builder imageCaptureBuilder = new ImageCapture.Builder();
         CaptureCallback captureCallback = mock(CaptureCallback.class);
@@ -97,7 +97,7 @@
     }
 
     @Test
-    @UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+    @OptIn(markerClass = ExperimentalCamera2Interop.class)
     public void unpackerExtractsOptions() {
         ImageCapture.Builder imageCaptureConfigBuilder = new ImageCapture.Builder();
 
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/CameraSelectionOptimizerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/CameraSelectionOptimizerTest.java
index de4b238..144207b 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/CameraSelectionOptimizerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/CameraSelectionOptimizerTest.java
@@ -26,6 +26,7 @@
 import android.hardware.camera2.CameraCharacteristics;
 import android.os.Build;
 import android.os.Handler;
+import android.os.Looper;
 
 import androidx.camera.camera2.interop.Camera2CameraFilter;
 import androidx.camera.camera2.interop.Camera2CameraInfo;
@@ -59,7 +60,7 @@
         mCamera2CameraFactory =
                 spy(new Camera2CameraFactory(ApplicationProvider.getApplicationContext(),
                         CameraThreadConfig.create(CameraXExecutors.mainThreadExecutor(),
-                                new Handler()),
+                                new Handler(Looper.getMainLooper())),
                         null));
     }
 
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/ExposureControlTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/ExposureControlTest.java
index 5e4dabd..58f8e22 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/ExposureControlTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/ExposureControlTest.java
@@ -30,7 +30,7 @@
 import android.util.Range;
 import android.util.Rational;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.internal.compat.CameraCharacteristicsCompat;
 import androidx.camera.core.CameraControl;
 import androidx.camera.core.ExperimentalExposureCompensation;
@@ -57,7 +57,7 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
 @DoNotInstrument
-@UseExperimental(markerClass = ExperimentalExposureCompensation.class)
+@OptIn(markerClass = ExperimentalExposureCompensation.class)
 public class ExposureControlTest {
 
     private static final String CAMERA0_ID = "0";
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
index 5448c5d..fcd9b35 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
@@ -93,6 +93,7 @@
 import java.util.concurrent.TimeoutException;
 
 /** Robolectric test for {@link SupportedSurfaceCombination} class */
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java
index d1fe978..6776683 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java
@@ -25,7 +25,6 @@
 import android.hardware.camera2.CameraCaptureSession;
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CaptureRequest;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
 import android.view.Surface;
@@ -45,6 +44,7 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 
+@SuppressWarnings({"deprecation", "unchecked"})
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
@@ -66,7 +66,7 @@
 
         mSyncCaptureSessionBaseImpl =
                 new SynchronizedCaptureSessionBaseImpl(mMockCaptureSessionRepository,
-                        AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService,
+                        android.os.AsyncTask.THREAD_POOL_EXECUTOR, mScheduledExecutorService,
                         mock(Handler.class));
 
         mMockCaptureSession = mock(CameraCaptureSession.class);
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java
index 3bb59ff..3790c3e 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java
@@ -21,7 +21,6 @@
 import static org.mockito.Mockito.verify;
 
 import android.hardware.camera2.CameraCaptureSession;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
 import android.view.Surface;
@@ -48,13 +47,14 @@
 
     private SynchronizedCaptureSessionBaseImpl mCaptureSessionCompatBaseImpl;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() {
         mMockCameraCaptureSessionStateCallback = mock(CameraCaptureSession.StateCallback.class);
         mMockStateCallback = mock(SynchronizedCaptureSession.StateCallback.class);
 
         mCaptureSessionCompatBaseImpl = new SynchronizedCaptureSessionBaseImpl(
-                mock(CaptureSessionRepository.class), AsyncTask.THREAD_POOL_EXECUTOR,
+                mock(CaptureSessionRepository.class), android.os.AsyncTask.THREAD_POOL_EXECUTOR,
                 mScheduledExecutorService, mock(Handler.class));
         mCaptureSessionCompatBaseImpl.createCaptureSessionCompat(mock(CameraCaptureSession.class));
 
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionTest.java
index 20d5d81..64635f2 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionTest.java
@@ -23,7 +23,6 @@
 
 import android.hardware.camera2.CameraCaptureSession;
 import android.hardware.camera2.CameraDevice;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
 
@@ -64,10 +63,11 @@
     private DeferrableSurface mDeferrableSurface1;
     private DeferrableSurface mDeferrableSurface2;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() {
         mCaptureSessionRepository =
-                new CaptureSessionRepository(AsyncTask.THREAD_POOL_EXECUTOR);
+                new CaptureSessionRepository(android.os.AsyncTask.THREAD_POOL_EXECUTOR);
 
         mDeferrableSurface1 = mock(DeferrableSurface.class);
         mDeferrableSurface2 = mock(DeferrableSurface.class);
@@ -81,8 +81,8 @@
         enabledFeature.add(SynchronizedCaptureSessionOpener.FEATURE_DEFERRABLE_SURFACE_CLOSE);
 
         mCaptureSessionOpenerBuilder = new SynchronizedCaptureSessionOpener.Builder(
-                AsyncTask.SERIAL_EXECUTOR, mScheduledExecutorService, mock(Handler.class),
-                mCaptureSessionRepository, -1);
+                android.os.AsyncTask.SERIAL_EXECUTOR, mScheduledExecutorService,
+                mock(Handler.class), mCaptureSessionRepository, -1);
         mSynchronizedCaptureSessionOpener = mCaptureSessionOpenerBuilder.build();
 
         mMockCaptureSession = mock(CameraCaptureSession.class);
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java
index 2f994a7..5f0b6ff 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java
@@ -46,6 +46,7 @@
 import java.util.Objects;
 import java.util.concurrent.Executor;
 
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/AeFpsRangeTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/AeFpsRangeTest.java
index 5d32584..de0fc74 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/AeFpsRangeTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/AeFpsRangeTest.java
@@ -44,6 +44,7 @@
 
     private static final String ANY_CAMERA_ID = "0";
 
+    @SuppressWarnings("unchecked")
     @Test
     public void validEntryExists_correctRangeIsSelected() {
         Range<Integer>[] availableFpsRanges = new Range[]{
@@ -62,6 +63,7 @@
         assertThat(pick).isEqualTo(new Range<>(15, 30));
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void noValidEntry_doesNotSetFpsRange() {
         Range<Integer>[] availableFpsRanges = new Range[]{
@@ -87,6 +89,7 @@
         assertThat(pick).isNull();
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void limitedDevices_doesNotSetFpsRange() {
         Range<Integer>[] availableFpsRanges = new Range[]{
@@ -101,6 +104,7 @@
         assertThat(pick).isNull();
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void fullDevices_doesNotSetFpsRange() {
         Range<Integer>[] availableFpsRanges = new Range[]{
@@ -115,6 +119,7 @@
         assertThat(pick).isNull();
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void level3Devices_doesNotSetFpsRange() {
         Range<Integer>[] availableFpsRanges = new Range[]{
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ExcludedSupportedSizesContainerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ExcludedSupportedSizesContainerTest.java
index 4dfd1dd..748720f 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ExcludedSupportedSizesContainerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ExcludedSupportedSizesContainerTest.java
@@ -72,7 +72,6 @@
         mConfig = config;
     }
 
-    @SuppressWarnings("ConfusingArgumentToVarargsMethod")
     @Test
     public void exclude() {
         // Set up device properties
@@ -88,7 +87,7 @@
         // Get sizes to exclude
         final List<Size> excludedSizes = excludedSupportedSizesContainer.get(mConfig.mImageFormat);
 
-        assertThat(excludedSizes).containsExactly(mConfig.mExcludedSizes);
+        assertThat(excludedSizes).containsExactly((Object[]) mConfig.mExcludedSizes);
     }
 
     static class Config {
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraFilterTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraFilterTest.java
index 820a234..e985477 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraFilterTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraFilterTest.java
@@ -24,7 +24,7 @@
 import android.hardware.camera2.CameraCharacteristics;
 import android.os.Build;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.internal.Camera2CameraInfoImpl;
 import androidx.camera.camera2.internal.compat.CameraCharacteristicsCompat;
 import androidx.camera.core.CameraFilter;
@@ -46,7 +46,7 @@
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2CameraFilterTest {
     private static final String BACK_ID = "0";
     private static final String FRONT_ID = "1";
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraInfoTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraInfoTest.java
index 9e3f9b4..d6883c0 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraInfoTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2CameraInfoTest.java
@@ -24,7 +24,7 @@
 import android.hardware.camera2.CameraCharacteristics;
 import android.os.Build;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.internal.Camera2CameraInfoImpl;
 import androidx.camera.camera2.internal.compat.CameraCharacteristicsCompat;
 import androidx.camera.core.impl.CameraInfoInternal;
@@ -38,7 +38,7 @@
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2CameraInfoTest {
 
     @Test
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2InteropTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2InteropTest.java
index 2594ad5..6fa48ed 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2InteropTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/interop/Camera2InteropTest.java
@@ -25,7 +25,7 @@
 import android.os.Build;
 import android.util.Range;
 
-import androidx.annotation.experimental.UseExperimental;
+import androidx.annotation.OptIn;
 import androidx.camera.camera2.impl.Camera2ImplConfig;
 import androidx.camera.camera2.internal.Camera2CaptureCallbacks;
 import androidx.camera.camera2.internal.CameraCaptureSessionStateCallbacks;
@@ -41,7 +41,7 @@
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @org.robolectric.annotation.Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
-@UseExperimental(markerClass = ExperimentalCamera2Interop.class)
+@OptIn(markerClass = ExperimentalCamera2Interop.class)
 public final class Camera2InteropTest {
     private static final int INVALID_TEMPLATE_TYPE = -1;
     private static final int INVALID_COLOR_CORRECTION_MODE = -1;
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
index 8157db1..5c061ff 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
@@ -186,6 +186,7 @@
         assertThat(cameraX1.getCameraFactory()).isEqualTo(cameraFactory1);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void canGetCameraXContext() {
         initCameraX();
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageCaptureTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageCaptureTest.java
index 8263ce2..8f3b4b0 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageCaptureTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageCaptureTest.java
@@ -192,6 +192,7 @@
     }
 
     // TODO(b/149336664): add a test to verify jpeg quality is 100 when CaptureMode is MAX_QUALITY.
+    @SuppressWarnings("unchecked")
     @Test
     public void captureWithMinLatency_jpegQualityIs95() throws InterruptedException {
         // Arrange.
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageSaverTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageSaverTest.java
index 7c49137..b00fd48 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageSaverTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/ImageSaverTest.java
@@ -193,6 +193,7 @@
         mBackgroundExecutor.shutdown();
     }
 
+    @SuppressWarnings("deprecation")
     private void createDefaultPictureFolderIfNotExist() {
         File pictureFolder = Environment.getExternalStoragePublicDirectory(
                 Environment.DIRECTORY_PICTURES);
@@ -268,6 +269,7 @@
         mContentResolver.delete(saveLocationUri, null, null);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void saveToUriWithEmptyCollection_onErrorCalled() throws InterruptedException {
         // Arrange.
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/CaptureConfigTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/CaptureConfigTest.java
index 0e55cdb..4c6bea7 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/CaptureConfigTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/CaptureConfigTest.java
@@ -250,7 +250,7 @@
     static class FakeMultiValueSet extends MultiValueSet<Object> {
         @NonNull
         @Override
-        public MultiValueSet clone() {
+        public MultiValueSet<Object> clone() {
             FakeMultiValueSet multiValueSet = new FakeMultiValueSet();
             multiValueSet.addAll(getAllItems());
             return multiValueSet;
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
index 389990c..2f1684c 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/DeferrableSurfacesTest.java
@@ -76,7 +76,7 @@
 
     @Test
     @MediumTest
-    @SuppressWarnings("deprecation") /* AsyncTask */
+    @SuppressWarnings({"deprecation", "unchecked"}) /* AsyncTask */
     public void getSurfaceTimeoutTest() {
         DeferrableSurface fakeDeferrableSurface = getFakeDeferrableSurface();
 
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/ImmediateSurfaceTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/ImmediateSurfaceTest.java
index def62a21..dae33b0 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/ImmediateSurfaceTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/impl/ImmediateSurfaceTest.java
@@ -63,6 +63,7 @@
         assertThat(surfaceListenableFuture.get()).isSameInstanceAs(mMockSurface);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void surfaceClosedExceptionWhenClosed() {
         mImmediateSurface.close();
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java b/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
index 8917150..d1dd263 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
+++ b/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
@@ -26,7 +26,6 @@
 import static org.robolectric.Shadows.shadowOf;
 
 import android.graphics.ImageFormat;
-import android.os.AsyncTask;
 import android.os.Build;
 import android.util.Pair;
 import android.util.Size;
@@ -63,7 +62,8 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
-@SuppressWarnings("UnstableApiUsage") // Needed because PausedExecutorService is marked @Beta
+// UnstableApiUsage is needed because PausedExecutorService is marked @Beta
+@SuppressWarnings({"UnstableApiUsage", "deprecation"})
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
@@ -194,7 +194,7 @@
         // Sets the callback from ProcessingImageReader to start processing
         WaitingCaptureProcessor waitingCaptureProcessor = new WaitingCaptureProcessor();
         ProcessingImageReader processingImageReader = new ProcessingImageReader(
-                mMetadataImageReader, AsyncTask.THREAD_POOL_EXECUTOR, mCaptureBundle,
+                mMetadataImageReader, android.os.AsyncTask.THREAD_POOL_EXECUTOR, mCaptureBundle,
                 waitingCaptureProcessor);
         processingImageReader.setOnImageAvailableListener(mock(
                 ImageReaderProxy.OnImageAvailableListener.class),
@@ -263,7 +263,7 @@
         MetadataImageReader metadataImageReader = new MetadataImageReader(imageReaderProxy);
 
         // Expects to throw exception when creating ProcessingImageReader.
-        new ProcessingImageReader(metadataImageReader, AsyncTask.THREAD_POOL_EXECUTOR,
+        new ProcessingImageReader(metadataImageReader, android.os.AsyncTask.THREAD_POOL_EXECUTOR,
                 mCaptureBundle,
                 NOOP_PROCESSOR);
     }
@@ -272,8 +272,8 @@
     public void captureStageExceedMaxCaptureStage_setCaptureBundleThrowsException() {
         // Creates a ProcessingImageReader with maximum Image number.
         ProcessingImageReader processingImageReader = new ProcessingImageReader(100, 100,
-                ImageFormat.YUV_420_888, 2, AsyncTask.THREAD_POOL_EXECUTOR, mCaptureBundle,
-                mock(CaptureProcessor.class));
+                ImageFormat.YUV_420_888, 2, android.os.AsyncTask.THREAD_POOL_EXECUTOR,
+                mCaptureBundle, mock(CaptureProcessor.class));
 
         // Expects to throw exception when invoke the setCaptureBundle method with a
         // CaptureBundle size greater than maximum image number.
@@ -285,8 +285,8 @@
     public void imageReaderFormatIsOutputFormat() {
         // Creates a ProcessingImageReader with input format YUV_420_888 and output JPEG
         ProcessingImageReader processingImageReader = new ProcessingImageReader(100, 100,
-                ImageFormat.YUV_420_888, 2, AsyncTask.THREAD_POOL_EXECUTOR, mCaptureBundle,
-                mock(CaptureProcessor.class), ImageFormat.JPEG);
+                ImageFormat.YUV_420_888, 2, android.os.AsyncTask.THREAD_POOL_EXECUTOR,
+                mCaptureBundle, mock(CaptureProcessor.class), ImageFormat.JPEG);
 
         assertThat(processingImageReader.getImageFormat()).isEqualTo(ImageFormat.JPEG);
     }
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/impl/DeferrableSurfaceTest.java b/camera/camera-core/src/test/java/androidx/camera/core/impl/DeferrableSurfaceTest.java
index d7839cc..30ff85a 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/impl/DeferrableSurfaceTest.java
+++ b/camera/camera-core/src/test/java/androidx/camera/core/impl/DeferrableSurfaceTest.java
@@ -139,6 +139,7 @@
         mDeferrableSurface.decrementUseCount();
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void closedSurfaceContainsSurfaceClosedException() {
         mDeferrableSurface.close();
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
index 062dd05..f848d32 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
@@ -198,6 +198,7 @@
         verifyNoMoreInteractions(mockPreviewExtenderImpl);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     @MediumTest
     public void getCaptureStagesTest_shouldSetToRepeatingRequest() {
diff --git a/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java b/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
index 4c81f04..41a8c1c 100644
--- a/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
+++ b/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
@@ -38,6 +38,7 @@
 import android.graphics.drawable.ColorDrawable;
 import android.os.Build;
 import android.util.Size;
+import android.view.Display;
 import android.view.LayoutInflater;
 import android.view.Surface;
 import android.view.SurfaceView;
@@ -54,6 +55,7 @@
 import androidx.camera.core.MeteringPointFactory;
 import androidx.camera.core.Preview;
 import androidx.camera.core.SurfaceRequest;
+import androidx.camera.core.ViewPort;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.impl.utils.futures.FutureCallback;
 import androidx.camera.core.impl.utils.futures.Futures;
@@ -129,6 +131,48 @@
     }
 
     @Test
+    public void previewViewSetScaleType_controllerRebinds() throws InterruptedException {
+        // Arrange.
+        CountDownLatch countDownLatch = new CountDownLatch(1);
+        Semaphore fitTypeSemaphore = new Semaphore(0);
+        CameraController fakeController = new CameraController(mContext) {
+
+            @Override
+            void attachPreviewSurface(@NonNull Preview.SurfaceProvider surfaceProvider,
+                    @NonNull ViewPort viewPort, @NonNull Display display) {
+                if (viewPort.getScaleType() == ViewPort.FIT) {
+                    fitTypeSemaphore.release();
+                }
+            }
+
+            @Nullable
+            @Override
+            Camera startCamera() {
+                return null;
+            }
+        };
+        AtomicReference<PreviewView> previewViewAtomicReference = new AtomicReference<>();
+        mInstrumentation.runOnMainSync(() -> {
+            PreviewView previewView = new PreviewView(mContext);
+            previewViewAtomicReference.set(previewView);
+            previewView.setImplementationMode(COMPATIBLE);
+            notifyLatchWhenLayoutReady(previewView, countDownLatch);
+            setContentView(previewView);
+        });
+        // Wait for layout ready
+        assertThat(countDownLatch.await(1, TimeUnit.SECONDS)).isTrue();
+
+        // Act: set controller then change the scale type.
+        mInstrumentation.runOnMainSync(() -> {
+            previewViewAtomicReference.get().setController(fakeController);
+            previewViewAtomicReference.get().setScaleType(PreviewView.ScaleType.FIT_CENTER);
+        });
+
+        // Assert: cameraController receives a fit type ViewPort.
+        assertThat(fitTypeSemaphore.tryAcquire(1, TimeUnit.SECONDS)).isTrue();
+    }
+
+    @Test
     public void previewViewPinched_pinchToZoomInvokedOnController()
             throws InterruptedException, UiObjectNotFoundException {
         // TODO(b/169058735): investigate and enable on Cuttlefish.
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/PreviewView.java b/camera/camera-view/src/main/java/androidx/camera/view/PreviewView.java
index 87fe126..90ed0e6 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/PreviewView.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/PreviewView.java
@@ -365,8 +365,13 @@
     /**
      * Applies a {@link ScaleType} to the preview.
      *
-     * <p> Once applied, the transformation will take immediate effect. This value can also be set
-     * in the layout XML file via the {@code app:scaleType} attribute.
+     * <p> If a {@link CameraController} is attached to {@link PreviewView}, the change will take
+     * immediate effect. It also takes immediate effect if {@link #getViewPort()} is not set in
+     * the bound {@link UseCaseGroup}. Otherwise, the {@link UseCase}s need to be bound again
+     * with the latest value of {@link #getViewPort()}.
+     *
+     * <p> This value can also be set in the layout XML file via the {@code app:scaleType}
+     * attribute.
      *
      * <p> The default value is {@link ScaleType#FILL_CENTER}.
      *
@@ -378,6 +383,8 @@
         Threads.checkMainThread();
         mPreviewTransform.setScaleType(scaleType);
         redrawPreview();
+        // Notify controller to re-calculate the crop rect.
+        attachToControllerIfReady(false);
     }
 
     /**
@@ -807,7 +814,7 @@
             mCameraController.clearPreviewSurface();
         }
         mCameraController = cameraController;
-        attachToControllerIfReady(false);
+        attachToControllerIfReady(/*shouldFailSilently=*/false);
     }
 
     /**
diff --git a/car/app/app/proguard-rules.pro b/car/app/app/proguard-rules.pro
index 738e0db..fd43f97d 100644
--- a/car/app/app/proguard-rules.pro
+++ b/car/app/app/proguard-rules.pro
@@ -5,13 +5,5 @@
 # For more details, see
 #   http://developer.android.com/guide/developing/tools/proguard.html
 
--keep class androidx.car.app.serialization.Bundleable
--keepclassmembers class * extends androidx.car.app.CarAppService
--keepclassmembers class androidx.car.app.FailureResponse
--keepclassmembers class androidx.car.app.SurfaceContainer
--keepclassmembers class androidx.car.app.CarContext {
-    androidx.car.app.HostDispatcher mHostDispatcher;
-}
--keepclassmembers class * extends androidx.car.app.Screen {
-    androidx.car.app.CarContext mCarContext;
-}
+# Keep all IInterfaces which are needed for host communications.
+-keep class androidx.car.app.** extends android.os.IInterface { *; }
diff --git a/car/app/app/src/main/java/androidx/car/app/AppInfo.java b/car/app/app/src/main/java/androidx/car/app/AppInfo.java
index 21ddd66..d034601 100644
--- a/car/app/app/src/main/java/androidx/car/app/AppInfo.java
+++ b/car/app/app/src/main/java/androidx/car/app/AppInfo.java
@@ -128,7 +128,8 @@
                         + "Assuming min API level = " + CarAppApiLevels.getLatest());
                 return CarAppApiLevels.getLatest();
             }
-            return applicationInfo.metaData.getInt(MIN_API_LEVEL_MANIFEST_KEY);
+            return applicationInfo.metaData.getInt(MIN_API_LEVEL_MANIFEST_KEY,
+                    CarAppApiLevels.getLatest());
         } catch (PackageManager.NameNotFoundException e) {
             Log.e(TAG, "Unable to read min API level from manifest. Assuming "
                     + CarAppApiLevels.getLatest(), e);
diff --git a/car/app/app/src/main/java/androidx/car/app/CarAppService.java b/car/app/app/src/main/java/androidx/car/app/CarAppService.java
index 2929ce7..e5962fe 100644
--- a/car/app/app/src/main/java/androidx/car/app/CarAppService.java
+++ b/car/app/app/src/main/java/androidx/car/app/CarAppService.java
@@ -35,6 +35,7 @@
 import androidx.car.app.serialization.BundlerException;
 import androidx.car.app.utils.RemoteUtils;
 import androidx.car.app.utils.ThreadUtils;
+import androidx.car.app.versioning.CarAppApiLevels;
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.Lifecycle.Event;
 import androidx.lifecycle.Lifecycle.State;
@@ -85,13 +86,16 @@
     private static final String TAG = "CarAppService";
     private static final String AUTO_DRIVE = "AUTO_DRIVE";
 
+    private AppInfo mAppInfo;
+
     @Nullable
     private Session mCurrentSession;
 
     @Nullable
     private HostInfo mHostInfo;
+
     @Nullable
-    private AppInfo mAppInfo;
+    private HandshakeInfo mHandshakeInfo;
 
     /**
      * Handles the host binding to this car app.
@@ -244,14 +248,28 @@
     }
 
     // Strictly to avoid synthetic accessor.
-    @Nullable
+    @NonNull
     AppInfo getAppInfo() {
+        if (mAppInfo == null) {
+            // Lazy-initialized as the package manager is not available if this is created inlined.
+            mAppInfo = AppInfo.create(this);
+        }
         return mAppInfo;
     }
 
     // Strictly to avoid synthetic accessor.
-    void setAppInfo(@Nullable AppInfo appInfo) {
-        mAppInfo = appInfo;
+    void setHandshakeInfo(@NonNull HandshakeInfo handshakeInfo) {
+        int apiLevel = handshakeInfo.getHostCarAppApiLevel();
+        if (!CarAppApiLevels.isValid(apiLevel)) {
+            throw new IllegalArgumentException("Invalid Car App API level received: " + apiLevel);
+        }
+        mHandshakeInfo = handshakeInfo;
+    }
+
+    // Strictly to avoid synthetic accessor.
+    @Nullable
+    HandshakeInfo getHandshakeInfo() {
+        return mHandshakeInfo;
     }
 
     private final ICarApp.Stub mBinder =
@@ -270,25 +288,25 @@
                         IOnDoneCallback callback) {
                     Log.d(TAG, "onAppCreate intent: " + intent);
                     RemoteUtils.dispatchHostCall(() -> {
-                        if (getCurrentSession() == null
-                                || getCurrentSession().getLifecycle().getCurrentState()
-                                == State.DESTROYED) {
-                            setCurrentSession(onCreateSession());
-                            setAppInfo(AppInfo.create(getCurrentSession().getCarContext()));
+                        Session session = getCurrentSession();
+                        if (session == null
+                                || session.getLifecycle().getCurrentState() == State.DESTROYED) {
+                            session = onCreateSession();
+                            session.getCarContext().updateHandshakeInfo(getHandshakeInfo());
+                            setCurrentSession(session);
                         }
 
                         // CarContext is not set up until the base Context is attached. First
                         // thing we need to do here is attach the base Context, so that any usage of
                         // it works after this point.
-                        CarContext carContext = getCurrentSession().getCarContext();
+                        CarContext carContext = session.getCarContext();
                         carContext.attachBaseContext(CarAppService.this, configuration);
                         carContext.setCarHost(carHost);
 
                         // Whenever the host unbinds, the screens in the stack are destroyed.  If
                         // there is another bind, before the OS has destroyed this Service, then
                         // the stack will be empty, and we need to treat it as a new instance.
-                        LifecycleRegistry registry =
-                                (LifecycleRegistry) getCurrentSession().getLifecycle();
+                        LifecycleRegistry registry = (LifecycleRegistry) session.getLifecycle();
                         Lifecycle.State state = registry.getCurrentState();
                         int screenStackSize = carContext.getCarService(
                                 ScreenManager.class).getScreenStack().size();
@@ -299,7 +317,7 @@
                                     + ", stack size: " + screenStackSize);
                             registry.handleLifecycleEvent(Event.ON_CREATE);
                             carContext.getCarService(ScreenManager.class).push(
-                                    getCurrentSession().onCreateScreen(intent));
+                                    session.onCreateScreen(intent));
                         } else {
                             Log.d(TAG, "onAppCreate the app was already created");
                             onNewIntentInternal(intent);
@@ -406,8 +424,7 @@
                         String packageName = deserializedHandshakeInfo.getHostPackageName();
                         int uid = Binder.getCallingUid();
                         setHostInfo(new HostInfo(packageName, uid));
-                        getCurrentSession().getCarContext().onHandshakeComplete(
-                                deserializedHandshakeInfo);
+                        setHandshakeInfo(deserializedHandshakeInfo);
                         RemoteUtils.sendSuccessResponse(callback, "onHandshakeCompleted", null);
                     } catch (BundlerException | IllegalArgumentException e) {
                         setHostInfo(null);
diff --git a/car/app/app/src/main/java/androidx/car/app/CarContext.java b/car/app/app/src/main/java/androidx/car/app/CarContext.java
index 41e3241..6839cbb 100644
--- a/car/app/app/src/main/java/androidx/car/app/CarContext.java
+++ b/car/app/app/src/main/java/androidx/car/app/CarContext.java
@@ -386,13 +386,8 @@
      */
     @RestrictTo(LIBRARY)
     @MainThread
-    void onHandshakeComplete(HandshakeInfo handshakeInfo) {
-        int carAppApiLevel = handshakeInfo.getHostCarAppApiLevel();
-        if (!CarAppApiLevels.isValid(carAppApiLevel)) {
-            throw new IllegalArgumentException("Invalid Car App API level received: "
-                    + carAppApiLevel);
-        }
-        mCarAppApiLevel = carAppApiLevel;
+    void updateHandshakeInfo(HandshakeInfo handshakeInfo) {
+        mCarAppApiLevel = handshakeInfo.getHostCarAppApiLevel();
     }
 
     /**
diff --git a/car/app/app/src/test/java/androidx/car/app/AppInfoTest.java b/car/app/app/src/test/java/androidx/car/app/AppInfoTest.java
index 84c7d9f..158e1fc 100644
--- a/car/app/app/src/test/java/androidx/car/app/AppInfoTest.java
+++ b/car/app/app/src/test/java/androidx/car/app/AppInfoTest.java
@@ -56,12 +56,19 @@
     }
 
     @Test
-    public void create_minApiLevel_defaultsToCurrent() {
+    public void create_minApiLevel_nullMetadata_defaultsToCurrent() {
         mApplicationInfo.metaData = null;
         AppInfo appInfo = AppInfo.create(mContext);
         assertThat(appInfo.getMinCarAppApiLevel()).isEqualTo(CarAppApiLevels.getLatest());
     }
 
+    @Test
+    public void create_minApiLevel_noMetadataKey_defaultsToCurrent() {
+        mApplicationInfo.metaData = new Bundle();
+        AppInfo appInfo = AppInfo.create(mContext);
+        assertThat(appInfo.getMinCarAppApiLevel()).isEqualTo(CarAppApiLevels.getLatest());
+    }
+
     @Test(expected = IllegalArgumentException.class)
     public void create_minApiLevel_cannotBeLowerThanOldest() {
         int minApiLevel = CarAppApiLevels.getOldest() - 1;
diff --git a/car/app/app/src/test/java/androidx/car/app/CarAppServiceTest.java b/car/app/app/src/test/java/androidx/car/app/CarAppServiceTest.java
index 918de32..b9dd5e5 100644
--- a/car/app/app/src/test/java/androidx/car/app/CarAppServiceTest.java
+++ b/car/app/app/src/test/java/androidx/car/app/CarAppServiceTest.java
@@ -119,6 +119,22 @@
     }
 
     @Test
+    public void onAppCreate_updatesCarApiLevel() throws RemoteException, BundlerException {
+        String hostPackageName = "com.google.projection.gearhead";
+        ICarApp carApp = (ICarApp) mCarAppService.onBind(null);
+        int hostApiLevel = CarAppApiLevels.LEVEL_1;
+        HandshakeInfo handshakeInfo = new HandshakeInfo(hostPackageName, hostApiLevel);
+
+        mCarAppService.setCurrentSession(null);
+        carApp.onHandshakeCompleted(Bundleable.create(handshakeInfo), mock(IOnDoneCallback.class));
+        carApp.onAppCreate(mMockCarHost, null, new Configuration(), mock(IOnDoneCallback.class));
+
+        assertThat(
+                mCarAppService.getCurrentSession().getCarContext().getCarAppApiLevel()).isEqualTo(
+                hostApiLevel);
+    }
+
+    @Test
     public void onAppCreate_createsFirstScreen() throws RemoteException {
         ICarApp carApp = (ICarApp) mCarAppService.onBind(null);
         carApp.onAppCreate(mMockCarHost, null, new Configuration(), mock(IOnDoneCallback.class));
@@ -242,17 +258,19 @@
     }
 
     @Test
-    public void onHandshakeCompleted_updatesCarApiLevel() throws RemoteException, BundlerException {
+    public void onHandshakeCompleted_updatesHandshakeInfo() throws RemoteException,
+            BundlerException {
         String hostPackageName = "com.google.projection.gearhead";
         ICarApp carApp = (ICarApp) mCarAppService.onBind(null);
-        int hostApiLevel = CarAppApiLevels.LEVEL_1;
-        HandshakeInfo handshakeInfo = new HandshakeInfo(hostPackageName, hostApiLevel);
+        assertThat(mCarAppService.getHandshakeInfo()).isNull();
 
+        HandshakeInfo handshakeInfo = new HandshakeInfo(hostPackageName, CarAppApiLevels.LEVEL_1);
         carApp.onHandshakeCompleted(Bundleable.create(handshakeInfo), mock(IOnDoneCallback.class));
-
-        assertThat(
-                mCarAppService.getCurrentSession().getCarContext().getCarAppApiLevel()).isEqualTo(
-                hostApiLevel);
+        assertThat(mCarAppService.getHandshakeInfo()).isNotNull();
+        assertThat(mCarAppService.getHandshakeInfo().getHostCarAppApiLevel()).isEqualTo(
+                handshakeInfo.getHostCarAppApiLevel());
+        assertThat(mCarAppService.getHandshakeInfo().getHostPackageName()).isEqualTo(
+                handshakeInfo.getHostPackageName());
     }
 
     @Test
@@ -299,8 +317,9 @@
     }
 
     @Test
-    public void onUnbind_rebind_callsOnCreateScreen() throws RemoteException {
+    public void onUnbind_rebind_callsOnCreateScreen() throws RemoteException, BundlerException {
         ICarApp carApp = (ICarApp) mCarAppService.onBind(null);
+
         carApp.onAppCreate(mMockCarHost, null, new Configuration(), mock(IOnDoneCallback.class));
         carApp.onAppStart(mock(IOnDoneCallback.class));
 
@@ -313,6 +332,10 @@
         assertThat(currentSession.getCarContext().getCarService(
                 ScreenManager.class).getScreenStack()).isEmpty();
 
+        String hostPackageName = "com.google.projection.gearhead";
+        int hostApiLevel = CarAppApiLevels.LEVEL_1;
+        HandshakeInfo handshakeInfo = new HandshakeInfo(hostPackageName, hostApiLevel);
+        carApp.onHandshakeCompleted(Bundleable.create(handshakeInfo), mock(IOnDoneCallback.class));
         carApp.onAppCreate(mMockCarHost, null, new Configuration(), mock(IOnDoneCallback.class));
         assertThat(currentSession.getCarContext().getCarService(
                 ScreenManager.class).getScreenStack()).hasSize(1);
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt
index c91281c..8802e15 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Recomposer.kt
@@ -53,14 +53,11 @@
 suspend fun <R> withRunningRecomposer(
     block: suspend CoroutineScope.(recomposer: Recomposer) -> R
 ): R = coroutineScope {
-    val recomposerJob = Job(coroutineContext[Job])
-    val recomposer = Recomposer(coroutineContext + recomposerJob)
+    val recomposer = Recomposer(coroutineContext)
     // Will be cancelled when recomposerJob cancels
     launch { recomposer.runRecomposeAndApplyChanges() }
-    try {
-        block(recomposer)
-    } finally {
-        recomposerJob.cancel()
+    block(recomposer).also {
+        recomposer.shutDown()
     }
 }
 
diff --git a/concurrent/futures/src/main/java/androidx/concurrent/futures/CallbackToFutureAdapter.java b/concurrent/futures/src/main/java/androidx/concurrent/futures/CallbackToFutureAdapter.java
index 1590b89..67ed8ae 100644
--- a/concurrent/futures/src/main/java/androidx/concurrent/futures/CallbackToFutureAdapter.java
+++ b/concurrent/futures/src/main/java/androidx/concurrent/futures/CallbackToFutureAdapter.java
@@ -327,6 +327,7 @@
         // toString intentionally left omitted, so that if the tag object (which holds this object
         // as a field) includes it in its toString, we won't infinitely recurse.
 
+        @SuppressWarnings("deprecation")
         @Override
         protected void finalize() {
             SafeFuture<T> localFuture = future;
diff --git a/concurrent/futures/src/test/java/androidx/concurrent/futures/AbstractResolvableFutureTest.java b/concurrent/futures/src/test/java/androidx/concurrent/futures/AbstractResolvableFutureTest.java
index d24822bf..0f36ad0 100644
--- a/concurrent/futures/src/test/java/androidx/concurrent/futures/AbstractResolvableFutureTest.java
+++ b/concurrent/futures/src/test/java/androidx/concurrent/futures/AbstractResolvableFutureTest.java
@@ -25,8 +25,14 @@
 import com.google.common.collect.Range;
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.Atomics;
-import com.google.common.util.concurrent.Uninterruptibles;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.Uninterruptibles;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+
+import org.junit.internal.runners.JUnit38ClassRunner;
+import org.junit.runner.RunWith;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -48,12 +54,6 @@
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.locks.LockSupport;
 
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-
-import org.junit.internal.runners.JUnit38ClassRunner;
-import org.junit.runner.RunWith;
-
 /**
  * Tests for {@link AbstractResolvableFuture}.
  *
@@ -232,7 +232,7 @@
      * ranges
      * derived from observing how much time actually passed for various operations.
      */
-    @SuppressWarnings({"DeprecatedThreadMethods", "ThreadPriorityCheck"})
+    @SuppressWarnings({"DeprecatedThreadMethods", "ThreadPriorityCheck", "deprecation"})
     public void testToString_delayedTimeout() throws Exception {
         TimedWaiterThread thread =
                 new TimedWaiterThread(new AbstractResolvableFuture<Object>() {
diff --git a/concurrent/futures/src/test/java/androidx/concurrent/futures/CallbackToFutureAdapterTest.java b/concurrent/futures/src/test/java/androidx/concurrent/futures/CallbackToFutureAdapterTest.java
index 5e15221..971d3ed 100644
--- a/concurrent/futures/src/test/java/androidx/concurrent/futures/CallbackToFutureAdapterTest.java
+++ b/concurrent/futures/src/test/java/androidx/concurrent/futures/CallbackToFutureAdapterTest.java
@@ -111,6 +111,7 @@
      */
     private static void createUnreachableLatchFinalizer(final CountDownLatch latch) {
         new Object() {
+            @SuppressWarnings("deprecation")
             @Override
             protected void finalize() {
                 latch.countDown();
diff --git a/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java b/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
index f8a66e7..7b5f3c7 100644
--- a/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
+++ b/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
@@ -26,7 +26,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import android.app.Activity;
 import android.content.ContentResolver;
 import android.database.Cursor;
 import android.net.Uri;
@@ -38,7 +37,6 @@
 import androidx.contentpager.content.ContentPager.ContentCallback;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -60,8 +58,10 @@
     private TestContentCallback mCallback;
     private ContentPager mPager;
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<Activity> mActivityRule = new ActivityTestRule(TestActivity.class);
+    public androidx.test.rule.ActivityTestRule<TestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
 
     @Before
     public void setUp() {
diff --git a/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java b/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
index 51643a0..a6eaaa8 100644
--- a/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
+++ b/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
@@ -22,11 +22,11 @@
 import android.app.Activity;
 import android.database.Cursor;
 
+import androidx.annotation.NonNull;
 import androidx.contentpager.content.ContentPager.ContentCallback;
 import androidx.contentpager.content.ContentPager.QueryRunner;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -37,8 +37,10 @@
 @RunWith(AndroidJUnit4.class)
 public class LoaderQueryRunnerTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<Activity> mActivityRule = new ActivityTestRule(TestActivity.class);
+    public androidx.test.rule.ActivityTestRule<TestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
 
     private Activity mActivity;
     private QueryRunner mRunner;
@@ -58,7 +60,7 @@
 
         ContentCallback dummyContentCallback = new ContentCallback() {
             @Override
-            public void onCursorReady(Query query, Cursor cursor) {
+            public void onCursorReady(@NonNull Query query, Cursor cursor) {
                 // Nothing to see here. Move along.
             }
         };
diff --git a/contentpager/contentpager/src/main/java/androidx/contentpager/content/LoaderQueryRunner.java b/contentpager/contentpager/src/main/java/androidx/contentpager/content/LoaderQueryRunner.java
index 5e054d9..7054cfe 100644
--- a/contentpager/contentpager/src/main/java/androidx/contentpager/content/LoaderQueryRunner.java
+++ b/contentpager/contentpager/src/main/java/androidx/contentpager/content/LoaderQueryRunner.java
@@ -19,7 +19,6 @@
 import static androidx.core.util.Preconditions.checkArgument;
 
 import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
 import android.content.Context;
 import android.content.Loader;
 import android.database.Cursor;
@@ -48,11 +47,12 @@
     }
 
     @Override
-    @SuppressWarnings("unchecked")  // feels spurious. But can't commit line :80 w/o this.
+    @SuppressWarnings({"unchecked", "deprecation"})
     public void query(final @NonNull Query query, @NonNull final Callback callback) {
         if (DEBUG) Log.d(TAG, "Handling query: " + query);
 
-        LoaderCallbacks callbacks = new LoaderCallbacks<Cursor>() {
+        android.app.LoaderManager.LoaderCallbacks<Cursor> callbacks =
+                new android.app.LoaderManager.LoaderCallbacks<Cursor>() {
             @Override
             public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
                 if (DEBUG) Log.i(TAG, "Loading results for query: " + query);
diff --git a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
index 4f55c81..c7fce80 100644
--- a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
+++ b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
@@ -248,6 +248,7 @@
         assertThat(consumed, is(new int[]{24, 225}));
     }
 
+    @SuppressWarnings("unchecked")
     private static CoordinatorLayout.Behavior<View> setupMockBehavior() {
         CoordinatorLayout.Behavior<View> mockBehavior = mock(CoordinatorLayout.Behavior.class);
         when(mockBehavior.onStartNestedScroll(
diff --git a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
index 7cda115c..666de71 100644
--- a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
+++ b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
@@ -36,6 +36,7 @@
 import java.util.Collection;
 import java.util.List;
 
+@SuppressWarnings("unchecked")
 @RunWith(Parameterized.class)
 @SmallTest
 public class CoordinatorLayoutSortTest {
diff --git a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
index 1e7336e..548f4ba 100644
--- a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
+++ b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
@@ -69,6 +69,7 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class CoordinatorLayoutTest {
diff --git a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/DirectedAcyclicGraphTest.java b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/DirectedAcyclicGraphTest.java
index c7726a7..9040367 100644
--- a/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/DirectedAcyclicGraphTest.java
+++ b/coordinatorlayout/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/DirectedAcyclicGraphTest.java
@@ -82,6 +82,7 @@
         mGraph.addEdge(node, edge);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void test_getIncomingEdges() {
         final TestNode node = new TestNode("node");
diff --git a/core/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java b/core/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
index dd8ee2d..157ed9c 100644
--- a/core/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
@@ -85,6 +85,7 @@
 import java.util.Arrays;
 import java.util.List;
 
+@SuppressWarnings("unchecked")
 @RunWith(AndroidJUnit4.class)
 public class ShortcutManagerCompatTest extends BaseInstrumentationTestCase<TestActivity> {
 
diff --git a/development/build_log_simplifier/messages.ignore b/development/build_log_simplifier/messages.ignore
index 95cf42b..26d8d03 100644
--- a/development/build_log_simplifier/messages.ignore
+++ b/development/build_log_simplifier/messages.ignore
@@ -386,6 +386,8 @@
 # b/166471969
 .*androidTest.*AndroidManifest.*xml Warning.*:
 Package name.*test' used in: .*AndroidManifest.*xml.*
+\[:internal\-testutils\-espresso\] \$OUT_DIR/androidx/internal\-testutils\-espresso/build/intermediates/merged_manifest/debug/AndroidManifest\.xml Warning:
+Package name 'androidx\.testutils' used in: :internal\-testutils\-espresso, :internal\-testutils\-runtime\.
 \$OUT_DIR/androidx/compose/ui/ui\-tooling/build/intermediates/tmp/manifest/androidTest/debug/manifestMerger[0-9]+\.xml:[0-9]+:[0-9]+\-[0-9]+:[0-9]+ Warning:
 \[:internal\-testutils\-runtime\] \$OUT_DIR/androidx/internal\-testutils\-runtime/build/intermediates/merged_manifest/debug/AndroidManifest\.xml Warning:
 # > Task :leanback:leanback-paging:generateApi
@@ -427,6 +429,7 @@
 Set 'kapt\.includeCompileClasspath = false' to disable discovery\.
 Run the build with '\-\-info' for more details\.
 # > Task :camera:camera-core:compileDebugUnitTestJavaWithJavac
+Note\: \$SUPPORT\/camera\/camera\-core\/src\/test\/java\/androidx\/camera\/core\/CameraSelectorTest\.java uses or overrides a deprecated API\.
 Note: \$SUPPORT/camera/camera\-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest\.java uses or overrides a deprecated API\.
 Note: \$SUPPORT/camera/camera\-core/src/test/java/androidx/camera/core/impl/DeferrableSurfaceTest\.java uses unchecked or unsafe operations\.
 # > Task :wear:wear-input:compileDebugUnitTestJavaWithJavac
@@ -664,4 +667,6 @@
 w\: \$SUPPORT\/viewpager[0-9]+\/viewpager[0-9]+\/src\/androidTest\/java\/androidx\/viewpager[0-9]+\/widget\/OnApplyWindowInsetsListenerTest\.kt\: \([0-9]+\, [0-9]+\)\: \'consumeSystemWindowInsets\(\)\: WindowInsetsCompat\' is deprecated\. Deprecated in Java
 w\: \$SUPPORT\/viewpager[0-9]+\/viewpager[0-9]+\/src\/androidTest\/java\/androidx\/viewpager[0-9]+\/widget\/OnApplyWindowInsetsListenerTest\.kt\: \([0-9]+\, [0-9]+\)\: Unnecessary non\-null assertion \(\!\!\) on a non\-null receiver of type WindowInsetsCompat
 w\: \$SUPPORT\/viewpager[0-9]+\/viewpager[0-9]+\/src\/androidTest\/java\/androidx\/viewpager[0-9]+\/widget\/OnApplyWindowInsetsListenerTest\.kt\: \([0-9]+\, [0-9]+\)\: \'consumeStableInsets\(\)\: WindowInsetsCompat\' is deprecated\. Deprecated in Java
-w\: \$SUPPORT\/viewpager[0-9]+\/viewpager[0-9]+\/src\/androidTest\/java\/androidx\/viewpager[0-9]+\/widget\/OnApplyWindowInsetsListenerTest\.kt\: \([0-9]+\, [0-9]+\)\: \'consumeDisplayCutout\(\)\: WindowInsetsCompat\' is deprecated\. Deprecated in Java
\ No newline at end of file
+w\: \$SUPPORT\/viewpager[0-9]+\/viewpager[0-9]+\/src\/androidTest\/java\/androidx\/viewpager[0-9]+\/widget\/OnApplyWindowInsetsListenerTest\.kt\: \([0-9]+\, [0-9]+\)\: \'consumeDisplayCutout\(\)\: WindowInsetsCompat\' is deprecated\. Deprecated in Java
+# > Task :contentpager:contentpager:compileDebugAndroidTestJavaWithJavac
+Note: \$SUPPORT/contentpager/contentpager/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest\.java uses or overrides a deprecated API\.
\ No newline at end of file
diff --git a/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerCustomThemeTest.java b/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerCustomThemeTest.java
index 6b4033d..6b3c6b5 100644
--- a/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerCustomThemeTest.java
+++ b/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerCustomThemeTest.java
@@ -23,7 +23,6 @@
 import androidx.drawerlayout.test.R;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -31,9 +30,10 @@
 
 @RunWith(AndroidJUnit4.class)
 public class DrawerCustomThemeTest {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<DrawerCustomThemeActivity> mActivityTestRule =
-            new ActivityTestRule<>(DrawerCustomThemeActivity.class);
+    public final androidx.test.rule.ActivityTestRule<DrawerCustomThemeActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(DrawerCustomThemeActivity.class);
 
     @Test
     @SmallTest
diff --git a/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerNoThemeTest.java b/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerNoThemeTest.java
index b44b5e9..745f8fe 100644
--- a/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerNoThemeTest.java
+++ b/drawerlayout/drawerlayout/src/androidTest/java/androidx/drawerlayout/widget/DrawerNoThemeTest.java
@@ -23,7 +23,6 @@
 import androidx.drawerlayout.test.R;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -31,9 +30,10 @@
 
 @RunWith(AndroidJUnit4.class)
 public class DrawerNoThemeTest {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<DrawerNoThemeActivity> mActivityTestRule =
-            new ActivityTestRule<>(DrawerNoThemeActivity.class);
+    public final androidx.test.rule.ActivityTestRule<DrawerNoThemeActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(DrawerNoThemeActivity.class);
 
     @Test
     @SmallTest
diff --git a/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java b/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
index 2ad1ee0..75f6869 100644
--- a/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
+++ b/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
@@ -34,7 +34,6 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -44,19 +43,22 @@
 import org.mockito.internal.matchers.GreaterThan;
 import org.mockito.internal.matchers.LessThan;
 
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class FlingTests {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<AnimationActivity> mActivityTestRule;
+    public final androidx.test.rule.ActivityTestRule<AnimationActivity> mActivityTestRule;
     public View mView1;
     public View mView2;
 
     @Rule
     public ExpectedException mExpectedException = ExpectedException.none();
 
+    @SuppressWarnings("deprecation")
     public FlingTests() {
-        mActivityTestRule = new ActivityTestRule<>(AnimationActivity.class);
+        mActivityTestRule = new androidx.test.rule.ActivityTestRule<>(AnimationActivity.class);
     }
 
     @Before
diff --git a/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java b/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
index b774708..d55d3ed 100644
--- a/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
+++ b/dynamic-animation/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
@@ -47,7 +47,6 @@
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -55,18 +54,21 @@
 import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 
+@SuppressWarnings("unchecked")
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class SpringTests {
-    @Rule public final ActivityTestRule<AnimationActivity> mActivityTestRule;
+    @SuppressWarnings("deprecation")
+    @Rule public final androidx.test.rule.ActivityTestRule<AnimationActivity> mActivityTestRule;
     public View mView1;
     public View mView2;
 
     @Rule
     public ExpectedException mExpectedException = ExpectedException.none();
 
+    @SuppressWarnings("deprecation")
     public SpringTests() {
-        mActivityTestRule = new ActivityTestRule<>(AnimationActivity.class);
+        mActivityTestRule = new androidx.test.rule.ActivityTestRule<>(AnimationActivity.class);
     }
 
     @Before
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
index 47142fd..0f0c808 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
@@ -36,7 +36,6 @@
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.Suppress;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
@@ -50,9 +49,10 @@
 @Suppress
 public class EmojiKeyboardTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<TestActivity> mActivityRule = new ActivityTestRule<>(
-            TestActivity.class);
+    public androidx.test.rule.ActivityTestRule<TestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
     private Instrumentation mInstrumentation;
 
     @BeforeClass
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
index 4f4b856..15beb23 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
@@ -35,7 +35,6 @@
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -48,9 +47,10 @@
 @SdkSuppress(minSdkVersion = 19)
 public class EmojiSpanInstrumentationTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<TestActivity> mActivityRule = new ActivityTestRule<>(
-            TestActivity.class);
+    public androidx.test.rule.ActivityTestRule<TestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
     private Instrumentation mInstrumentation;
 
     @BeforeClass
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
index faa4ad1..a4d8db8 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
@@ -35,7 +35,6 @@
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -47,9 +46,10 @@
 @RunWith(AndroidJUnit4.class)
 public class EmojiEditTextTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<TestActivity> mActivityRule = new ActivityTestRule<>(
-            TestActivity.class);
+    public androidx.test.rule.ActivityTestRule<TestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(TestActivity.class);
     private Instrumentation mInstrumentation;
 
     @BeforeClass
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
index 2e92a7c..25b29eb 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
@@ -151,6 +151,7 @@
         verify(mWatcher, times(1)).afterTextChanged(any(Editable.class));
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testDoesNotBlockSpanCallbacks_forNonEmojiSpans() {
         final QuoteSpan span = mock(QuoteSpan.class);
diff --git a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java
index 85484de..4bbfe9f 100644
--- a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java
+++ b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java
@@ -66,6 +66,7 @@
 import java.util.concurrent.Executor;
 
 /** Tests {@link DefaultKeyedAppStatesReporter}. */
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = 21)
diff --git a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/KeyedAppStateTest.java b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/KeyedAppStateTest.java
index 464fbb3..a481663 100644
--- a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/KeyedAppStateTest.java
+++ b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/KeyedAppStateTest.java
@@ -40,6 +40,7 @@
 import org.robolectric.annotation.internal.DoNotInstrument;
 
 /** Tests {@link KeyedAppState}. */
+@SuppressWarnings("deprecation")
 @RunWith(RobolectricTestRunner.class)
 @DoNotInstrument
 @Config(minSdk = 21)
diff --git a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/TestHandler.java b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/TestHandler.java
index f8d0945..d09aeb7 100644
--- a/enterprise/feedback/src/test/java/androidx/enterprise/feedback/TestHandler.java
+++ b/enterprise/feedback/src/test/java/androidx/enterprise/feedback/TestHandler.java
@@ -25,6 +25,7 @@
 
 /** Handler which stores the most recently handled message in a public field. */
 @DoNotInstrument
+@SuppressWarnings("deprecation")
 class TestHandler extends Handler {
 
     @Nullable
diff --git a/enterprise/feedback/testing/src/test/java/androidx/enterprise/feedback/FakeKeyedAppStatesReporterTest.java b/enterprise/feedback/testing/src/test/java/androidx/enterprise/feedback/FakeKeyedAppStatesReporterTest.java
index fe34f6a..5685db7 100644
--- a/enterprise/feedback/testing/src/test/java/androidx/enterprise/feedback/FakeKeyedAppStatesReporterTest.java
+++ b/enterprise/feedback/testing/src/test/java/androidx/enterprise/feedback/FakeKeyedAppStatesReporterTest.java
@@ -82,6 +82,7 @@
         assertThat(mReporter.getOnDeviceKeyedAppStates()).containsExactly(KEYED_APP_STATE);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void setStates_deprecated_isRecordedInOnDeviceKeyedAppStates() {
         mReporter.setStates(singletonList(KEYED_APP_STATE));
@@ -214,6 +215,7 @@
         assertThat(mReporter.getUploadedKeyedAppStates()).containsExactly(KEYED_APP_STATE);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void setStatesImmediate_deprecated_isRecordedInUploadedKeyedAppStates() {
         mReporter.setStatesImmediate(singletonList(KEYED_APP_STATE));
diff --git a/exifinterface/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java b/exifinterface/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
index 7e1ec2e..ba44e3b 100644
--- a/exifinterface/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
+++ b/exifinterface/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
@@ -219,23 +219,23 @@
     private static final HashMap<Integer, Pair> FLIP_STATE_AND_ROTATION_DEGREES = new HashMap<>();
     static {
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_UNDEFINED, new Pair(false, 0));
+                ExifInterface.ORIENTATION_UNDEFINED, new Pair<>(false, 0));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_NORMAL, new Pair(false, 0));
+                ExifInterface.ORIENTATION_NORMAL, new Pair<>(false, 0));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_ROTATE_90, new Pair(false, 90));
+                ExifInterface.ORIENTATION_ROTATE_90, new Pair<>(false, 90));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_ROTATE_180, new Pair(false, 180));
+                ExifInterface.ORIENTATION_ROTATE_180, new Pair<>(false, 180));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_ROTATE_270, new Pair(false, 270));
+                ExifInterface.ORIENTATION_ROTATE_270, new Pair<>(false, 270));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_FLIP_HORIZONTAL, new Pair(true, 0));
+                ExifInterface.ORIENTATION_FLIP_HORIZONTAL, new Pair<>(true, 0));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_TRANSVERSE, new Pair(true, 90));
+                ExifInterface.ORIENTATION_TRANSVERSE, new Pair<>(true, 90));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_FLIP_VERTICAL, new Pair(true, 180));
+                ExifInterface.ORIENTATION_FLIP_VERTICAL, new Pair<>(true, 180));
         FLIP_STATE_AND_ROTATION_DEGREES.put(
-                ExifInterface.ORIENTATION_TRANSPOSE, new Pair(true, 270));
+                ExifInterface.ORIENTATION_TRANSPOSE, new Pair<>(true, 270));
     }
 
     private static final String[] EXIF_TAGS = {
@@ -919,6 +919,7 @@
 
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     @SmallTest
     public void testInterchangeabilityBetweenTwoIsoSpeedTags() throws IOException {
diff --git a/leanback/leanback-tab/src/androidTest/java/androidx/leanback/tab/app/PagerAdapter.java b/leanback/leanback-tab/src/androidTest/java/androidx/leanback/tab/app/PagerAdapter.java
index 6f6634b..90ce54e 100644
--- a/leanback/leanback-tab/src/androidTest/java/androidx/leanback/tab/app/PagerAdapter.java
+++ b/leanback/leanback-tab/src/androidTest/java/androidx/leanback/tab/app/PagerAdapter.java
@@ -20,6 +20,7 @@
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentStatePagerAdapter;
 
+@SuppressWarnings("deprecation")
 public class PagerAdapter extends FragmentStatePagerAdapter {
 
     int mNumOfTabs;
diff --git a/leanback/leanback/build.gradle b/leanback/leanback/build.gradle
index 8e03560..3cbeb52 100644
--- a/leanback/leanback/build.gradle
+++ b/leanback/leanback/build.gradle
@@ -18,6 +18,7 @@
     api("androidx.recyclerview:recyclerview:1.2.0-beta01")
     api("androidx.appcompat:appcompat:1.0.0")
 
+    androidTestImplementation(KOTLIN_STDLIB)
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
     androidTestImplementation(ANDROIDX_TEST_CORE)
     androidTestImplementation(ANDROIDX_TEST_RUNNER)
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
index 058c193..02e6d11 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
@@ -206,8 +206,8 @@
 
     public static class MyFragment extends Fragment implements
             BrowseFragment.MainFragmentAdapterProvider {
-        BrowseFragment.MainFragmentAdapter mMainFragmentAdapter = new BrowseFragment
-                .MainFragmentAdapter(this);
+        BrowseFragment.MainFragmentAdapter<MyFragment> mMainFragmentAdapter =
+                new BrowseFragment.MainFragmentAdapter<>(this);
 
         @Nullable
         @Override
@@ -217,7 +217,7 @@
         }
 
         @Override
-        public BrowseFragment.MainFragmentAdapter getMainFragmentAdapter() {
+        public BrowseFragment.MainFragmentAdapter<MyFragment> getMainFragmentAdapter() {
             return mMainFragmentAdapter;
         }
     }
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
index 1a36149..fb87cc6 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
@@ -203,8 +203,8 @@
 
     public static class MyFragment extends Fragment implements
             BrowseSupportFragment.MainFragmentAdapterProvider {
-        BrowseSupportFragment.MainFragmentAdapter mMainFragmentAdapter = new BrowseSupportFragment
-                .MainFragmentAdapter(this);
+        BrowseSupportFragment.MainFragmentAdapter<MyFragment> mMainFragmentAdapter =
+                new BrowseSupportFragment.MainFragmentAdapter<>(this);
 
         @Nullable
         @Override
@@ -214,7 +214,7 @@
         }
 
         @Override
-        public BrowseSupportFragment.MainFragmentAdapter getMainFragmentAdapter() {
+        public BrowseSupportFragment.MainFragmentAdapter<MyFragment> getMainFragmentAdapter() {
             return mMainFragmentAdapter;
         }
     }
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
index afc30c9..a6e6a24 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
@@ -54,6 +54,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class GuidedStepFragmentTest extends GuidedStepFragmentTestBase {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
index 450c145..97ff132 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
@@ -51,6 +51,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class GuidedStepSupportFragmentTest extends GuidedStepSupportFragmentTestBase {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
index 0bd7956..cecbfc8 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
@@ -400,7 +400,7 @@
     }
 
     static class StableIdAdapter extends ObjectAdapter {
-        ArrayList<Integer> mList = new ArrayList();
+        ArrayList<Integer> mList = new ArrayList<>();
 
         @Override
         public long getId(int position) {
@@ -526,8 +526,8 @@
 
     public static class F_Base extends BrowseFragment {
 
-        List<Long> mEntranceTransitionStartTS = new ArrayList();
-        List<Long> mEntranceTransitionEndTS = new ArrayList();
+        List<Long> mEntranceTransitionStartTS = new ArrayList<>();
+        List<Long> mEntranceTransitionEndTS = new ArrayList<>();
 
         @Override
         protected void onEntranceTransitionStart() {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
index fae7d87..cfaf5c2 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
@@ -397,7 +397,7 @@
     }
 
     static class StableIdAdapter extends ObjectAdapter {
-        ArrayList<Integer> mList = new ArrayList();
+        ArrayList<Integer> mList = new ArrayList<>();
 
         @Override
         public long getId(int position) {
@@ -523,8 +523,8 @@
 
     public static class F_Base extends BrowseSupportFragment {
 
-        List<Long> mEntranceTransitionStartTS = new ArrayList();
-        List<Long> mEntranceTransitionEndTS = new ArrayList();
+        List<Long> mEntranceTransitionStartTS = new ArrayList<>();
+        List<Long> mEntranceTransitionEndTS = new ArrayList<>();
 
         @Override
         protected void onEntranceTransitionStart() {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTestFragment.java b/leanback/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTestFragment.java
index fb4ed92..5dbad85 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTestFragment.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTestFragment.java
@@ -31,7 +31,7 @@
         }
     }
 
-    static HashMap<Long, Callback> sCallbacks = new HashMap();
+    static HashMap<Long, Callback> sCallbacks = new HashMap<>();
     public static GuidanceStylist.Guidance GUIDANCE = null;
     public static List<GuidedAction> ACTION_LIST = null;
     public static long LAST_CLICKED_ACTION_ID = -1;
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
index 8e7d608..a16c430 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
@@ -54,7 +54,7 @@
     }
 
     public static class PlaybackBannerControlGlueImpl
-            extends PlaybackBannerControlGlue {
+            extends PlaybackBannerControlGlue<PlayerAdapter> {
         public PlaybackBannerControlGlueImpl(Context context) {
             super(context, new int[] {1, 2 , 3, 4, 5}, new PlayerAdapterSample());
         }
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
index d3cfa19..080365e 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
@@ -55,6 +55,7 @@
         }
     }
 
+    @SuppressWarnings("unchecked")
     public static class PlaybackTransportControlGlueImpl
             extends PlaybackTransportControlGlue {
         public PlaybackTransportControlGlueImpl(Context context) {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
index d72bbcc..87a16c1 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
@@ -118,7 +118,7 @@
         final TextView v3 = new Button(context);
         bar.addView(v3, 100, 100);
 
-        ArrayList<View> focusables = new ArrayList();
+        ArrayList<View> focusables = new ArrayList<>();
         bar.addFocusables(focusables, View.FOCUS_DOWN);
         assertEquals(1, focusables.size());
         assertSame(focusables.get(0), v2);
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridActivity.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridActivity.java
index 693546d..48a59c7 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridActivity.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridActivity.java
@@ -132,6 +132,7 @@
         return view;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Intent intent = getIntent();
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
index 82e1323..5f7a59a 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
@@ -1168,7 +1168,7 @@
             }
         });
         waitForScrollIdle();
-        final ArrayList<RecyclerView.ViewHolder> moveViewHolders = new ArrayList();
+        final ArrayList<RecyclerView.ViewHolder> moveViewHolders = new ArrayList<>();
         for (int i = 51;; i++) {
             RecyclerView.ViewHolder vh = mGridView.findViewHolderForAdapterPosition(i);
             if (vh == null) {
@@ -1233,7 +1233,7 @@
                 mActivity.moveItem(51, 1000, true);
             }
         });
-        final ArrayList<View> moveInViewHolders = new ArrayList();
+        final ArrayList<View> moveInViewHolders = new ArrayList<>();
         waitForItemAnimationStart();
         mActivityTestRule.runOnUiThread(new Runnable() {
             @Override
@@ -1297,7 +1297,7 @@
                 mActivity.moveItem(1499, 1, true);
             }
         });
-        final ArrayList<View> moveInViewHolders = new ArrayList();
+        final ArrayList<View> moveInViewHolders = new ArrayList<>();
         waitForItemAnimationStart();
         mActivityTestRule.runOnUiThread(new Runnable() {
             @Override
@@ -6129,7 +6129,7 @@
 
         initActivity(intent);
 
-        final HashSet<View> moveAnimationViews = new HashSet();
+        final HashSet<View> moveAnimationViews = new HashSet<>();
         mActivity.mImportantForAccessibilityListener =
                 new GridActivity.ImportantForAccessibilityListener() {
             RecyclerView.LayoutManager mLM = mGridView.getLayoutManager();
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
index ac5ce09..2f6ed29 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
@@ -91,8 +91,8 @@
         mRecyclerView.setHasFixedSize(false); // force layout items in layout pass
     }
 
-    List populateData() {
-        List data = new ArrayList();
+    List<Integer> populateData() {
+        List<Integer> data = new ArrayList<>();
         for (int i = 0; i < 10000; i++) {
             data.add(i);
         }
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
index 50e78e7..43d2aaf 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
@@ -46,6 +46,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+@SuppressWarnings("unchecked")
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class ObjectAdapterTest {
diff --git a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
index 080fd44..ab90c40 100644
--- a/leanback/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
+++ b/leanback/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
@@ -51,7 +51,7 @@
 public class PlaybackTransportRowPresenterTest {
 
     Context mContext;
-    PlaybackTransportControlGlue mGlue;
+    PlaybackTransportControlGlue<PlayerAdapter> mGlue;
     PlaybackGlueHostImplWithViewHolder mHost;
     PlayerAdapter mImpl;
     PlaybackTransportRowPresenter.ViewHolder mViewHolder;
@@ -68,7 +68,7 @@
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mGlue = new PlaybackTransportControlGlue(mContext, mImpl) {
+                mGlue = new PlaybackTransportControlGlue<PlayerAdapter>(mContext, mImpl) {
                     @Override
                     protected void onCreatePrimaryActions(ArrayObjectAdapter
                             primaryActionsAdapter) {
diff --git a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
index f5eda7f..f34e124 100644
--- a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
+++ b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
@@ -112,6 +112,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation")
     @Nullable
     private static Constructor<? extends GeneratedAdapter> generatedConstructor(Class<?> klass) {
         try {
diff --git a/lifecycle/lifecycle-process/src/test/java/androidx/lifecycle/DispatcherActivityCallbackTest.java b/lifecycle/lifecycle-process/src/test/java/androidx/lifecycle/DispatcherActivityCallbackTest.java
index c723dab..50c86f1 100644
--- a/lifecycle/lifecycle-process/src/test/java/androidx/lifecycle/DispatcherActivityCallbackTest.java
+++ b/lifecycle/lifecycle-process/src/test/java/androidx/lifecycle/DispatcherActivityCallbackTest.java
@@ -24,8 +24,6 @@
 
 import android.annotation.SuppressLint;
 import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
 import android.os.Bundle;
 
 import org.junit.Test;
@@ -42,14 +40,15 @@
         checkReportFragment(callback, activity);
     }
 
+    @SuppressWarnings("deprecation")
     @SuppressLint("CommitTransaction")
     private void checkReportFragment(LifecycleDispatcher.DispatcherActivityCallback callback,
             Activity activity) {
         android.app.FragmentManager fm = mock(android.app.FragmentManager.class);
-        FragmentTransaction transaction = mock(FragmentTransaction.class);
+        android.app.FragmentTransaction transaction = mock(android.app.FragmentTransaction.class);
         when(activity.getFragmentManager()).thenReturn(fm);
         when(fm.beginTransaction()).thenReturn(transaction);
-        when(transaction.add(any(Fragment.class), anyString())).thenReturn(transaction);
+        when(transaction.add(any(android.app.Fragment.class), anyString())).thenReturn(transaction);
         callback.onActivityCreated(activity, mock(Bundle.class));
         verify(activity).getFragmentManager();
         verify(fm).beginTransaction();
diff --git a/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.java b/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.java
index 0d5783c..7e20deb 100644
--- a/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.java
+++ b/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.java
@@ -106,6 +106,7 @@
             }
         };
         ViewModelProvider.KeyedFactory keyed = new ViewModelProvider.KeyedFactory() {
+            @SuppressWarnings("unchecked")
             @NonNull
             @Override
             public <T extends ViewModel> T create(@NonNull String key,
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
index b856e04..b54cc59 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
@@ -202,6 +202,7 @@
     /**
      * Tests {@link MediaSessionCompat#setFlags}.
      */
+    @SuppressWarnings("deprecation")
     @Test
     @SmallTest
     public void testSetFlags() throws Exception {
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
index 7a1d085..b0fdbcb 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
@@ -77,6 +77,7 @@
     private MediaControllerCompat mMediaController;
     private ControllerCallback mMediaControllerCallback;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() throws InterruptedException {
         mServiceVersion = getArguments().getString(KEY_SERVICE_VERSION, "");
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
index c01aeb2..1f3976f 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
@@ -78,6 +78,7 @@
     private MediaController mMediaController;
     private ControllerCallback mMediaControllerCallback;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() throws InterruptedException {
         mServiceVersion = getArguments().getString(KEY_SERVICE_VERSION, "");
diff --git a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
index 9953185..e53d656 100644
--- a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
+++ b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
@@ -175,6 +175,7 @@
     /**
      * Tests that a session can be created and that all the fields are initialized correctly.
      */
+    @SuppressWarnings("deprecation")
     @Test
     @SmallTest
     public void testCreateSession() throws Exception {
diff --git a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/StubMediaBrowserServiceCompat.java b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/StubMediaBrowserServiceCompat.java
index 76314be..814ac7c 100644
--- a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/StubMediaBrowserServiceCompat.java
+++ b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/StubMediaBrowserServiceCompat.java
@@ -81,6 +81,7 @@
     private String mExpectedCallerPackageName;
     private int mExpectedCallerUid;
 
+    @SuppressWarnings("deprecation")
     @Override
     public void onCreate() {
         super.onCreate();
@@ -420,6 +421,7 @@
             notifyCurrentControllerInfo("onRemoveQueueItem");
         }
 
+        @SuppressWarnings("deprecation")
         @Override
         public void onRemoveQueueItemAt(int index) {
             notifyCurrentControllerInfo("onRemoveQueueItemAt");
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
index 49e3478..0567306 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerCompatTest.java
@@ -78,6 +78,7 @@
     private MediaControllerCompat mMediaController;
     private ControllerCallback mMediaControllerCallback;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() throws InterruptedException, RemoteException {
         mServiceVersion = getArguments().getString(KEY_SERVICE_VERSION, "");
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
index 464f21e..16fe1cc 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/RemoteUserInfoWithMediaControllerTest.java
@@ -78,6 +78,7 @@
     private MediaController mMediaController;
     private ControllerCallback mMediaControllerCallback;
 
+    @SuppressWarnings("deprecation")
     @Before
     public void setUp() throws InterruptedException {
         mServiceVersion = getArguments().getString(KEY_SERVICE_VERSION, "");
diff --git a/media2/session/version-compat-tests/current/client/build.gradle b/media2/session/version-compat-tests/current/client/build.gradle
index a71c527..4dbf70c 100644
--- a/media2/session/version-compat-tests/current/client/build.gradle
+++ b/media2/session/version-compat-tests/current/client/build.gradle
@@ -36,3 +36,7 @@
         minSdkVersion 16
     }
 }
+
+androidx {
+    failOnDeprecationWarnings = false
+}
\ No newline at end of file
diff --git a/media2/session/version-compat-tests/current/service/build.gradle b/media2/session/version-compat-tests/current/service/build.gradle
index cebe889..8dabfb8 100644
--- a/media2/session/version-compat-tests/current/service/build.gradle
+++ b/media2/session/version-compat-tests/current/service/build.gradle
@@ -35,3 +35,7 @@
         minSdkVersion 16
     }
 }
+
+androidx {
+    failOnDeprecationWarnings = false
+}
\ No newline at end of file
diff --git a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
index 76136c5..662fefd 100644
--- a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
+++ b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
@@ -348,7 +348,7 @@
     @NonNull
     public ListenableFuture<PlayerResult> setMediaItem(@NonNull MediaItem item) {
         mItem = item;
-        ArrayList list = new ArrayList<>();
+        ArrayList<MediaItem> list = new ArrayList<>();
         list.add(item);
         return setPlaylist(list, null);
     }
diff --git a/media2/session/version-compat-tests/previous/client/build.gradle b/media2/session/version-compat-tests/previous/client/build.gradle
index 3fd0d17..ae04edb8 100644
--- a/media2/session/version-compat-tests/previous/client/build.gradle
+++ b/media2/session/version-compat-tests/previous/client/build.gradle
@@ -36,3 +36,7 @@
         minSdkVersion 19
     }
 }
+
+androidx {
+    failOnDeprecationWarnings = false
+}
\ No newline at end of file
diff --git a/media2/session/version-compat-tests/previous/service/build.gradle b/media2/session/version-compat-tests/previous/service/build.gradle
index aa5cba0..0a1091e 100644
--- a/media2/session/version-compat-tests/previous/service/build.gradle
+++ b/media2/session/version-compat-tests/previous/service/build.gradle
@@ -35,3 +35,7 @@
         minSdkVersion 19
     }
 }
+
+androidx {
+    failOnDeprecationWarnings = false
+}
\ No newline at end of file
diff --git a/media2/session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java b/media2/session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
index 46c9dbc..cbbeb33 100644
--- a/media2/session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
+++ b/media2/session/version-compat-tests/previous/service/src/androidTest/java/androidx/media2/test/service/MockPlayer.java
@@ -337,7 +337,7 @@
     @Override
     public ListenableFuture<PlayerResult> setMediaItem(MediaItem item) {
         mItem = item;
-        ArrayList list = new ArrayList<>();
+        ArrayList<MediaItem> list = new ArrayList<>();
         list.add(item);
         return setPlaylist(list, null);
     }
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithPlayerTest.java b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithPlayerTest.java
index 43d18dd..c3d0127 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithPlayerTest.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithPlayerTest.java
@@ -45,7 +45,6 @@
 import androidx.media2.common.SessionPlayer.TrackInfo;
 import androidx.media2.session.MediaController;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
 import org.junit.Before;
@@ -78,9 +77,10 @@
     private MediaControlView mMediaControlView;
     private MediaItem mFileSchemeMediaItem;
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<MediaControlViewTestActivity> mActivityRule =
-            new ActivityTestRule<>(MediaControlViewTestActivity.class);
+    public androidx.test.rule.ActivityTestRule<MediaControlViewTestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(MediaControlViewTestActivity.class);
 
     public MediaControlView_WithPlayerTest(String playerType) {
         mPlayerType = playerType;
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithoutPlayerTest.java b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithoutPlayerTest.java
index d2ec15e..8c94b8c 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithoutPlayerTest.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaControlView_WithoutPlayerTest.java
@@ -32,7 +32,6 @@
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -52,9 +51,10 @@
     private MediaControlViewTestActivity mActivity;
     private MediaControlView mMediaControlView;
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<MediaControlViewTestActivity> mActivityRule =
-            new ActivityTestRule<>(MediaControlViewTestActivity.class);
+    public androidx.test.rule.ActivityTestRule<MediaControlViewTestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(MediaControlViewTestActivity.class);
 
     @Before
     public void setup() throws Throwable {
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaTestBase.java b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaTestBase.java
index 03ad52d..bac7e6c 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/MediaTestBase.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/MediaTestBase.java
@@ -32,6 +32,7 @@
     @BeforeClass
     public static void setupMainLooper() {
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
+            @SuppressWarnings("deprecation")
             @Override
             public void run() {
                 // Prepare the main looper if it hasn't.
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/TestUtils.java b/media2/widget/src/androidTest/java/androidx/media2/widget/TestUtils.java
index 3d2ba52..ffeae29 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/TestUtils.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/TestUtils.java
@@ -24,6 +24,7 @@
 import android.view.WindowManager;
 
 final class TestUtils {
+    @SuppressWarnings("deprecation")
     static void setKeepScreenOn(Activity activity) {
         if (Build.VERSION.SDK_INT >= 27) {
             activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithPlayerTest.java b/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithPlayerTest.java
index 14e9f40..5fae061 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithPlayerTest.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithPlayerTest.java
@@ -51,7 +51,6 @@
 import androidx.media2.session.MediaController;
 import androidx.media2.widget.test.R;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
 import org.junit.Before;
@@ -82,9 +81,10 @@
     private MediaItem mMediaItem;
     private SynchronousPixelCopy mPixelCopyHelper;
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<VideoViewTestActivity> mActivityRule =
-            new ActivityTestRule<>(VideoViewTestActivity.class);
+    public androidx.test.rule.ActivityTestRule<VideoViewTestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(VideoViewTestActivity.class);
 
     public VideoView_WithPlayerTest(String playerType) {
         mPlayerType = playerType;
diff --git a/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithoutPlayerTest.java b/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithoutPlayerTest.java
index 9bbfd04..03a18c0 100644
--- a/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithoutPlayerTest.java
+++ b/media2/widget/src/androidTest/java/androidx/media2/widget/VideoView_WithoutPlayerTest.java
@@ -22,7 +22,6 @@
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -39,9 +38,10 @@
     private Activity mActivity;
     private VideoView mVideoView;
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<VideoViewTestActivity> mActivityRule =
-            new ActivityTestRule<>(VideoViewTestActivity.class);
+    public androidx.test.rule.ActivityTestRule<VideoViewTestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(VideoViewTestActivity.class);
 
     @Before
     public void setup() throws Throwable {
diff --git a/navigation/navigation-dynamic-features-fragment/api/current.txt b/navigation/navigation-dynamic-features-fragment/api/current.txt
index 74621d5..73124fc8 100644
--- a/navigation/navigation-dynamic-features-fragment/api/current.txt
+++ b/navigation/navigation-dynamic-features-fragment/api/current.txt
@@ -30,7 +30,15 @@
 
   public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
     ctor public DynamicNavHostFragment();
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
     method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+    field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+  }
+
+  public static final class DynamicNavHostFragment.Companion {
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
   }
 
 }
diff --git a/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt b/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt
index 74621d5..73124fc8 100644
--- a/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt
+++ b/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt
@@ -30,7 +30,15 @@
 
   public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
     ctor public DynamicNavHostFragment();
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
     method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+    field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+  }
+
+  public static final class DynamicNavHostFragment.Companion {
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
   }
 
 }
diff --git a/navigation/navigation-dynamic-features-fragment/api/restricted_current.txt b/navigation/navigation-dynamic-features-fragment/api/restricted_current.txt
index 74621d5..73124fc8 100644
--- a/navigation/navigation-dynamic-features-fragment/api/restricted_current.txt
+++ b/navigation/navigation-dynamic-features-fragment/api/restricted_current.txt
@@ -30,7 +30,15 @@
 
   public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
     ctor public DynamicNavHostFragment();
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
     method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+    field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+  }
+
+  public static final class DynamicNavHostFragment.Companion {
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+    method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
   }
 
 }
diff --git a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
index 7c33183..ee291df 100644
--- a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
@@ -21,8 +21,10 @@
 import androidx.navigation.dynamicfeatures.createGraph
 import androidx.navigation.get
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.rules.ActivityScenarioRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
+import androidx.testutils.withActivity
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Rule
 import org.junit.Test
@@ -30,14 +32,17 @@
 
 @MediumTest
 @RunWith(AndroidJUnit4::class)
-class DynamicFragmentNavigatorDestinationBuilderTest {
+public class DynamicFragmentNavigatorDestinationBuilderTest {
     @Suppress("DEPRECATION")
     @get:Rule
-    val activityRule = androidx.test.rule.ActivityTestRule<TestActivity>(TestActivity::class.java)
-    private val fragmentManager get() = activityRule.activity.supportFragmentManager
+    public val rule: ActivityScenarioRule<TestActivity> = ActivityScenarioRule(
+        TestActivity::class.java
+    )
+    private val fragmentManager get() = rule.scenario.withActivity { supportFragmentManager }
 
     @UiThreadTest
-    @Test fun reified() {
+    @Test
+    public fun reified() {
         val navHostFragment = DynamicNavHostFragment()
         fragmentManager.beginTransaction()
             .add(android.R.id.content, navHostFragment)
@@ -52,7 +57,8 @@
     }
 
     @UiThreadTest
-    @Test fun moduleName() {
+    @Test
+    public fun moduleName() {
         val navHostFragment = DynamicNavHostFragment()
         fragmentManager.beginTransaction()
             .add(android.R.id.content, navHostFragment)
@@ -72,7 +78,8 @@
     }
 
     @UiThreadTest
-    @Test fun no_moduleName() {
+    @Test
+    public fun no_moduleName() {
         val navHostFragment = DynamicNavHostFragment()
         fragmentManager.beginTransaction()
             .add(android.R.id.content, navHostFragment)
@@ -94,5 +101,5 @@
 private const val MODULE_NAME = "module"
 private const val FRAGMENT_CLASS_NAME = "androidx.navigation.dynamicfeatures.fragment.TestFragment"
 
-class TestActivity : FragmentActivity()
-class TestFragment : Fragment()
+public class TestActivity : FragmentActivity()
+private class TestFragment : Fragment()
diff --git a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
index 59e061f..e1fa686 100644
--- a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
@@ -20,9 +20,11 @@
 import androidx.fragment.app.FragmentActivity
 import androidx.navigation.dynamicfeatures.fragment.test.R
 import androidx.test.core.app.ActivityScenario
+import androidx.test.ext.junit.rules.ActivityScenarioRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.testutils.withActivity
+import com.google.android.play.core.splitinstall.SplitInstallManager
 import org.junit.Assert.assertEquals
 import org.junit.Rule
 import org.junit.Test
@@ -30,14 +32,16 @@
 
 @MediumTest
 @RunWith(AndroidJUnit4::class)
-class DynamicNavHostFragmentTest {
+public class DynamicNavHostFragmentTest {
 
     @Suppress("DEPRECATION")
     @get:Rule
-    val activityTestRule = androidx.test.rule.ActivityTestRule(NavigationActivity::class.java)
+    public val activityTestRule: ActivityScenarioRule<NavigationActivity> = ActivityScenarioRule(
+        NavigationActivity::class.java
+    )
 
     @Test
-    fun createSplitInstallManager() {
+    public fun createSplitInstallManager() {
         val fragment = TestDynamicNavHostFragment()
         with(ActivityScenario.launch(NavigationActivity::class.java)) {
             withActivity {
@@ -49,15 +53,33 @@
         }
         assertEquals(fragment.createSplitInstallManager(), fragment.createSplitInstallManager())
     }
+
+    @Test
+    public fun create_noArgs() {
+        val fragment = DynamicNavHostFragment.create(R.id.nav_host)
+        assertEquals(fragment.arguments!!.size(), 1)
+    }
+
+    @Test
+    public fun create_withArgs() {
+        val fragment = DynamicNavHostFragment.create(
+            R.id.nav_host,
+            Bundle().apply {
+                putInt("Test", 1)
+            }
+        )
+        assertEquals(fragment.arguments!!.size(), 2)
+    }
 }
 
-class NavigationActivity : FragmentActivity() {
+public class NavigationActivity : FragmentActivity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         setContentView(R.layout.dynamic_activity_layout)
         super.onCreate(savedInstanceState)
     }
 }
 
-class TestDynamicNavHostFragment : DynamicNavHostFragment() {
-    public override fun createSplitInstallManager() = super.createSplitInstallManager()
+public class TestDynamicNavHostFragment : DynamicNavHostFragment() {
+    public override fun createSplitInstallManager(): SplitInstallManager =
+        super.createSplitInstallManager()
 }
diff --git a/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment.kt b/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment.kt
index 35b8ac7..b062ef3 100644
--- a/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment.kt
@@ -16,6 +16,8 @@
 
 package androidx.navigation.dynamicfeatures.fragment
 
+import android.os.Bundle
+import androidx.annotation.NavigationRes
 import androidx.navigation.NavHostController
 import androidx.navigation.dynamicfeatures.DynamicActivityNavigator
 import androidx.navigation.dynamicfeatures.DynamicGraphNavigator
@@ -69,4 +71,35 @@
      */
     protected open fun createSplitInstallManager(): SplitInstallManager =
         SplitInstallManagerFactory.create(requireContext())
+
+    /** Companion object for DynamicNavHostFragment */
+    public companion object {
+
+        /**
+         * Create a new [DynamicNavHostFragment] instance with an inflated {@link NavGraph} resource.
+         *
+         * @param graphResId Resource id of the navigation graph to inflate.
+         * @param startDestinationArgs Arguments to send to the start destination of the graph.
+         * @return A new DynamicNavHostFragment instance.
+         */
+        @JvmStatic
+        @JvmOverloads
+        public fun create(
+            @NavigationRes graphResId: Int,
+            startDestinationArgs: Bundle? = null
+        ): DynamicNavHostFragment {
+            return DynamicNavHostFragment().apply {
+                arguments = if (graphResId != 0 || startDestinationArgs != null) {
+                    Bundle().apply {
+                        if (graphResId != 0) {
+                            putInt(KEY_GRAPH_ID, graphResId)
+                        }
+                        if (startDestinationArgs != null) {
+                            putBundle(KEY_START_DESTINATION_ARGS, startDestinationArgs)
+                        }
+                    }
+                } else null
+            }
+        }
+    }
 }
diff --git a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/NavHostFragment.java b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/NavHostFragment.java
index 2d0bbea..e76bed7 100644
--- a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/NavHostFragment.java
+++ b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/NavHostFragment.java
@@ -31,6 +31,7 @@
 import androidx.annotation.NavigationRes;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.RestrictTo;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentContainerView;
@@ -80,8 +81,12 @@
  * coupling to the navigation host.</p>
  */
 public class NavHostFragment extends Fragment implements NavHost {
-    private static final String KEY_GRAPH_ID = "android-support-nav:fragment:graphId";
-    private static final String KEY_START_DESTINATION_ARGS =
+    /** @hide */
+    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+    protected static final String KEY_GRAPH_ID = "android-support-nav:fragment:graphId";
+    /** @hide */
+    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+    protected static final String KEY_START_DESTINATION_ARGS =
             "android-support-nav:fragment:startDestinationArgs";
     private static final String KEY_NAV_CONTROLLER_STATE =
             "android-support-nav:fragment:navControllerState";
@@ -156,9 +161,9 @@
     /**
      * Create a new NavHostFragment instance with an inflated {@link NavGraph} resource.
      *
-     * @param graphResId resource id of the navigation graph to inflate
-     * @param startDestinationArgs arguments to send to the start destination of the graph
-     * @return a new NavHostFragment instance
+     * @param graphResId Resource id of the navigation graph to inflate.
+     * @param startDestinationArgs Arguments to send to the start destination of the graph.
+     * @return A new NavHostFragment instance.
      */
     @NonNull
     public static NavHostFragment create(@NavigationRes int graphResId,
diff --git a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
index f89a8f1..9cdcd79 100644
--- a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
+++ b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
@@ -21,18 +21,19 @@
 import android.app.Activity;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 @RunWith(AndroidJUnit4.class)
 public abstract class BaseInstrumentationTestCase<A extends Activity> {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<A> mActivityTestRule;
+    public final androidx.test.rule.ActivityTestRule<A> mActivityTestRule;
 
+    @SuppressWarnings("deprecation")
     protected BaseInstrumentationTestCase(Class<A> activityClass) {
-        mActivityTestRule = new ActivityTestRule<A>(activityClass);
+        mActivityTestRule = new androidx.test.rule.ActivityTestRule<A>(activityClass);
     }
 
     protected static void assertFuzzyEquals(String description, float expected, float actual) {
diff --git a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentDynamicLayoutTest.java b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentDynamicLayoutTest.java
index ca4efd3..2e38fb8 100755
--- a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentDynamicLayoutTest.java
+++ b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentDynamicLayoutTest.java
@@ -41,6 +41,7 @@
 /**
  * Test cases to verify that percent layouts properly account for their own paddings.
  */
+@SuppressWarnings("deprecation")
 @LargeTest
 public class PercentDynamicLayoutTest
         extends BaseInstrumentationTestCase<PercentDynamicLayoutActivity> {
diff --git a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentFrameTest.java b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentFrameTest.java
index c88e063..f4bf9ee 100644
--- a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentFrameTest.java
+++ b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentFrameTest.java
@@ -28,6 +28,7 @@
 import org.junit.Before;
 import org.junit.Test;
 
+@SuppressWarnings("deprecation")
 @LargeTest
 public class PercentFrameTest extends BaseInstrumentationTestCase<TestFrameActivity> {
     private PercentFrameLayout mPercentFrameLayout;
diff --git a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeRtlTest.java b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeRtlTest.java
index bc51a0c..640be5b 100644
--- a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeRtlTest.java
+++ b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeRtlTest.java
@@ -94,6 +94,7 @@
  * the core classes, but rather just provide a translation layer between percentage-based values
  * and pixel-based ones.
  */
+@SuppressWarnings("deprecation")
 @LargeTest
 public class PercentRelativeRtlTest extends BaseInstrumentationTestCase<TestRelativeRtlActivity> {
     private PercentRelativeLayout mPercentRelativeLayout;
diff --git a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeTest.java b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeTest.java
index b821678..ffbf0dbb 100644
--- a/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeTest.java
+++ b/percentlayout/percentlayout/src/androidTest/java/androidx/percentlayout/widget/PercentRelativeTest.java
@@ -55,6 +55,7 @@
  *     <li>Center child (marked with C) - margin (all sides) from the other four children.</li>
  * </ul>
  */
+@SuppressWarnings("deprecation")
 @LargeTest
 public class PercentRelativeTest extends BaseInstrumentationTestCase<TestRelativeActivity> {
     private PercentRelativeLayout mPercentRelativeLayout;
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
index 9091896..4f2d7f0 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
@@ -38,7 +38,6 @@
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -52,9 +51,10 @@
 @RunWith(AndroidJUnit4.class)
 public class EditTextPreferenceTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
-            new ActivityTestRule<>(PreferenceTestHelperActivity.class);
+    public androidx.test.rule.ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(PreferenceTestHelperActivity.class);
 
     private static final String PREFERENCE = "preference";
 
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
index 6fae995..0f5dd8f 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
@@ -69,6 +69,7 @@
         assertTrue(preference.getSummary() instanceof String);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     @UiThreadTest
     public void styledSummary() {
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
index 31a12b4..f36c692 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
@@ -260,6 +260,7 @@
                 mComparisonCallback.arePreferenceContentsTheSame(dropdown1, dropdown2));
     }
 
+    @SuppressWarnings("deprecation")
     private static class ComparisonDrawable extends Drawable {
 
         private final int mId;
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
index d72d608..a8cb723 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
@@ -41,7 +41,6 @@
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -55,9 +54,10 @@
 @RunWith(AndroidJUnit4.class)
 public class PreferenceCopyingTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
-            new ActivityTestRule<>(PreferenceTestHelperActivity.class);
+    public androidx.test.rule.ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(PreferenceTestHelperActivity.class);
 
     private static final String COPY_BUTTON = "Copy";
     private static final String PREFERENCE_1 = "Preference 1";
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
index 9ea37b6..17f8d75 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
@@ -404,6 +404,7 @@
         putStringSetTestCommon();
     }
 
+    @SuppressWarnings({"deprecation", "unchecked"})
     private void putStringSetTestCommon() {
         Set<String> testSet = Collections.singleton(TEST_STR);
 
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
index f96d68c..d8869b7 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
@@ -41,7 +41,6 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -57,9 +56,10 @@
 @RunWith(AndroidJUnit4.class)
 public class PreferenceVisibilityTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
-            new ActivityTestRule<>(PreferenceTestHelperActivity.class);
+    public androidx.test.rule.ActivityTestRule<PreferenceTestHelperActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(PreferenceTestHelperActivity.class);
 
     private static final String CATEGORY = "Category";
     private static final String DEFAULT = "Default";
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
index 85efcd3..7d90015 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
@@ -16,8 +16,7 @@
 
 package androidx.recyclerview.selection;
 
-import static junit.framework.Assert.assertEquals;
-
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
index 7a6e171..249463c 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
@@ -219,6 +219,7 @@
         assertEquals(0, mModel.getPositionNearestOrigin());
     }
 
+    @SuppressWarnings("unchecked")
     private void initData(final int numChildren, int numColumns) {
         mHost = new TestHost(numChildren, numColumns);
         mAdapter = new TestAdapter() {
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
index 425bcc6..11211d4 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
@@ -71,14 +71,14 @@
         mSelection = new SelectionProbe(mSelectionMgr);
 
         mMouseCallbacks = new TestOnContextClickListener();
-        mActivationCallbacks = new TestOnItemActivatedListener();
-        mFocusCallbacks = new TestFocusDelegate();
+        mActivationCallbacks = new TestOnItemActivatedListener<>();
+        mFocusCallbacks = new TestFocusDelegate<>();
 
-        mInputDelegate = new MouseInputHandler(
+        mInputDelegate = new MouseInputHandler<>(
                 mSelectionMgr,
-                new TestItemKeyProvider(
+                new TestItemKeyProvider<>(
                         ItemKeyProvider.SCOPE_MAPPED,
-                        new TestAdapter(TestData.createStringData(100))),
+                        new TestAdapter<>(TestData.createStringData(100))),
                 mDetailsLookup,
                 mMouseCallbacks,
                 mActivationCallbacks,
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
index 825d45f..a3c50e2 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
@@ -50,6 +50,7 @@
     private TestFocusDelegate<String> mFocusCallbacks;
     private TestItemDetailsLookup mDetailsLookup;
 
+    @SuppressWarnings("unchecked")
     @Before
     public void setUp() {
         SelectionTracker<String> selectionMgr =
@@ -64,9 +65,9 @@
 
         mInputDelegate = new MouseInputHandler<>(
                 selectionMgr,
-                new TestItemKeyProvider(
+                new TestItemKeyProvider<>(
                         ItemKeyProvider.SCOPE_MAPPED,
-                        new TestAdapter(TestData.createStringData(100))),
+                        new TestAdapter<>(TestData.createStringData(100))),
                 mDetailsLookup,
                 mouseCallbacks,
                 activationCallbacks,
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
index fa37577..a9a8b75 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
@@ -191,6 +191,7 @@
         assertTrue(err, mSelection.contains(id));
     }
 
+    @SuppressWarnings("unchecked")
     public static <E> Set<E> newSet(E... elements) {
         HashSet<E> set = new HashSet<>(elements.length);
         Collections.addAll(set, elements);
diff --git a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/StableIdKeyProviderTest.java b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/StableIdKeyProviderTest.java
index 92089428..5d218e7 100644
--- a/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/StableIdKeyProviderTest.java
+++ b/recyclerview/recyclerview-selection/src/androidTest/java/androidx/recyclerview/selection/StableIdKeyProviderTest.java
@@ -160,6 +160,7 @@
     }
 
     private static final class StableIdTestAdapter extends TestAdapter<Long> {
+        @SuppressWarnings("unchecked")
         StableIdTestAdapter() {
             super(Collections.EMPTY_LIST, true);
         }
diff --git a/recyclerview/recyclerview/build.gradle b/recyclerview/recyclerview/build.gradle
index a44f788..4e67cdc 100644
--- a/recyclerview/recyclerview/build.gradle
+++ b/recyclerview/recyclerview/build.gradle
@@ -60,4 +60,5 @@
     mavenGroup = LibraryGroups.RECYCLERVIEW
     inceptionYear = "2014"
     description = "Android Support RecyclerView"
+    failOnDeprecationWarnings = false
 }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorTestDouble.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorTestDouble.java
index 4d9a546..03cd284 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorTestDouble.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorTestDouble.java
@@ -44,11 +44,11 @@
 
     static final long TIMEOUT_SECOND = 10;
 
-    ArrayList<RecyclerView.ViewHolder> mAdds = new ArrayList();
-    ArrayList<RecyclerView.ViewHolder> mRemoves = new ArrayList();
-    ArrayList<RecyclerView.ViewHolder> mMoves = new ArrayList();
-    ArrayList<RecyclerView.ViewHolder> mChangesOld = new ArrayList();
-    ArrayList<RecyclerView.ViewHolder> mChangesNew = new ArrayList();
+    ArrayList<RecyclerView.ViewHolder> mAdds = new ArrayList<>();
+    ArrayList<RecyclerView.ViewHolder> mRemoves = new ArrayList<>();
+    ArrayList<RecyclerView.ViewHolder> mMoves = new ArrayList<>();
+    ArrayList<RecyclerView.ViewHolder> mChangesOld = new ArrayList<>();
+    ArrayList<RecyclerView.ViewHolder> mChangesNew = new ArrayList<>();
 
     @Retention(CLASS)
     @Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD})
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
index c9c0be9..9000986 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
@@ -217,7 +217,7 @@
         layoutManager.waitForLayout(1);
 
         assertEquals(layoutCount, recyclerView.getChildCount());
-        final ArrayList<View> children = new ArrayList();
+        final ArrayList<View> children = new ArrayList<>();
         mActivityRule.runOnUiThread(new Runnable() {
             @Override
             public void run() {
@@ -306,7 +306,7 @@
         // let all items go to recycler pool
         layoutManager.expectLayouts(1);
         layoutCount[0] = 0;
-        adapter.resetItemsTo(new ArrayList());
+        adapter.resetItemsTo(new ArrayList<Item>());
         layoutManager.waitForLayout(1);
         assertEquals(0, recyclerView.getChildCount());
         assertEquals(firstPassLayoutCount, recyclerView.getRecycledViewPool()
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
index 3e11b02..a736765 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
@@ -58,6 +58,7 @@
 import java.util.List;
 import java.util.UUID;
 
+@SuppressWarnings("unchecked")
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class RecyclerViewBasicTest {
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
index 330f659..0aa4e29 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
@@ -61,6 +61,7 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+@SuppressWarnings("unchecked")
 @MediumTest
 @SdkSuppress(minSdkVersion = Build.VERSION_CODES.LOLLIPOP)
 @RunWith(AndroidJUnit4.class)
diff --git a/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XElement.kt b/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XElement.kt
index b18909e..77fc091 100644
--- a/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XElement.kt
+++ b/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XElement.kt
@@ -31,46 +31,21 @@
      * Returns the string representation of the Element's kind.
      */
     fun kindName(): String
-
-    /**
-     * Casts current element to [XTypeElement].
-     */
-    fun asTypeElement() = this as XTypeElement
-
-    /**
-     * Casts current element to [XVariableElement].
-     */
-    fun asVariableElement() = this as XVariableElement
-
-    /**
-     * Casts current element to [XMethodElement].
-     */
-    fun asMethodElement() = this as XMethodElement
-
-    /**
-     * Returns the [XDeclaredType] type of the current element, assuming it is an [XTypeElement].
-     * It is a shortcut for `asTypeElement().type`.
-     */
-    fun asDeclaredType(): XDeclaredType {
-        return asTypeElement().type
-    }
 }
 
 /**
  * Checks whether this element represents an [XTypeElement].
- * @see [XElement.asTypeElement]
  */
 // we keep these as extension methods to be able to use contracts
-fun XElement.isType(): Boolean {
+fun XElement.isTypeElement(): Boolean {
     contract {
-        returns(true) implies (this@isType is XTypeElement)
+        returns(true) implies (this@isTypeElement is XTypeElement)
     }
     return this is XTypeElement
 }
 
 /**
  * Checks whether this element represents an [XVariableElement].
- * @see [XElement.asVariableElement]
  */
 fun XElement.isVariableElement(): Boolean {
     contract {
@@ -81,7 +56,6 @@
 
 /**
  * Checks whether this element represents an [XMethodElement].
- * @see [XElement.asMethodElement]
  */
 fun XElement.isMethod(): Boolean {
     contract {
diff --git a/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XType.kt b/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XType.kt
index 1653b4a..d03e5f8 100644
--- a/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XType.kt
+++ b/room/compiler-processing/src/main/java/androidx/room/compiler/processing/XType.kt
@@ -48,7 +48,7 @@
     /**
      * Casts the current type to [XTypeElement].
      *
-     * @see isType
+     * @see isTypeElement
      */
     fun asTypeElement(): XTypeElement
 
diff --git a/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt b/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
index 84623ee..ef5faf8 100644
--- a/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
+++ b/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
@@ -290,15 +290,15 @@
             val element = it.processingEnv.requireTypeElement("foo.bar.Baz")
             assertThat(element.isInterface()).isFalse()
             assertThat(element.isAbstract()).isFalse()
-            assertThat(element.isType()).isTrue()
+            assertThat(element.isTypeElement()).isTrue()
             element.getField("field").let { field ->
-                assertThat(field.isType()).isFalse()
+                assertThat(field.isTypeElement()).isFalse()
                 assertThat(field.isAbstract()).isFalse()
                 assertThat(field.isVariableElement()).isTrue()
                 assertThat(field.isMethod()).isFalse()
             }
             element.getMethod("method").let { method ->
-                assertThat(method.isType()).isFalse()
+                assertThat(method.isTypeElement()).isFalse()
                 assertThat(method.isAbstract()).isFalse()
                 assertThat(method.isVariableElement()).isFalse()
                 assertThat(method.isMethod()).isTrue()
@@ -323,10 +323,7 @@
             val element = it.processingEnv.requireTypeElement("foo.bar.Baz")
             element.getField("x").let { field ->
                 assertThat(field.isStatic()).isTrue()
-                val fail = runCatching {
-                    field.asTypeElement()
-                }
-                assertThat(fail.exceptionOrNull()).isNotNull()
+                assertThat(field.isTypeElement()).isFalse()
             }
         }
     }
diff --git a/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt b/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
index 2f92301..517f14c 100644
--- a/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
+++ b/room/compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
@@ -116,7 +116,7 @@
             val element = it.processingEnv.requireTypeElement("foo.bar.Baz")
             assertThat(element.packageName).isEqualTo("foo.bar")
             assertThat(element.name).isEqualTo("Baz")
-            assertThat(element.asDeclaredType().typeName)
+            assertThat(element.className)
                 .isEqualTo(ClassName.get("foo.bar", "Baz"))
             assertThat(element.findPrimaryConstructor()).isNull()
             assertThat(element.getConstructors()).hasSize(1)
diff --git a/room/compiler/src/main/kotlin/androidx/room/DatabaseProcessingStep.kt b/room/compiler/src/main/kotlin/androidx/room/DatabaseProcessingStep.kt
index 7ed2149d..d3ee871 100644
--- a/room/compiler/src/main/kotlin/androidx/room/DatabaseProcessingStep.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/DatabaseProcessingStep.kt
@@ -42,7 +42,7 @@
                 try {
                     DatabaseProcessor(
                         context,
-                        it.asTypeElement()
+                        it
                     ).process()
                 } catch (ex: MissingTypeException) {
                     // Abandon processing this database class since it needed a type element
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt b/room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
index d8a4bc2..b7b237c 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
@@ -75,12 +75,10 @@
     fun process(): List<CustomTypeConverter> {
         // using element utils instead of MoreElements to include statics.
         val methods = element.getAllMethods()
-        val declaredType = element.asDeclaredType()
         val converterMethods = methods.filter {
             it.hasAnnotation(TypeConverter::class)
         }
-        val isProvidedConverter = declaredType.asTypeElement()
-            .hasAnnotation(ProvidedTypeConverter::class)
+        val isProvidedConverter = element.hasAnnotation(ProvidedTypeConverter::class)
         context.checker.check(converterMethods.isNotEmpty(), element, TYPE_CONVERTER_EMPTY_CLASS)
         val allStatic = converterMethods.all { it.isStatic() }
         val constructors = element.getConstructors()
@@ -96,7 +94,7 @@
         }
         return converterMethods.mapNotNull {
             processMethod(
-                container = declaredType,
+                container = element.type,
                 isContainerKotlinObject = isKotlinObjectDeclaration,
                 methodElement = it,
                 isProvidedConverter = isProvidedConverter
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt b/room/compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
index d6769c1..3eacaa3 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
@@ -57,7 +57,7 @@
             element, ProcessorErrors.DAO_MUST_BE_AN_ABSTRACT_CLASS_OR_AN_INTERFACE
         )
 
-        val declaredType = element.asDeclaredType()
+        val declaredType = element.type
         val allMethods = element.getAllMethods()
         val methods = allMethods
             .filter {
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt b/room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
index cacbfba..c8f13ab 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
@@ -17,12 +17,11 @@
 package androidx.room.processor
 
 import androidx.room.SkipQueryVerification
-import androidx.room.ext.RoomTypeNames
 import androidx.room.compiler.processing.XAnnotationBox
 import androidx.room.compiler.processing.XElement
 import androidx.room.compiler.processing.XType
 import androidx.room.compiler.processing.XTypeElement
-import androidx.room.compiler.processing.isType
+import androidx.room.ext.RoomTypeNames
 import androidx.room.verifier.DatabaseVerificationErrors
 import androidx.room.verifier.DatabaseVerifier
 import androidx.room.vo.Dao
@@ -77,16 +76,13 @@
         }
         validateUniqueTableAndViewNames(element, entities, views)
 
-        val declaredType = element.asDeclaredType()
+        val declaredType = element.type
         val daoMethods = element.getAllMethods().filter {
             it.isAbstract()
         }.filterNot {
             // remove methods that belong to room
-            val containing = it.enclosingTypeElement
-            containing.isType() &&
-                containing.asDeclaredType().typeName == RoomTypeNames.ROOM_DB
-        }.map {
-            val executable = it.asMethodElement()
+            it.enclosingTypeElement.className == RoomTypeNames.ROOM_DB
+        }.map { executable ->
             // TODO when we add support for non Dao return types (e.g. database), this code needs
             // to change
             val daoType = executable.returnType.asTypeElement()
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt b/room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
index 24b38ec..d56d3ce 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
@@ -115,7 +115,7 @@
     private fun doProcess(): Pojo {
         delegate.onPreProcess(element)
 
-        val declaredType = element.asDeclaredType()
+        val declaredType = element.type
         // TODO handle conflicts with super: b/35568142
         val allFields = element.getAllFieldsIncludingPrivateSupers()
             .filter {
diff --git a/room/compiler/src/main/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegate.kt b/room/compiler/src/main/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegate.kt
index 6fc4899..15ad354 100644
--- a/room/compiler/src/main/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegate.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegate.kt
@@ -20,7 +20,6 @@
 import androidx.room.compiler.processing.XDeclaredType
 import androidx.room.compiler.processing.XExecutableElement
 import androidx.room.compiler.processing.XTypeElement
-import androidx.room.compiler.processing.isType
 import androidx.room.processor.Context
 import androidx.room.processor.PojoProcessor
 import androidx.room.processor.PojoProcessor.Companion.TARGET_METHOD_ANNOTATIONS
@@ -41,7 +40,7 @@
 ) : PojoProcessor.Delegate {
 
     private val autoValueDeclaredType: XDeclaredType by lazy {
-        autoValueElement.asDeclaredType()
+        autoValueElement.type
     }
 
     override fun onPreProcess(element: XTypeElement) {
@@ -110,8 +109,8 @@
         fun getGeneratedClassName(element: XTypeElement): String {
             var type = element
             var name = type.name
-            while (type.enclosingTypeElement?.isType() == true) {
-                type = type.enclosingTypeElement!!.asTypeElement()
+            while (type.enclosingTypeElement != null) {
+                type = type.enclosingTypeElement!!
                 name = "${type.name}_$name"
             }
             val pkg = type.packageName
diff --git a/room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt b/room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
index 4196bae..22caffd 100644
--- a/room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
@@ -515,7 +515,7 @@
                     return EntityRowAdapter(
                         EntityProcessor(
                             context = context,
-                            element = asElement.asTypeElement()
+                            element = asElement
                         ).process()
                     )
                 }
diff --git a/room/compiler/src/main/kotlin/androidx/room/vo/Constructor.kt b/room/compiler/src/main/kotlin/androidx/room/vo/Constructor.kt
index 338892d..6adaa3c 100644
--- a/room/compiler/src/main/kotlin/androidx/room/vo/Constructor.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/vo/Constructor.kt
@@ -45,13 +45,13 @@
             element.isConstructor() -> {
                 builder.addStatement(
                     "$L = new $T($L)", outVar,
-                    element.enclosingTypeElement.asDeclaredType().typeName, args
+                    element.enclosingTypeElement.className, args
                 )
             }
             element.isMethod() -> {
                 builder.addStatement(
                     "$L = $T.$L($L)", outVar,
-                    element.enclosingTypeElement.asDeclaredType().typeName,
+                    element.enclosingTypeElement.className,
                     element.name, args
                 )
             }
diff --git a/room/compiler/src/main/kotlin/androidx/room/vo/Dao.kt b/room/compiler/src/main/kotlin/androidx/room/vo/Dao.kt
index 69e2b44..0aa719d 100644
--- a/room/compiler/src/main/kotlin/androidx/room/vo/Dao.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/vo/Dao.kt
@@ -18,7 +18,7 @@
 
 import androidx.room.compiler.processing.XDeclaredType
 import androidx.room.compiler.processing.XTypeElement
-import androidx.room.compiler.processing.isType
+import androidx.room.compiler.processing.isTypeElement
 import com.squareup.javapoet.ClassName
 import com.squareup.javapoet.TypeName
 
@@ -57,7 +57,7 @@
         }
         val path = arrayListOf<String>()
         var enclosing = element.enclosingTypeElement
-        while (enclosing?.isType() == true) {
+        while (enclosing?.isTypeElement() == true) {
             path.add(enclosing!!.name)
             enclosing = enclosing!!.enclosingTypeElement
         }
diff --git a/room/compiler/src/main/kotlin/androidx/room/vo/RelationCollector.kt b/room/compiler/src/main/kotlin/androidx/room/vo/RelationCollector.kt
index 5aaf495..4c6b0c2 100644
--- a/room/compiler/src/main/kotlin/androidx/room/vo/RelationCollector.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/vo/RelationCollector.kt
@@ -272,7 +272,7 @@
                     QueryParameter(
                         name = RelationCollectorMethodWriter.PARAM_MAP_VARIABLE,
                         sqlName = RelationCollectorMethodWriter.PARAM_MAP_VARIABLE,
-                        type = longSparseArrayElement.asDeclaredType(),
+                        type = longSparseArrayElement.type,
                         queryParamAdapter = LONG_SPARSE_ARRAY_KEY_QUERY_PARAM_ADAPTER
                     )
                 } else {
diff --git a/room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt b/room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
index ee30de2..fe9c44d 100644
--- a/room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
+++ b/room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
@@ -72,7 +72,7 @@
     val processingEnv: XProcessingEnv
 ) :
     ClassWriter(dao.typeName) {
-    private val declaredDao = dao.element.asDeclaredType()
+    private val declaredDao = dao.element.type
 
     companion object {
         const val GET_LIST_OF_TYPE_CONVERTERS_METHOD = "getRequiredConverters"
diff --git a/room/compiler/src/test/kotlin/androidx/room/ext/XRoundEnvExt.kt b/room/compiler/src/test/kotlin/androidx/room/ext/XRoundEnvExt.kt
new file mode 100644
index 0000000..10a7dd6
--- /dev/null
+++ b/room/compiler/src/test/kotlin/androidx/room/ext/XRoundEnvExt.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2020 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.room.ext
+
+import androidx.room.compiler.processing.XRoundEnv
+import androidx.room.compiler.processing.XTypeElement
+import androidx.room.compiler.processing.isTypeElement
+
+/**
+ * In tests, we frequently want type elements annotated with. This helper does that and ensures
+ * we don't receive any element that is not an [XTypeElement].
+ */
+fun XRoundEnv.getTypeElementsAnnotatedWith(
+    klass: Class<out Annotation>
+): Set<XTypeElement> {
+    return getElementsAnnotatedWith(klass).map {
+        check(it.isTypeElement())
+        it
+    }.toSet()
+}
\ No newline at end of file
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
index fe49774..7b2bd76 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
@@ -184,7 +184,7 @@
             val daoElm = invocation.processingEnv.requireTypeElement("foo.bar.MyDao")
             val dbElm = invocation.context.processingEnv
                 .requireTypeElement(RoomTypeNames.ROOM_DB)
-            val dbType = dbElm.asDeclaredType()
+            val dbType = dbElm.type
             val processedDao = DaoProcessor(
                 invocation.context, daoElm, dbType, null
             ).process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
index 03c14fd..04a7059 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
@@ -18,6 +18,7 @@
 
 import androidx.annotation.NonNull
 import androidx.room.Embedded
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
 import androidx.room.vo.Entity
@@ -89,13 +90,13 @@
                     )
                     .nextRunHandler { invocation ->
                         val entity = invocation.roundEnv
-                            .getElementsAnnotatedWith(
+                            .getTypeElementsAnnotatedWith(
                                 androidx.room.Entity::class.java
                             )
                             .first { it.toString() == "foo.bar.MyEntity" }
                         val parser = TableEntityProcessor(
                             invocation.context,
-                            entity.asTypeElement()
+                            entity
                         )
                         val parsedQuery = parser.process()
                         handler(parsedQuery, invocation)
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
index 4a29c48..da5f29a 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
@@ -20,6 +20,7 @@
 import androidx.room.Embedded
 import androidx.room.Fts3
 import androidx.room.Fts4
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
 import androidx.room.vo.FtsEntity
@@ -99,15 +100,15 @@
                     )
                     .nextRunHandler { invocation ->
                         val fts3AnnotatedElements = invocation.roundEnv
-                            .getElementsAnnotatedWith(Fts3::class.java)
+                            .getTypeElementsAnnotatedWith(Fts3::class.java)
                         val fts4AnnotatedElements = invocation.roundEnv
-                            .getElementsAnnotatedWith(Fts4::class.java)
+                            .getTypeElementsAnnotatedWith(Fts4::class.java)
                         val entity = (fts3AnnotatedElements + fts4AnnotatedElements).first {
                             it.toString() == "foo.bar.MyEntity"
                         }
                         val processor = FtsTableEntityProcessor(
                             invocation.context,
-                            entity.asTypeElement()
+                            entity
                         )
                         val processedEntity = processor.process()
                         handler(processedEntity, invocation)
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
index 756af79..b1995f6 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
@@ -18,6 +18,7 @@
 
 import COMMON
 import androidx.room.compiler.processing.asDeclaredType
+import androidx.room.compiler.processing.isTypeElement
 import androidx.room.ext.RoomTypeNames
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
@@ -220,7 +221,7 @@
                 assertThat(
                     QueryMethodProcessor(
                         baseContext = daoProcessor.context,
-                        containing = dao.element.asDeclaredType(),
+                        containing = dao.element.type,
                         executableElement = it.element,
                         dbVerifier = null
                     ).context.logger.suppressedWarnings,
@@ -256,7 +257,7 @@
                 assertThat(
                     QueryMethodProcessor(
                         baseContext = daoProcessor.context,
-                        containing = dao.element.asDeclaredType(),
+                        containing = dao.element.type,
                         executableElement = it.element,
                         dbVerifier = null
                     ).context.logger.suppressedWarnings,
@@ -422,6 +423,7 @@
                                 androidx.room.Dao::class.java
                             )
                             .first()
+                        check(dao.isTypeElement())
                         val dbVerifier = if (enableVerification) {
                             createVerifierFromEntitiesAndViews(invocation)
                         } else {
@@ -432,7 +434,7 @@
                             .asDeclaredType()
                         val parser = DaoProcessor(
                             invocation.context,
-                            dao.asTypeElement(), dbType, dbVerifier
+                            dao, dbType, dbVerifier
                         )
 
                         val parsedDao = parser.process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
index 4bfe81c..63ef8a5 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
@@ -23,6 +23,7 @@
 import androidx.room.parser.Table
 import androidx.room.compiler.processing.XDeclaredType
 import androidx.room.compiler.processing.XTypeElement
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.solver.query.result.EntityRowAdapter
 import androidx.room.solver.query.result.PojoRowAdapter
 import androidx.room.testing.TestInvocation
@@ -1080,13 +1081,13 @@
                     .forAnnotations(androidx.room.Database::class)
                     .nextRunHandler { invocation ->
                         val database = invocation.roundEnv
-                            .getElementsAnnotatedWith(
+                            .getTypeElementsAnnotatedWith(
                                 androidx.room.Database::class.java
                             )
                             .first()
                         val processor = DatabaseProcessor(
                             invocation.context,
-                            database.asTypeElement()
+                            database
                         )
 
                         val list = views.map { (viewName, names) ->
@@ -1153,13 +1154,13 @@
                     .forAnnotations(androidx.room.Database::class)
                     .nextRunHandler { invocation ->
                         val entity = invocation.roundEnv
-                            .getElementsAnnotatedWith(
+                            .getTypeElementsAnnotatedWith(
                                 androidx.room.Database::class.java
                             )
                             .first()
                         val parser = DatabaseProcessor(
                             invocation.context,
-                            entity.asTypeElement()
+                            entity
                         )
                         val parsedDb = parser.process()
                         handler(parsedDb, invocation)
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
index 7821b23..b343155 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
@@ -17,6 +17,7 @@
 package androidx.room.processor
 
 import androidx.annotation.NonNull
+import androidx.room.compiler.processing.isTypeElement
 import androidx.room.parser.ParserErrors
 import androidx.room.parser.SQLTypeAffinity
 import androidx.room.testing.TestInvocation
@@ -237,12 +238,13 @@
                         val view = invocation.roundEnv
                             .rootElements
                             .first { it.toString() == name }
+                        check(view.isTypeElement())
                         val verifier = if (verify) {
                             createVerifierFromEntitiesAndViews(invocation)
                         } else null
                         val processor = DatabaseViewProcessor(
                             invocation.context,
-                            view.asTypeElement()
+                            view
                         )
                         val processedView = processor.process()
                         processedView.query.resultInfo =
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
index 737e1d8..961298c 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
@@ -18,6 +18,7 @@
 
 import androidx.room.Entity
 import androidx.room.compiler.processing.XFieldElement
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.parser.Collate
 import androidx.room.parser.SQLTypeAffinity
 import androidx.room.solver.types.ColumnTypeAdapter
@@ -602,23 +603,22 @@
                         .forAnnotations(androidx.room.Entity::class)
                         .nextRunHandler { invocation ->
                             val (owner, fieldElement) = invocation.roundEnv
-                                .getElementsAnnotatedWith(Entity::class.java)
+                                .getTypeElementsAnnotatedWith(Entity::class.java)
                                 .map {
                                     Pair(
                                         it,
-                                        it.asTypeElement()
-                                            .getAllFieldsIncludingPrivateSupers().firstOrNull()
+                                        it.getAllFieldsIncludingPrivateSupers().firstOrNull()
                                     )
                                 }
                                 .first { it.second != null }
                             val entityContext =
                                 TableEntityProcessor(
                                     baseContext = invocation.context,
-                                    element = owner.asTypeElement()
+                                    element = owner
                                 ).context
                             val parser = FieldProcessor(
                                 baseContext = entityContext,
-                                containing = owner.asDeclaredType(),
+                                containing = owner.type,
                                 element = fieldElement!!,
                                 bindingScope = FieldProcessor.BindingScope.TWO_WAY,
                                 fieldParent = null,
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
index 6818d25..396a54e 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
@@ -18,6 +18,7 @@
 
 import androidx.room.Fts4
 import androidx.room.FtsOptions
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.parser.FtsVersion
 import androidx.room.parser.SQLTypeAffinity
 import androidx.room.vo.CallType
@@ -89,9 +90,9 @@
                 """
             )
         ) { invocation ->
-            val entity = invocation.roundEnv.getElementsAnnotatedWith(Fts4::class.java)
+            val entity = invocation.roundEnv.getTypeElementsAnnotatedWith(Fts4::class.java)
                 .first { it.toString() == "foo.bar.MyEntity" }
-            FtsTableEntityProcessor(invocation.context, entity.asTypeElement())
+            FtsTableEntityProcessor(invocation.context, entity)
                 .process()
         }
             .failsToCompile()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt
index 14e28c6..71f7bcb 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/InsertionMethodProcessorTest.kt
@@ -23,6 +23,7 @@
 import androidx.room.ext.CommonTypeNames
 import androidx.room.ext.RxJava2TypeNames
 import androidx.room.ext.RxJava3TypeNames
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.solver.shortcut.result.InsertMethodAdapter
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
@@ -863,18 +864,18 @@
                     .forAnnotations(Insert::class, Dao::class)
                     .nextRunHandler { invocation ->
                         val (owner, methods) = invocation.roundEnv
-                            .getElementsAnnotatedWith(Dao::class.java)
+                            .getTypeElementsAnnotatedWith(Dao::class.java)
                             .map {
                                 Pair(
                                     it,
-                                    it.asTypeElement().getAllMethods().filter {
+                                    it.getAllMethods().filter {
                                         it.hasAnnotation(Insert::class)
                                     }
                                 )
                             }.first { it.second.isNotEmpty() }
                         val processor = InsertionMethodProcessor(
                             baseContext = invocation.context,
-                            containing = owner.asDeclaredType(),
+                            containing = owner.type,
                             executableElement = methods.first()
                         )
                         val processed = processor.process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/ProjectionExpanderTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/ProjectionExpanderTest.kt
index d5b5bc9..1ecc005 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/ProjectionExpanderTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/ProjectionExpanderTest.kt
@@ -16,6 +16,8 @@
 
 package androidx.room.processor
 
+import androidx.room.compiler.processing.isTypeElement
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.parser.SqlParser
 import androidx.room.parser.expansion.ProjectionExpander
 import androidx.room.testing.TestInvocation
@@ -519,19 +521,20 @@
             options = listOf("-Aroom.expandProjection=true")
         ) { invocation ->
             val entities = invocation.roundEnv
-                .getElementsAnnotatedWith(androidx.room.Entity::class.java)
+                .getTypeElementsAnnotatedWith(androidx.room.Entity::class.java)
                 .map { element ->
                     TableEntityProcessor(
                         invocation.context,
-                        element.asTypeElement()
+                        element
                     ).process()
                 }
             val entityElement = invocation.roundEnv
                 .rootElements
                 .first { it.toString() == "foo.bar.User" }
+            check(entityElement.isTypeElement())
             val entity = PojoProcessor.createFor(
                 invocation.context,
-                entityElement.asTypeElement(),
+                entityElement,
                 bindingScope = FieldProcessor.BindingScope.READ_FROM_CURSOR,
                 parent = null
             ).process()
@@ -621,19 +624,20 @@
             options = listOf("-Aroom.expandProjection=true")
         ) { invocation ->
             val entities = invocation.roundEnv
-                .getElementsAnnotatedWith(androidx.room.Entity::class.java)
+                .getTypeElementsAnnotatedWith(androidx.room.Entity::class.java)
                 .map { element ->
                     TableEntityProcessor(
                         invocation.context,
-                        element.asTypeElement()
+                        element
                     ).process()
                 }
             val pojoElement = invocation.roundEnv
                 .rootElements
                 .first { it.toString() == name }
+            check(pojoElement.isTypeElement())
             val pojo = PojoProcessor.createFor(
                 invocation.context,
-                pojoElement.asTypeElement(),
+                pojoElement,
                 bindingScope = FieldProcessor.BindingScope.READ_FROM_CURSOR,
                 parent = null
             ).process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
index 1f1e14e..41042bb 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
@@ -28,6 +28,7 @@
 import androidx.room.parser.Table
 import androidx.room.compiler.processing.XDeclaredType
 import androidx.room.compiler.processing.XType
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.ProcessorErrors.cannotFindQueryResultAdapter
 import androidx.room.solver.query.result.DataSourceFactoryQueryResultBinder
 import androidx.room.solver.query.result.ListQueryResultAdapter
@@ -1136,11 +1137,11 @@
                     )
                     .nextRunHandler { invocation ->
                         val (owner, methods) = invocation.roundEnv
-                            .getElementsAnnotatedWith(Dao::class.java)
+                            .getTypeElementsAnnotatedWith(Dao::class.java)
                             .map {
                                 Pair(
                                     it,
-                                    it.asTypeElement().getAllMethods().filter {
+                                    it.getAllMethods().filter {
                                         it.hasAnnotation(Query::class)
                                     }
                                 )
@@ -1154,7 +1155,7 @@
                         }
                         val parser = QueryMethodProcessor(
                             baseContext = invocation.context,
-                            containing = owner.asDeclaredType(),
+                            containing = owner.type,
                             executableElement = methods.first(),
                             dbVerifier = verifier
                         )
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
index f992e09..b1104c5 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/RawQueryMethodProcessorTest.kt
@@ -25,6 +25,7 @@
 import androidx.room.RawQuery
 import androidx.room.ext.PagingTypeNames
 import androidx.room.ext.SupportDbTypeNames
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.ProcessorErrors.RAW_QUERY_STRING_PARAMETER_REMOVED
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
@@ -219,7 +220,7 @@
             val daoFunctionElement = daoElement.getDeclaredMethods().first()
             RawQueryMethodProcessor(
                 baseContext = invocation.context,
-                containing = daoElement.asDeclaredType(),
+                containing = daoElement.type,
                 executableElement = daoFunctionElement
             ).process()
         }.failsToCompile().withErrorContaining(
@@ -343,18 +344,18 @@
                     )
                     .nextRunHandler { invocation ->
                         val (owner, methods) = invocation.roundEnv
-                            .getElementsAnnotatedWith(Dao::class.java)
+                            .getTypeElementsAnnotatedWith(Dao::class.java)
                             .map {
                                 Pair(
                                     it,
-                                    it.asTypeElement().getAllMethods().filter {
+                                    it.getAllMethods().filter {
                                         it.hasAnnotation(RawQuery::class)
                                     }
                                 )
                             }.first { it.second.isNotEmpty() }
                         val parser = RawQueryMethodProcessor(
                             baseContext = invocation.context,
-                            containing = owner.asDeclaredType(),
+                            containing = owner.type,
                             executableElement = methods.first()
                         )
                         val parsedQuery = parser.process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt
index 7555ec1..2cd6906 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/ShortcutMethodProcessorTest.kt
@@ -24,6 +24,7 @@
 import androidx.room.ext.RxJava3TypeNames
 import androidx.room.compiler.processing.XDeclaredType
 import androidx.room.compiler.processing.XMethodElement
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
 import androidx.room.vo.ShortcutMethod
@@ -521,18 +522,18 @@
                         .forAnnotations(annotation, Dao::class)
                         .nextRunHandler { invocation ->
                             val (owner, methods) = invocation.roundEnv
-                                .getElementsAnnotatedWith(Dao::class.java)
+                                .getTypeElementsAnnotatedWith(Dao::class.java)
                                 .map {
                                     Pair(
                                         it,
-                                        it.asTypeElement().getAllMethods().filter {
+                                        it.getAllMethods().filter {
                                             it.hasAnnotation(annotation)
                                         }
                                     )
                                 }.first { it.second.isNotEmpty() }
                             val processed = process(
                                 baseContext = invocation.context,
-                                containing = owner.asDeclaredType(),
+                                containing = owner.type,
                                 executableElement = methods.first()
                             )
                             handler(processed, invocation)
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt
index aebd173..2ae21b5 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/TransactionMethodProcessorTest.kt
@@ -19,6 +19,7 @@
 import COMMON
 import androidx.room.Dao
 import androidx.room.Transaction
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
 import androidx.room.vo.TransactionMethod
@@ -251,18 +252,18 @@
                     .forAnnotations(Transaction::class, Dao::class)
                     .nextRunHandler { invocation ->
                         val (owner, methods) = invocation.roundEnv
-                            .getElementsAnnotatedWith(Dao::class.java)
+                            .getTypeElementsAnnotatedWith(Dao::class.java)
                             .map {
                                 Pair(
                                     it,
-                                    it.asTypeElement().getAllMethods().filter {
+                                    it.getAllMethods().filter {
                                         it.hasAnnotation(Transaction::class)
                                     }
                                 )
                             }.first { it.second.isNotEmpty() }
                         val processor = TransactionMethodProcessor(
                             baseContext = invocation.context,
-                            containing = owner.asDeclaredType(),
+                            containing = owner.type,
                             executableElement = methods.first()
                         )
                         val processed = processor.process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt b/room/compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
index 3b8ff54..04d9d40e 100644
--- a/room/compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
@@ -329,7 +329,7 @@
             assertThat(publisherElement, notNullValue())
             assertThat(
                 RxQueryResultBinderProvider.getAll(invocation.context).any {
-                    it.matches(publisherElement.asDeclaredType())
+                    it.matches(publisherElement.type)
                 },
                 `is`(true)
             )
@@ -350,7 +350,7 @@
             assertThat(publisherElement, notNullValue())
             assertThat(
                 RxQueryResultBinderProvider.getAll(invocation.context).any {
-                    it.matches(publisherElement.asDeclaredType())
+                    it.matches(publisherElement.type)
                 },
                 `is`(true)
             )
@@ -375,7 +375,7 @@
                 assertThat(publisher, notNullValue())
                 assertThat(
                     RxQueryResultBinderProvider.getAll(invocation.context).any {
-                        it.matches(publisher.asDeclaredType())
+                        it.matches(publisher.type)
                     },
                     `is`(true)
                 )
@@ -396,7 +396,7 @@
                 val flowable = invocation.processingEnv.requireTypeElement(rxTypeClassName)
                 assertThat(
                     RxQueryResultBinderProvider.getAll(invocation.context).any {
-                        it.matches(flowable.asDeclaredType())
+                        it.matches(flowable.type)
                     },
                     `is`(true)
                 )
@@ -418,7 +418,7 @@
                 assertThat(observable, notNullValue())
                 assertThat(
                     RxQueryResultBinderProvider.getAll(invocation.context).any {
-                        it.matches(observable.asDeclaredType())
+                        it.matches(observable.type)
                     },
                     `is`(true)
                 )
@@ -438,7 +438,7 @@
                 assertThat(single, notNullValue())
                 assertThat(
                     RxCallableInsertMethodBinderProvider.getAll(invocation.context).any {
-                        it.matches(single.asDeclaredType())
+                        it.matches(single.type)
                     },
                     `is`(true)
                 )
@@ -456,7 +456,7 @@
                 val maybe = invocation.processingEnv.requireTypeElement(rxTypeClassName)
                 assertThat(
                     RxCallableInsertMethodBinderProvider.getAll(invocation.context).any {
-                        it.matches(maybe.asDeclaredType())
+                        it.matches(maybe.type)
                     },
                     `is`(true)
                 )
@@ -474,7 +474,7 @@
                 val completable = invocation.processingEnv.requireTypeElement(rxTypeClassName)
                 assertThat(
                     RxCallableInsertMethodBinderProvider.getAll(invocation.context).any {
-                        it.matches(completable.asDeclaredType())
+                        it.matches(completable.type)
                     },
                     `is`(true)
                 )
@@ -490,7 +490,7 @@
                 .requireTypeElement(GuavaUtilConcurrentTypeNames.LISTENABLE_FUTURE)
             assertThat(
                 GuavaListenableFutureInsertMethodBinderProvider(invocation.context).matches(
-                    future.asDeclaredType()
+                    future.type
                 ),
                 `is`(true)
             )
@@ -504,7 +504,7 @@
             assertThat(single, notNullValue())
             assertThat(
                 RxCallableDeleteOrUpdateMethodBinderProvider.getAll(invocation.context).any {
-                    it.matches(single.asDeclaredType())
+                    it.matches(single.type)
                 },
                 `is`(true)
             )
@@ -519,7 +519,7 @@
             assertThat(maybe, notNullValue())
             assertThat(
                 RxCallableDeleteOrUpdateMethodBinderProvider.getAll(invocation.context).any {
-                    it.matches(maybe.asDeclaredType())
+                    it.matches(maybe.type)
                 },
                 `is`(true)
             )
@@ -535,7 +535,7 @@
             assertThat(completable, notNullValue())
             assertThat(
                 RxCallableDeleteOrUpdateMethodBinderProvider.getAll(invocation.context).any {
-                    it.matches(completable.asDeclaredType())
+                    it.matches(completable.type)
                 },
                 `is`(true)
             )
@@ -552,7 +552,7 @@
             assertThat(future, notNullValue())
             assertThat(
                 GuavaListenableFutureDeleteOrUpdateMethodBinderProvider(invocation.context)
-                    .matches(future.asDeclaredType()),
+                    .matches(future.type),
                 `is`(true)
             )
         }
@@ -568,7 +568,7 @@
             assertThat(liveData, notNullValue())
             assertThat(
                 LiveDataQueryResultBinderProvider(invocation.context).matches(
-                    liveData.asDeclaredType()
+                    liveData.type
                 ),
                 `is`(true)
             )
@@ -622,7 +622,7 @@
             assertThat(dataSource, notNullValue())
             assertThat(
                 DataSourceQueryResultBinderProvider(invocation.context).matches(
-                    dataSource.asDeclaredType()
+                    dataSource.type
                 ),
                 `is`(true)
             )
@@ -642,7 +642,7 @@
             assertThat(dataSource, notNullValue())
             assertThat(
                 DataSourceQueryResultBinderProvider(invocation.context).matches(
-                    dataSource.asDeclaredType()
+                    dataSource.type
                 ),
                 `is`(true)
             )
@@ -658,7 +658,7 @@
             assertThat(pagedListProvider, notNullValue())
             assertThat(
                 DataSourceFactoryQueryResultBinderProvider(invocation.context).matches(
-                    pagedListProvider.asDeclaredType()
+                    pagedListProvider.type
                 ),
                 `is`(true)
             )
diff --git a/room/compiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt b/room/compiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
index 21b26a5..7c325d5 100644
--- a/room/compiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
@@ -20,6 +20,7 @@
 import androidx.room.Query
 import androidx.room.ext.RoomTypeNames.ROOM_SQL_QUERY
 import androidx.room.ext.RoomTypeNames.STRING_UTIL
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.QueryMethodProcessor
 import androidx.room.testing.TestProcessor
 import androidx.room.writer.QueryWriter
@@ -354,18 +355,18 @@
                     .forAnnotations(Query::class, Dao::class)
                     .nextRunHandler { invocation ->
                         val (owner, methods) = invocation.roundEnv
-                            .getElementsAnnotatedWith(Dao::class.java)
+                            .getTypeElementsAnnotatedWith(Dao::class.java)
                             .map {
                                 Pair(
                                     it,
-                                    it.asTypeElement().getAllMethods().filter {
+                                    it.getAllMethods().filter {
                                         it.hasAnnotation(Query::class)
                                     }
                                 )
                             }.first { it.second.isNotEmpty() }
                         val parser = QueryMethodProcessor(
                             baseContext = invocation.context,
-                            containing = owner.asDeclaredType(),
+                            containing = owner.type,
                             executableElement = methods.first()
                         )
                         val method = parser.process()
diff --git a/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt b/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
index febe6e2..5688221 100644
--- a/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
@@ -30,6 +30,7 @@
 import androidx.room.ext.RoomRxJava3TypeNames
 import androidx.room.ext.RxJava2TypeNames
 import androidx.room.ext.RxJava3TypeNames
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.DatabaseViewProcessor
 import androidx.room.processor.TableEntityProcessor
 import androidx.room.solver.CodeGenScope
@@ -263,14 +264,14 @@
 }
 
 fun TestInvocation.getViews(): List<androidx.room.vo.DatabaseView> {
-    return roundEnv.getElementsAnnotatedWith(DatabaseView::class.java).map {
-        DatabaseViewProcessor(context, it.asTypeElement()).process()
+    return roundEnv.getTypeElementsAnnotatedWith(DatabaseView::class.java).map {
+        DatabaseViewProcessor(context, it).process()
     }
 }
 
 fun TestInvocation.getEntities(): List<androidx.room.vo.Entity> {
-    val entities = roundEnv.getElementsAnnotatedWith(Entity::class.java).map {
-        TableEntityProcessor(context, it.asTypeElement()).process()
+    val entities = roundEnv.getTypeElementsAnnotatedWith(Entity::class.java).map {
+        TableEntityProcessor(context, it).process()
     }
     return entities
 }
diff --git a/room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt b/room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
index f835074..b78e3b3 100644
--- a/room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
@@ -18,6 +18,7 @@
 
 import COMMON
 import androidx.room.ext.RoomTypeNames
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.DaoProcessor
 import androidx.room.testing.TestProcessor
 import com.google.common.truth.Truth
@@ -98,21 +99,21 @@
                     .forAnnotations(androidx.room.Dao::class)
                     .nextRunHandler { invocation ->
                         val dao = invocation.roundEnv
-                            .getElementsAnnotatedWith(
+                            .getTypeElementsAnnotatedWith(
                                 androidx.room.Dao::class.java
                             )
                             .first()
                         val db = invocation.roundEnv
-                            .getElementsAnnotatedWith(
+                            .getTypeElementsAnnotatedWith(
                                 androidx.room.Database::class.java
                             )
                             .firstOrNull()
                             ?: invocation.context.processingEnv
                                 .requireTypeElement(RoomTypeNames.ROOM_DB)
-                        val dbType = db.asDeclaredType()
+                        val dbType = db.type
                         val parser = DaoProcessor(
                             baseContext = invocation.context,
-                            element = dao.asTypeElement(),
+                            element = dao,
                             dbType = dbType,
                             dbVerifier = createVerifierFromEntitiesAndViews(invocation)
                         )
diff --git a/room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt b/room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
index c1dbb7a..6ec2ffd 100644
--- a/room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
@@ -17,6 +17,7 @@
 package androidx.room.writer
 
 import androidx.annotation.NonNull
+import androidx.room.ext.getTypeElementsAnnotatedWith
 import androidx.room.processor.DatabaseProcessor
 import androidx.room.testing.TestInvocation
 import androidx.room.testing.TestProcessor
@@ -221,8 +222,8 @@
                     )
                     .nextRunHandler { invocation ->
                         val db = invocation.roundEnv
-                            .getElementsAnnotatedWith(androidx.room.Database::class.java)
-                            .first().asTypeElement()
+                            .getTypeElementsAnnotatedWith(androidx.room.Database::class.java)
+                            .first()
                         handler(DatabaseProcessor(invocation.context, db).process(), invocation)
                         true
                     }
diff --git a/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java b/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
index 0a20b99..b71367d 100644
--- a/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
+++ b/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
@@ -364,6 +364,7 @@
         return result;
     }
 
+    @SuppressWarnings("unchecked")
     private static <T> Set<T> toSet(T... ts) {
         final HashSet<T> result = new HashSet<T>();
         for (T t : ts) {
diff --git a/room/runtime/src/test/java/androidx/room/BuilderTest.java b/room/runtime/src/test/java/androidx/room/BuilderTest.java
index ae6d83b..63ce98d 100644
--- a/room/runtime/src/test/java/androidx/room/BuilderTest.java
+++ b/room/runtime/src/test/java/androidx/room/BuilderTest.java
@@ -44,7 +44,7 @@
 import java.util.List;
 import java.util.concurrent.Executor;
 
-@SuppressWarnings("ArraysAsListWithZeroOrOneArgument")
+@SuppressWarnings({"ArraysAsListWithZeroOrOneArgument", "deprecation"})
 @RunWith(JUnit4.class)
 public class BuilderTest {
     @Test(expected = IllegalArgumentException.class)
diff --git a/room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java b/room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
index 66a7047..e52d47f 100644
--- a/room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
+++ b/room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
@@ -427,6 +427,7 @@
         assertThat(observer.getInvalidatedTables(), hasItem("a"));
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void failFastCreateLiveData() {
         // assert that sending a bad createLiveData table name fails instantly
diff --git a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedFileTest.java b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedFileTest.java
index c683a79..b08a7bf 100644
--- a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedFileTest.java
+++ b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedFileTest.java
@@ -32,7 +32,6 @@
 import com.google.crypto.tink.integration.android.AndroidKeysetManager;
 import com.google.crypto.tink.streamingaead.AesGcmHkdfStreamingKeyManager;
 import com.google.crypto.tink.streamingaead.StreamingAeadConfig;
-import com.google.crypto.tink.streamingaead.StreamingAeadFactory;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -50,7 +49,6 @@
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class EncryptedFileTest {
-
     private Context mContext;
     private MasterKey mMasterKey;
 
@@ -170,6 +168,7 @@
 
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testWriteReadEncryptedFileWithAlias() throws Exception {
         final String fileContent = "Don't tell anyone...";
@@ -299,6 +298,7 @@
         Assert.assertTrue("Keyset should have existed.", containsKeyset);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void tinkTest() throws Exception {
         final String fileContent = "Don't tell anyone...";
@@ -324,8 +324,8 @@
                 .withMasterKeyUri(KEYSTORE_PATH_URI + mMasterKey.getKeyAlias())
                 .build().getKeysetHandle();
 
-        StreamingAead streamingAead = StreamingAeadFactory.getPrimitive(
-                streadmingAeadKeysetHandle);
+        StreamingAead streamingAead = com.google.crypto.tink.streamingaead.StreamingAeadFactory
+                .getPrimitive(streadmingAeadKeysetHandle);
 
         FileInputStream fileInputStream = new FileInputStream(file);
         InputStream inputStream = streamingAead.newDecryptingStream(fileInputStream,
diff --git a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
index 0a76af6..2b95874 100644
--- a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
+++ b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
@@ -347,6 +347,7 @@
                 sharedPreferences.getAll().size());
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testWriteSharedPrefsTink() throws Exception {
         String tinkTestPrefs = "TinkTestPrefs";
diff --git a/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeyTest.java b/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeyTest.java
index a271b22..616227f 100644
--- a/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeyTest.java
+++ b/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeyTest.java
@@ -170,6 +170,7 @@
         }
     }
 
+    @SuppressWarnings("deprecation")
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.M)
     @Test
     public void testUseOfSchemeAndParamsFails() throws GeneralSecurityException,
diff --git a/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeysTest.java b/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeysTest.java
index 8a3cd6e..7e2ed24 100644
--- a/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeysTest.java
+++ b/security/crypto/src/androidTest/java/androidx/security/crypto/MasterKeysTest.java
@@ -39,6 +39,7 @@
 import java.security.GeneralSecurityException;
 import java.security.KeyStore;
 
+@SuppressWarnings("deprecation")
 @MediumTest
 @SdkSuppress(minSdkVersion = Build.VERSION_CODES.M)
 @RunWith(AndroidJUnit4.class)
diff --git a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/DynamicAuthTest.java b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/DynamicAuthTest.java
index c986a44..7f6d550 100644
--- a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/DynamicAuthTest.java
+++ b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/DynamicAuthTest.java
@@ -29,7 +29,6 @@
 import androidx.security.identity.IdentityCredentialStore;
 import androidx.security.identity.NoAuthenticationKeyAvailableException;
 import androidx.security.identity.ResultData;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 
@@ -61,9 +60,10 @@
 public class DynamicAuthTest {
     private static final String TAG = "DynamicAuthTest";
 
+    @SuppressWarnings("deprecation")
     @Test
     public void dynamicAuthTest() throws Exception {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         String credentialName = "test";
diff --git a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/EphemeralKeyTest.java b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/EphemeralKeyTest.java
index 4f0a62b..f9173ab 100644
--- a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/EphemeralKeyTest.java
+++ b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/EphemeralKeyTest.java
@@ -28,7 +28,6 @@
 import androidx.security.identity.IdentityCredential;
 import androidx.security.identity.IdentityCredentialException;
 import androidx.security.identity.IdentityCredentialStore;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 
@@ -57,6 +56,7 @@
 import javax.crypto.spec.SecretKeySpec;
 
 // TODO: For better coverage, use different ECDH and HKDF implementations in test code.
+@SuppressWarnings("deprecation")
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class EphemeralKeyTest {
@@ -64,7 +64,7 @@
 
     @Test
     public void createEphemeralKey() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         String credentialName = "ephemeralKeyTest";
diff --git a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ProvisioningTest.java b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ProvisioningTest.java
index 8ec51a5..363c0b8 100644
--- a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ProvisioningTest.java
+++ b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ProvisioningTest.java
@@ -40,7 +40,6 @@
 import androidx.security.identity.PersonalizationData;
 import androidx.security.identity.ResultData;
 import androidx.security.identity.WritableIdentityCredential;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 
@@ -71,6 +70,7 @@
  *
  * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
  */
+@SuppressWarnings("deprecation")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class ProvisioningTest {
@@ -357,7 +357,7 @@
 
     @Test
     public void alreadyPersonalized() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -374,7 +374,7 @@
 
     @Test
     public void nonExistent() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -385,7 +385,7 @@
 
     @Test
     public void defaultStoreSupportsAnyDocumentType() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         String[] supportedDocTypes = store.getSupportedDocTypes();
@@ -395,7 +395,7 @@
     @Test
     public void deleteCredential()
             throws IdentityCredentialException, CborException, CertificateEncodingException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -430,7 +430,7 @@
 
     @Test
     public void testProvisionAndRetrieve() throws IdentityCredentialException, CborException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -520,7 +520,7 @@
     @Test
     public void testProvisionAndRetrieveMultipleTimes() throws IdentityCredentialException,
             InvalidKeyException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         // This checks we can do multiple getEntries() calls
@@ -577,7 +577,7 @@
 
     @Test
     public void testProvisionAndRetrieveWithFiltering() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -627,7 +627,7 @@
 
     @Test
     public void testProvisionAndRetrieveElementWithNoACP() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -665,7 +665,7 @@
 
     @Test
     public void testProvisionAndRetrieveWithEntryNotInRequest() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -718,7 +718,7 @@
 
     @Test
     public void nonExistentEntries() throws IdentityCredentialException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
@@ -760,7 +760,7 @@
 
     @Test
     public void multipleNamespaces() throws IdentityCredentialException, CborException {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         store.deleteCredentialByName("test");
diff --git a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ReaderAuthTest.java b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ReaderAuthTest.java
index aba2975..f2446c7 100644
--- a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ReaderAuthTest.java
+++ b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/ReaderAuthTest.java
@@ -38,7 +38,6 @@
 import androidx.security.identity.PersonalizationData;
 import androidx.security.identity.ResultData;
 import androidx.security.identity.WritableIdentityCredential;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 
@@ -84,6 +83,7 @@
         return kpg.generateKeyPair();
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void readerAuth()
             throws IdentityCredentialException, CborException, InvalidAlgorithmParameterException,
@@ -158,7 +158,7 @@
         certChainForBwithC.add(certC);
 
         // Provision the credential.
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
         IdentityCredentialStore store = Util.getIdentityCredentialStore(appContext);
 
         String credentialName = "readerAuthTestCredential";
diff --git a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/X509CertificateSigningTest.java b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/X509CertificateSigningTest.java
index 336e84a..53cbedf 100644
--- a/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/X509CertificateSigningTest.java
+++ b/security/identity-credential/src/androidTest/java/androidx/security/identity/cts/X509CertificateSigningTest.java
@@ -28,7 +28,6 @@
 import android.util.AtomicFile;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 
@@ -49,6 +48,7 @@
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 
+@SuppressWarnings("deprecation")
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class X509CertificateSigningTest {
@@ -57,7 +57,7 @@
 
     @Test
     public void testSigning() {
-        Context appContext = InstrumentationRegistry.getTargetContext();
+        Context appContext = androidx.test.InstrumentationRegistry.getTargetContext();
 
         String keyToSignAlias = "testKeyToSign";
         String keyToSignWithAlias = "testKeyToSignWith";
diff --git a/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ChooserTargetServiceCompatTest.java b/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ChooserTargetServiceCompatTest.java
index e4d5212..068467b 100644
--- a/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ChooserTargetServiceCompatTest.java
+++ b/sharetarget/sharetarget/src/androidTest/java/androidx/sharetarget/ChooserTargetServiceCompatTest.java
@@ -27,7 +27,6 @@
 import android.content.Context;
 import android.content.ContextWrapper;
 import android.content.Intent;
-import android.service.chooser.ChooserTarget;
 
 import androidx.core.content.pm.ShortcutInfoCompat;
 import androidx.core.content.pm.ShortcutManagerCompat;
@@ -64,6 +63,7 @@
         when(mShortcutSaver.getShortcutIcon(any())).thenReturn(mTestIcon);
     }
 
+    @SuppressWarnings({"deprecation", "unchecked"})
     @Test
     @SdkSuppress(minSdkVersion = 23)
     public void testConvertShortcutstoChooserTargets() {
@@ -87,7 +87,7 @@
 
         // Need to clone to keep the original order for testing.
         ArrayList<ShortcutHolder> clonedList = (ArrayList<ShortcutHolder>) testShortcuts.clone();
-        List<ChooserTarget> chooserTargets =
+        List<android.service.chooser.ChooserTarget> chooserTargets =
                 ChooserTargetServiceCompat.convertShortcutsToChooserTargets(
                         mShortcutSaver, clonedList);
 
@@ -96,7 +96,7 @@
 
         assertEquals(testShortcuts.size(), chooserTargets.size());
         for (int i = 0; i < chooserTargets.size(); i++) {
-            ChooserTarget ct = chooserTargets.get(i);
+            android.service.chooser.ChooserTarget ct = chooserTargets.get(i);
             ShortcutInfoCompat si = testShortcuts.get(expectedOrder[i]).getShortcut();
             ComponentName cn = testShortcuts.get(expectedOrder[i]).getTargetClass();
 
diff --git a/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java b/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
index de9e87a..5e843ea 100644
--- a/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
+++ b/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
@@ -21,8 +21,7 @@
 import static android.app.slice.SliceItem.FORMAT_SLICE;
 import static android.app.slice.SliceItem.FORMAT_TEXT;
 
-import static junit.framework.Assert.assertEquals;
-
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 import android.app.PendingIntent;
diff --git a/slices/view/api/current.txt b/slices/view/api/current.txt
index 47aa153..222c2f4 100644
--- a/slices/view/api/current.txt
+++ b/slices/view/api/current.txt
@@ -146,6 +146,7 @@
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?);
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?, int);
     ctor @RequiresApi(21) public SliceView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method protected void configureViewPolicy(int);
     method public int getHiddenItemCount();
     method public int getMode();
     method public androidx.slice.Slice? getSlice();
diff --git a/slices/view/api/public_plus_experimental_current.txt b/slices/view/api/public_plus_experimental_current.txt
index 47aa153..222c2f4 100644
--- a/slices/view/api/public_plus_experimental_current.txt
+++ b/slices/view/api/public_plus_experimental_current.txt
@@ -146,6 +146,7 @@
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?);
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?, int);
     ctor @RequiresApi(21) public SliceView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method protected void configureViewPolicy(int);
     method public int getHiddenItemCount();
     method public int getMode();
     method public androidx.slice.Slice? getSlice();
diff --git a/slices/view/api/restricted_current.txt b/slices/view/api/restricted_current.txt
index 4e85c2a..09f2209 100644
--- a/slices/view/api/restricted_current.txt
+++ b/slices/view/api/restricted_current.txt
@@ -248,6 +248,7 @@
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?);
     ctor public SliceView(android.content.Context!, android.util.AttributeSet?, int);
     ctor @RequiresApi(21) public SliceView(android.content.Context!, android.util.AttributeSet!, int, int);
+    method protected void configureViewPolicy(int);
     method public int getHiddenItemCount();
     method public int getMode();
     method public androidx.slice.Slice? getSlice();
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
index 9c35fc2..e7c7ac7 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
@@ -57,6 +57,7 @@
 import java.io.InputStream;
 import java.util.concurrent.CountDownLatch;
 
+@SuppressWarnings("unchecked")
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 @SdkSuppress(minSdkVersion = 19)
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
index 88b0eb6..6e34c93 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
@@ -60,6 +60,7 @@
 import java.io.InputStream;
 import java.util.concurrent.CountDownLatch;
 
+@SuppressWarnings("unchecked")
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 @SdkSuppress(minSdkVersion = 19)
diff --git a/slices/view/src/main/java/androidx/slice/widget/SliceView.java b/slices/view/src/main/java/androidx/slice/widget/SliceView.java
index 1bbd4c7..bc77fc1 100644
--- a/slices/view/src/main/java/androidx/slice/widget/SliceView.java
+++ b/slices/view/src/main/java/androidx/slice/widget/SliceView.java
@@ -345,7 +345,10 @@
         }
     }
 
-    private void configureViewPolicy(int maxHeight) {
+    /**
+     * Sets the maximum height for a slice through the view policy.
+     */
+    protected void configureViewPolicy(int maxHeight) {
         if (mListContent != null && mListContent.isValid() && getMode() != MODE_SHORTCUT) {
             if (maxHeight > 0 && maxHeight < mSliceStyle.getRowMaxHeight()) {
                 if (maxHeight <= mMinTemplateHeight) {
diff --git a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
index 14759bd..a554e07 100644
--- a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
+++ b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
@@ -32,7 +32,6 @@
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -46,9 +45,11 @@
  */
 @RunWith(AndroidJUnit4.class)
 public class CircularProgressDrawableTest {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<CircularProgressDrawableActivity> mActivityTestRule =
-            new ActivityTestRule<>(CircularProgressDrawableActivity.class);
+    public final androidx.test.rule.ActivityTestRule<CircularProgressDrawableActivity>
+            mActivityTestRule =
+                new androidx.test.rule.ActivityTestRule<>(CircularProgressDrawableActivity.class);
 
     private CircularProgressDrawable mDrawableUnderTest;
 
diff --git a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutInScrollingParentBaseTest.java b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutInScrollingParentBaseTest.java
index ad2a176..6486134 100644
--- a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutInScrollingParentBaseTest.java
+++ b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutInScrollingParentBaseTest.java
@@ -31,7 +31,6 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.PollingCheck;
 import androidx.testutils.SwipeInjector;
 
@@ -41,9 +40,11 @@
 
 public abstract class SwipeRefreshLayoutInScrollingParentBaseTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<? extends SwipeRefreshLayoutInRecyclerViewBaseActivity>
-            mActivityTestRule = new ActivityTestRule<>(getActivityClass());
+    public final androidx.test.rule
+            .ActivityTestRule<? extends SwipeRefreshLayoutInRecyclerViewBaseActivity>
+            mActivityTestRule = new androidx.test.rule.ActivityTestRule<>(getActivityClass());
 
     private RecyclerView mRecyclerView;
     private LinearLayoutManager mLayoutManager;
diff --git a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutRequestDisallowInterceptBaseTest.java b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutRequestDisallowInterceptBaseTest.java
index 3fa3f7b..87d8cde 100644
--- a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutRequestDisallowInterceptBaseTest.java
+++ b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutRequestDisallowInterceptBaseTest.java
@@ -25,7 +25,6 @@
 import android.view.ViewConfiguration;
 
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.SwipeInjector;
 
 import org.junit.Before;
@@ -34,9 +33,11 @@
 
 public abstract class SwipeRefreshLayoutRequestDisallowInterceptBaseTest {
 
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<? extends SwipeRefreshLayoutInRecyclerViewBaseActivity>
-            mActivityTestRule = new ActivityTestRule<>(getActivityClass());
+    public final androidx.test.rule
+            .ActivityTestRule<? extends SwipeRefreshLayoutInRecyclerViewBaseActivity>
+            mActivityTestRule = new androidx.test.rule.ActivityTestRule<>(getActivityClass());
 
     private RequestDisallowInterceptRecordingRecyclerView mRecyclerView;
     private int mTouchSlop;
diff --git a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
index caf7544..bf17eca 100644
--- a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
+++ b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
@@ -38,7 +38,6 @@
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
@@ -55,9 +54,10 @@
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public class SwipeRefreshLayoutTest {
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<SwipeRefreshLayoutActivity> mActivityTestRule =
-            new ActivityTestRule<>(SwipeRefreshLayoutActivity.class);
+    public final androidx.test.rule.ActivityTestRule<SwipeRefreshLayoutActivity> mActivityTestRule =
+            new androidx.test.rule.ActivityTestRule<>(SwipeRefreshLayoutActivity.class);
 
     private static final long TIMEOUT = 1000;
     private static final int INVALID_SIZE = 1000;
diff --git a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutWithHorizontallyScrollingChildTest.java b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutWithHorizontallyScrollingChildTest.java
index e041327..66631cd 100644
--- a/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutWithHorizontallyScrollingChildTest.java
+++ b/swiperefreshlayout/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutWithHorizontallyScrollingChildTest.java
@@ -41,7 +41,6 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.SwipeInjector;
 
 import org.junit.Before;
@@ -52,8 +51,8 @@
 
     @Rule
     @SuppressWarnings("deprecation")
-    public final ActivityTestRule<ComponentActivity>
-            mActivityTestRule = new ActivityTestRule<>(ComponentActivity.class);
+    public final androidx.test.rule.ActivityTestRule<ComponentActivity>
+            mActivityTestRule = new androidx.test.rule.ActivityTestRule<>(ComponentActivity.class);
 
     private SwipeRefreshLayout mSwipeRefreshLayout;
     private RecyclerView mRecyclerView;
diff --git a/tracing/tracing/src/androidTest/java/androidx/tracing/TraceTest.java b/tracing/tracing/src/androidTest/java/androidx/tracing/TraceTest.java
index 1ac1834..1e24c25 100644
--- a/tracing/tracing/src/androidTest/java/androidx/tracing/TraceTest.java
+++ b/tracing/tracing/src/androidTest/java/androidx/tracing/TraceTest.java
@@ -16,8 +16,8 @@
 
 package androidx.tracing;
 
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.TestCase.assertTrue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
diff --git a/transition/transition/src/androidTest/java/androidx/transition/BaseTest.java b/transition/transition/src/androidTest/java/androidx/transition/BaseTest.java
index 7e934e0..1736a8b 100644
--- a/transition/transition/src/androidTest/java/androidx/transition/BaseTest.java
+++ b/transition/transition/src/androidTest/java/androidx/transition/BaseTest.java
@@ -17,19 +17,19 @@
 package androidx.transition;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 @RunWith(AndroidJUnit4.class)
 public abstract class BaseTest {
-
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<TransitionActivity> rule;
+    public final androidx.test.rule.ActivityTestRule<TransitionActivity> rule;
 
+    @SuppressWarnings("deprecation")
     BaseTest() {
-        rule = new ActivityTestRule<>(TransitionActivity.class);
+        rule = new androidx.test.rule.ActivityTestRule<>(TransitionActivity.class);
     }
 
 }
diff --git a/transition/transition/src/androidTest/java/androidx/transition/TransitionActivity.java b/transition/transition/src/androidTest/java/androidx/transition/TransitionActivity.java
index 8ce0767..002c7d4 100644
--- a/transition/transition/src/androidTest/java/androidx/transition/TransitionActivity.java
+++ b/transition/transition/src/androidTest/java/androidx/transition/TransitionActivity.java
@@ -28,6 +28,7 @@
 
     private LinearLayout mRoot;
 
+    @SuppressWarnings("deprecation")
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/vectordrawable/vectordrawable-animated/build.gradle b/vectordrawable/vectordrawable-animated/build.gradle
index c188aac..57a3bf7 100644
--- a/vectordrawable/vectordrawable-animated/build.gradle
+++ b/vectordrawable/vectordrawable-animated/build.gradle
@@ -46,4 +46,5 @@
     mavenGroup = LibraryGroups.VECTORDRAWABLE
     inceptionYear = "2015"
     description = "Android Support AnimatedVectorDrawable"
+    failOnDeprecationWarnings = false
 }
diff --git a/viewpager/viewpager/build.gradle b/viewpager/viewpager/build.gradle
index 656aa08..7194986 100644
--- a/viewpager/viewpager/build.gradle
+++ b/viewpager/viewpager/build.gradle
@@ -35,4 +35,5 @@
     mavenGroup = LibraryGroups.VIEWPAGER
     inceptionYear = "2018"
     description = "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later."
+    failOnDeprecationWarnings = false
 }
diff --git a/wear/wear-input/src/test/java/androidx/wear/input/WearableButtonsTest.java b/wear/wear-input/src/test/java/androidx/wear/input/WearableButtonsTest.java
index 08c26d8..1c1f420 100644
--- a/wear/wear-input/src/test/java/androidx/wear/input/WearableButtonsTest.java
+++ b/wear/wear-input/src/test/java/androidx/wear/input/WearableButtonsTest.java
@@ -295,6 +295,7 @@
         assertEquals(4, info.getY(), 1.0e-7);
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testGetButtonsLeftyNoData() {
         Context context = ApplicationProvider.getApplicationContext();
diff --git a/wear/wear-watchface-complications-rendering/src/test/java/androidx/wear/watchface/complications/rendering/RoundedDrawableTest.java b/wear/wear-watchface-complications-rendering/src/test/java/androidx/wear/watchface/complications/rendering/RoundedDrawableTest.java
index c909f57..a3b5fa2 100644
--- a/wear/wear-watchface-complications-rendering/src/test/java/androidx/wear/watchface/complications/rendering/RoundedDrawableTest.java
+++ b/wear/wear-watchface-complications-rendering/src/test/java/androidx/wear/watchface/complications/rendering/RoundedDrawableTest.java
@@ -63,6 +63,7 @@
                         Bitmap.createBitmap(BITMAP_WIDTH, BITMAP_HEIGHT, Bitmap.Config.ARGB_8888));
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void colorFilterIsAppliedCorrectly() {
         ColorFilter cf = new ColorFilter();
diff --git a/wear/wear/build.gradle b/wear/wear/build.gradle
index 09fdd9a..3c16a59 100644
--- a/wear/wear/build.gradle
+++ b/wear/wear/build.gradle
@@ -60,4 +60,5 @@
     mavenVersion = LibraryVersions.WEAR
     inceptionYear = "2016"
     description = "Android Wear Support UI"
+    failOnDeprecationWarnings = false
 }
diff --git a/wear/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java b/wear/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
index 840bb02..03e34be 100644
--- a/wear/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
+++ b/wear/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
@@ -154,6 +154,7 @@
         mActivityRule.getScenario().onActivity(activity -> {
             activity.runOnUiThread(new Runnable() {
                 @Override
+                @SuppressWarnings("unchecked")
                 public void run() {
                     WearableRecyclerView wrv = (WearableRecyclerView) activity.findViewById(
                             R.id.wrv);
diff --git a/wear/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java b/wear/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
index 9d48837..36f4a4a 100644
--- a/wear/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
+++ b/wear/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
@@ -701,6 +701,7 @@
      * Returns the first child of {@code root} to be an instance of class {@code T}, or {@code null}
      * if none were found.
      */
+    @SuppressWarnings("unchecked")
     @Nullable
     private <T> T getChildByType(View root, Class<T> classOfChildToFind) {
         for (View child : TreeIterables.breadthFirstViewTraversal(root)) {
diff --git a/webkit/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatForceDarkTest.java b/webkit/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatForceDarkTest.java
index 3e06afc..7b7806e 100644
--- a/webkit/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatForceDarkTest.java
+++ b/webkit/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatForceDarkTest.java
@@ -29,7 +29,6 @@
 import androidx.core.graphics.ColorUtils;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
 import org.junit.Before;
@@ -61,9 +60,10 @@
     // LayoutParams are null until WebView has a parent Activity.
     // Test testForceDark_rendersDark requires LayoutParams to define
     // width and height of WebView to capture its bitmap representation.
+    @SuppressWarnings("deprecation")
     @Rule
-    public final ActivityTestRule<WebViewTestActivity> mActivityRule =
-            new ActivityTestRule<>(WebViewTestActivity.class);
+    public final androidx.test.rule.ActivityTestRule<WebViewTestActivity> mActivityRule =
+            new androidx.test.rule.ActivityTestRule<>(WebViewTestActivity.class);
     private WebViewOnUiThread mWebViewOnUiThread;
 
     @Before
diff --git a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java
index d9ef604..2b1421f 100644
--- a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java
+++ b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java
@@ -46,7 +46,7 @@
     private static final String JS_OBJECT_NAME = "myObject";
     private static final String BASIC_USAGE = "<!DOCTYPE html><html><body></body></html>";
     private static final String BASIC_SCRIPT = "myObject.postMessage('hello');";
-    private static final Set<String> MATCH_EXAMPLE_COM = new HashSet(Arrays.asList(BASE_URI));
+    private static final Set<String> MATCH_EXAMPLE_COM = new HashSet<>(Arrays.asList(BASE_URI));
 
     private WebViewOnUiThread mWebViewOnUiThread;
     private TestWebMessageListener mListener = new TestWebMessageListener();
diff --git a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
index cedfdbb..ad67acc 100644
--- a/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
+++ b/webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
@@ -58,7 +58,7 @@
             + "        myObject.postMessage('hello');"
             + "    </script>"
             + "</body></html>";
-    private static final Set<String> MATCH_EXAMPLE_COM = new HashSet(Arrays.asList(BASE_URI));
+    private static final Set<String> MATCH_EXAMPLE_COM = new HashSet<>(Arrays.asList(BASE_URI));
 
     private WebViewOnUiThread mWebViewOnUiThread;
     private TestWebMessageListener mListener = new TestWebMessageListener();
diff --git a/window/window/src/androidTest/java/androidx/window/ExtensionWindowBackendTest.java b/window/window/src/androidTest/java/androidx/window/ExtensionWindowBackendTest.java
index 97fbd20..52a190b 100644
--- a/window/window/src/androidTest/java/androidx/window/ExtensionWindowBackendTest.java
+++ b/window/window/src/androidTest/java/androidx/window/ExtensionWindowBackendTest.java
@@ -52,7 +52,7 @@
 import java.util.List;
 
 /** Tests for {@link ExtensionWindowBackend} class. */
-@SuppressWarnings("deprecation") // TODO(b/173739071) remove DeviceState
+@SuppressWarnings({"deprecation", "unchecked"}) // TODO(b/173739071) remove DeviceState
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public final class ExtensionWindowBackendTest extends WindowTestBase {
diff --git a/window/window/src/androidTest/java/androidx/window/WindowBackendTest.java b/window/window/src/androidTest/java/androidx/window/WindowBackendTest.java
index d807de5..1e88185 100644
--- a/window/window/src/androidTest/java/androidx/window/WindowBackendTest.java
+++ b/window/window/src/androidTest/java/androidx/window/WindowBackendTest.java
@@ -38,6 +38,7 @@
 import java.util.concurrent.Executor;
 
 /** Tests for {@link WindowBackend} class. */
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public final class WindowBackendTest extends WindowTestBase {
diff --git a/window/window/src/androidTest/java/androidx/window/WindowManagerTest.java b/window/window/src/androidTest/java/androidx/window/WindowManagerTest.java
index dddc9ef..83782d0 100644
--- a/window/window/src/androidTest/java/androidx/window/WindowManagerTest.java
+++ b/window/window/src/androidTest/java/androidx/window/WindowManagerTest.java
@@ -40,6 +40,7 @@
 import java.util.concurrent.Executor;
 
 /** Tests for {@link WindowManager} class. */
+@SuppressWarnings("unchecked")
 @LargeTest
 @RunWith(AndroidJUnit4.class)
 public final class WindowManagerTest extends WindowTestBase {
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
index 711f1e67..08dc032 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
@@ -74,6 +74,7 @@
         mWorkConstraintsTracker = new WorkConstraintsTracker(mCallback, controllers);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void testReplace() {
         List<WorkSpec> emptyList = Collections.emptyList();
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
index 5e48bef..5043e34 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
@@ -46,6 +46,7 @@
 @SdkSuppress(minSdkVersion = 23)
 public class ConstraintControllerTest extends WorkManagerTest {
     private TestDeviceIdleConstraintController mTestIdleController;
+    @SuppressWarnings("unchecked")
     private ConstraintTracker<Boolean> mMockTracker = mock(ConstraintTracker.class);
     private ConstraintController.OnConstraintUpdatedCallback mCallback =
             mock(ConstraintController.OnConstraintUpdatedCallback.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
index c59a654..f8c9da7 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
@@ -54,6 +54,7 @@
     private ConstraintListener<Boolean> mListener;
     private Context mMockContext;
 
+    @SuppressWarnings("unchecked")
     @Before
     public void setUp() {
         mMockContext = mock(Context.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
index 8a593d5..f37c684 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
@@ -54,6 +54,7 @@
     private BatteryNotLowTracker mTracker;
     private ConstraintListener<Boolean> mListener;
 
+    @SuppressWarnings("unchecked")
     @Before
     public void setUp() {
         mMockContext = mock(Context.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
index fc04e38..b3ee2dc 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
@@ -35,6 +35,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+@SuppressWarnings("unchecked")
 @SmallTest
 @RunWith(AndroidJUnit4.class)
 public class ConstraintTrackerTest {
@@ -79,6 +80,7 @@
         assertThat(mTracker.mGetInitialStateCount, is(1));
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void testAddListener_sameListener_doesNotCallGetInitialStateAndStartTrackingTwice() {
         ConstraintListener<Boolean> constraintListener = mock(ConstraintListener.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
index 38a03b9..0313e43 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
@@ -49,6 +49,7 @@
     private Context mMockContext;
     private ConnectivityManager mMockConnectivityManager;
 
+    @SuppressWarnings("unchecked")
     @Before
     public void setUp() {
         mMockContext = mock(Context.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
index 59efc3f..af162d8 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
@@ -47,6 +47,7 @@
     private ConstraintListener<Boolean> mListener;
     private Context mMockContext;
 
+    @SuppressWarnings("unchecked")
     @Before
     public void setUp() {
         mMockContext = mock(Context.class);