Merge "Additional tests for refresh key behavior" into androidx-main
diff --git a/activity/integration-tests/testapp/lint-baseline.xml b/activity/integration-tests/testapp/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/activity/integration-tests/testapp/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/ads/ads-identifier-common/lint-baseline.xml b/ads/ads-identifier-common/lint-baseline.xml
index fde8d29..3c648dc 100644
--- a/ads/ads-identifier-common/lint-baseline.xml
+++ b/ads/ads-identifier-common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="PrivateConstructorForUtilityClass"
diff --git a/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml b/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
index 6afbeb5..a417427 100644
--- a/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
+++ b/ads/ads-identifier-provider/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml b/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
index c90d548..45809b6 100644
--- a/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
+++ b/ads/ads-identifier/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml b/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
index d8f1c56..bd764f2 100644
--- a/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
+++ b/annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ExperimentalAnnotationRetention"
@@ -25,138 +25,6 @@
 
     <issue
         id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalDateTimeKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalDateTimeKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalDateTimeKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalDateTimeKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalDateTimeKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@RequiresOptIn(level = RequiresOptIn.Level.ERROR)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/optin/ExperimentalKotlinAnnotation.kt"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@RequiresOptIn(level = RequiresOptIn.Level.ERROR)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/optin/ExperimentalKotlinAnnotation.kt"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@RequiresOptIn(level = RequiresOptIn.Level.ERROR)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/optin/ExperimentalKotlinAnnotation.kt"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@RequiresOptIn(level = RequiresOptIn.Level.ERROR)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/optin/ExperimentalKotlinAnnotation.kt"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@RequiresOptIn(level = RequiresOptIn.Level.ERROR)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/optin/ExperimentalKotlinAnnotation.kt"
-            line="19"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalLocationKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
-        message="Failed to extract attribute &quot;level&quot; from annotation"
-        errorLine1="@Experimental"
-        errorLine2="~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/sample/experimental/ExperimentalLocationKt.kt"
-            line="20"
-            column="1"/>
-    </issue>
-
-    <issue
-        id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalJavaAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalJavaAnnotation.class)&apos;"
         errorLine1="        AnnotatedJavaClass experimentalObject = new AnnotatedJavaClass();"
         errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -476,6 +344,105 @@
 
     <issue
         id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTimeKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTimeKt.class)&apos;"
+        errorLine1="        sample.experimental.DateProviderKt dateProvider = new sample.experimental.DateProviderKt();"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="25"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTimeKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTimeKt.class)&apos;"
+        errorLine1="        return dateProvider.getDate();"
+        errorLine2="                            ~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="26"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalKotlinAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalKotlinAnnotation.class)&apos;"
+        errorLine1="        AnnotatedKotlinClass experimentalObject = new AnnotatedKotlinClass();"
+        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/optin/UseKtExperimentalFromJava.java"
+            line="28"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalKotlinAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalKotlinAnnotation.class)&apos;"
+        errorLine1="        return experimentalObject.method();"
+        errorLine2="                                  ~~~~~~">
+        <location
+            file="src/main/java/sample/optin/UseKtExperimentalFromJava.java"
+            line="29"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalLocationKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalLocationKt.class)&apos;"
+        errorLine1="        LocationProviderKt locationProvider = new LocationProviderKt();"
+        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="54"
+            column="47"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalLocationKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalLocationKt.class)&apos;"
+        errorLine1="        return dateProvider.getDate() + locationProvider.getLocation();"
+        errorLine2="                                                         ~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="55"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTimeKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTimeKt.class)&apos;"
+        errorLine1="        TimeProviderKt.getTimeStatically();"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="88"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTimeKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTimeKt.class)&apos;"
+        errorLine1="        TimeProviderKt.Companion.getTimeStatically();"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="89"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTimeKt&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTimeKt.class)&apos;"
+        errorLine1="        new TimeProviderKt().getTime();"
+        errorLine2="                             ~~~~~~~">
+        <location
+            file="src/main/java/sample/experimental/UseKtExperimentalFromJava.java"
+            line="96"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.experimental.ExperimentalDateTime&apos; or &apos;@OptIn(markerClass = sample.experimental.ExperimentalDateTime.class)&apos;"
         errorLine1="        new TimeProviderKt().getTimeJava();"
         errorLine2="                             ~~~~~~~~~~~">
@@ -487,6 +454,39 @@
 
     <issue
         id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalKotlinAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalKotlinAnnotation.class)&apos;"
+        errorLine1="        AnnotatedKotlinMembers.methodStatic();"
+        errorLine2="                               ~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/optin/UseKtExperimentalFromJava.java"
+            line="97"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalKotlinAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalKotlinAnnotation.class)&apos;"
+        errorLine1="        AnnotatedKotlinMembers.Companion.methodStatic();"
+        errorLine2="                                         ~~~~~~~~~~~~">
+        <location
+            file="src/main/java/sample/optin/UseKtExperimentalFromJava.java"
+            line="98"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
+        message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalKotlinAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalKotlinAnnotation.class)&apos;"
+        errorLine1="        new AnnotatedKotlinMembers().method();"
+        errorLine2="                                     ~~~~~~">
+        <location
+            file="src/main/java/sample/optin/UseKtExperimentalFromJava.java"
+            line="107"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="UnsafeOptInUsageError"
         message="This declaration is opt-in and its usage should be marked with&#xA;&apos;@sample.optin.ExperimentalJavaAnnotation&apos; or &apos;@OptIn(markerClass = sample.optin.ExperimentalJavaAnnotation.class)&apos;"
         errorLine1="        new AnnotatedKotlinMembers().methodWithJavaMarker();"
         errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~">
diff --git a/annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt b/annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt
index dc4996c..b194f01 100644
--- a/annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt
+++ b/annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt
@@ -30,7 +30,6 @@
 import com.android.tools.lint.detector.api.isKotlin
 import com.intellij.psi.PsiClassType
 import com.intellij.psi.PsiElement
-import com.intellij.psi.PsiField
 import com.intellij.psi.PsiMethod
 import org.jetbrains.uast.UAnnotated
 import org.jetbrains.uast.UAnnotation
@@ -39,7 +38,6 @@
 import org.jetbrains.uast.UClassLiteralExpression
 import org.jetbrains.uast.UElement
 import org.jetbrains.uast.UExpression
-import org.jetbrains.uast.UReferenceExpression
 import org.jetbrains.uast.getParentOfType
 import java.util.Locale
 
@@ -115,33 +113,15 @@
     ) {
         val useAnnotation = (annotation.uastParent as? UClass)?.qualifiedName ?: return
         if (!hasOrUsesAnnotation(context, usage, useAnnotation, useAnnotationNames)) {
-            val level = extractAttribute(annotation, "level")
-            if (level != null) {
-                report(
-                    context, usage,
-                    """
+            val level = annotation.extractAttribute(context, "level") ?: "ERROR"
+            report(
+                context, usage,
+                """
                     This declaration is opt-in and its usage should be marked with
                     '@$useAnnotation' or '@OptIn(markerClass = $useAnnotation.class)'
                 """,
-                    level
-                )
-            } else {
-                report(
-                    context, annotation,
-                    """
-                    Failed to extract attribute "level" from annotation
-                """,
-                    "ERROR"
-                )
-            }
-        }
-    }
-
-    @Suppress("SameParameterValue")
-    private fun extractAttribute(annotation: UAnnotation, name: String): String? {
-        // Using findAttributeValue instead of findDeclaredAttributeValue allows default values.
-        return annotation.findAttributeValue(name)?.let { expression ->
-            ((expression as? UReferenceExpression)?.resolve() as? PsiField)?.name
+                level
+            )
         }
     }
 
@@ -210,7 +190,16 @@
                     "of: ERROR, WARNING"
             )
         }
-        context.report(issue, usage, context.getNameLocation(usage), message.trimIndent())
+        try {
+            context.report(issue, usage, context.getNameLocation(usage), message.trimIndent())
+        } catch (e: UnsupportedOperationException) {
+            if ("Method not implemented" == e.message) {
+                // Workaround for b/191286558 where lint attempts to read annotations from a
+                // compiled UAST parent of `usage`. Swallow the exception and don't report anything.
+            } else {
+                throw e
+            }
+        }
     }
 
     companion object {
diff --git a/appcompat/appcompat-resources/lint-baseline.xml b/appcompat/appcompat-resources/lint-baseline.xml
index 4826d47..4f61f54 100644
--- a/appcompat/appcompat-resources/lint-baseline.xml
+++ b/appcompat/appcompat-resources/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.graphics.drawable.Drawable#getColorFilter`"
+        errorLine1="        assertNotNull(ld.getDrawable(0).getColorFilter());"
+        errorLine2="                                        ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java"
+            line="79"
+            column="41"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -8,7 +19,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="92"
+            line="93"
             column="5"/>
     </issue>
 
@@ -19,7 +30,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="130"
+            line="131"
             column="5"/>
     </issue>
 
@@ -30,7 +41,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="134"
+            line="135"
             column="5"/>
     </issue>
 
@@ -41,7 +52,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="138"
+            line="139"
             column="5"/>
     </issue>
 
@@ -52,7 +63,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="161"
+            line="162"
             column="5"/>
     </issue>
 
@@ -63,7 +74,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="316"
+            line="317"
             column="5"/>
     </issue>
 
@@ -74,7 +85,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="337"
+            line="338"
             column="5"/>
     </issue>
 
@@ -85,7 +96,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="352"
+            line="353"
             column="5"/>
     </issue>
 
@@ -96,7 +107,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="380"
+            line="381"
             column="5"/>
     </issue>
 
@@ -107,7 +118,7 @@
         errorLine2="    ^">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="470"
+            line="471"
             column="5"/>
     </issue>
 
@@ -145,7 +156,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java"
-            line="164"
+            line="165"
             column="19"/>
     </issue>
 
@@ -156,7 +167,7 @@
         errorLine2="                                    ~~~~~">
         <location
             file="src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java"
-            line="275"
+            line="276"
             column="37"/>
     </issue>
 
@@ -167,7 +178,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompat.java"
-            line="604"
+            line="605"
             column="12"/>
     </issue>
 
@@ -409,7 +420,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="95"
+            line="96"
             column="32"/>
     </issue>
 
@@ -420,7 +431,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="130"
+            line="131"
             column="39"/>
     </issue>
 
@@ -431,7 +442,7 @@
         errorLine2="                        ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="134"
+            line="135"
             column="25"/>
     </issue>
 
@@ -442,7 +453,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="470"
+            line="471"
             column="32"/>
     </issue>
 
@@ -453,7 +464,7 @@
         errorLine2="                       ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/ResourceManagerInternal.java"
-            line="471"
+            line="472"
             column="24"/>
     </issue>
 
diff --git a/appcompat/appcompat/lint-baseline.xml b/appcompat/appcompat/lint-baseline.xml
index 9775b50..7a93bc3 100644
--- a/appcompat/appcompat/lint-baseline.xml
+++ b/appcompat/appcompat/lint-baseline.xml
@@ -1,5 +1,148 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 21 (current min is 14): `android.graphics.drawable.AnimatedStateListDrawable`"
+        errorLine1="                || button instanceof AnimatedStateListDrawable);"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatCheckBoxTest.java"
+            line="71"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 21 (current min is 14): `android.graphics.drawable.AnimatedStateListDrawable`"
+        errorLine1="                || checkMark instanceof AnimatedStateListDrawable);"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatCheckedTextViewTest.java"
+            line="89"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `new android.view.inputmethod.InputContentInfo`"
+        errorLine1="        final InputContentInfo contentInfo = new InputContentInfo("
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java"
+            line="535"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `android.view.inputmethod.InputConnection#commitContent`"
+        errorLine1="        return ic.commitContent(contentInfo, flags, null);"
+        errorLine2="                  ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextReceiveContentTest.java"
+            line="543"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 14): `android.view.textclassifier.TextClassifier`"
+        errorLine1="    private static class NoOpTextClassifier implements TextClassifier {}"
+        errorLine2="                                                       ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextTest.java"
+            line="201"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 21 (current min is 14): `android.graphics.drawable.AnimatedStateListDrawable`"
+        errorLine1="                || button instanceof AnimatedStateListDrawable);"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatRadioButtonTest.java"
+            line="72"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.ContextThemeWrapper#applyOverrideConfiguration`"
+        errorLine1="        wrappedBase.applyOverrideConfiguration(overrideConfig);"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatSpinnerRtlActivity.java"
+            line="33"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 14): `android.view.textclassifier.TextClassifier`"
+        errorLine1="    private static class NoOpTextClassifier implements TextClassifier {}"
+        errorLine2="                                                       ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewTest.java"
+            line="928"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.ContextThemeWrapper#applyOverrideConfiguration`"
+        errorLine1="            wrappedBase.applyOverrideConfiguration(overrideConfig);"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/testutils/BaseTestActivity.java"
+            line="97"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 20 (current min is 14): `android.view.WindowInsets#getSystemWindowInsetTop`"
+        errorLine1="        mSystemWindowInsetTop = insets.getSystemWindowInsetTop();"
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/custom/CustomDrawerLayout.java"
+            line="41"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 16): `android.content.res.Configuration#setLayoutDirection`"
+        errorLine1="        configuration.setLayoutDirection(locale)"
+        errorLine2="                      ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/app/NightModeRtlTestUtilsRegressionTestCase.kt"
+            line="73"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 16): `android.content.res.Configuration#setLocale`"
+        errorLine1="        configuration.setLocale(locale)"
+        errorLine2="                      ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/app/NightModeRtlTestUtilsRegressionTestCase.kt"
+            line="74"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 16): `android.text.TextUtils#getLayoutDirectionFromLocale`"
+        errorLine1="        assertEquals(TextUtils.getLayoutDirectionFromLocale(CUSTOM_LOCALE), config.layoutDirection)"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/appcompat/app/NightModeRtlTestUtilsRegressionTestCase.kt"
+            line="94"
+            column="32"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -113,7 +256,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                info.setHomeAsUpIndicator.invoke(actionBar, drawable);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -124,7 +267,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                info.setHomeActionContentDescription.invoke(actionBar, contentDescRes);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -135,7 +278,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                info.setHomeActionContentDescription.invoke(actionBar, contentDescRes);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -146,7 +289,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        method.invoke(mTextView);"
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -157,7 +300,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            result = (T) method.invoke(object);"
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -168,7 +311,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                mResolvedMethod.invoke(mResolvedContext, v);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -179,7 +322,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            mSetExclusiveCheckableMethod.invoke(mWrappedObject, checkable);"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -190,40 +333,40 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mDoBeforeTextChanged.invoke(view);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="2073"
+            line="2080"
             column="21"/>
     </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mDoAfterTextChanged.invoke(view);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="2083"
+            line="2090"
             column="21"/>
     </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mEnsureImeVisible.invoke(view, /* visible = */ true);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="2093"
+            line="2100"
             column="21"/>
     </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    return (Boolean) mMethod.invoke(mRealOwner, item);"
         errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -234,7 +377,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mMethod.invoke(mRealOwner, item);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -245,7 +388,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                sComputeFitSystemWindowsMethod.invoke(view, inoutInsets, outLocalInsets);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -349,7 +492,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="608"
+            line="610"
             column="25"/>
     </issue>
 
@@ -360,7 +503,7 @@
         errorLine2="                                            ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="608"
+            line="610"
             column="45"/>
     </issue>
 
@@ -371,7 +514,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="641"
+            line="643"
             column="37"/>
     </issue>
 
@@ -382,7 +525,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="715"
+            line="717"
             column="39"/>
     </issue>
 
@@ -393,7 +536,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="716"
+            line="718"
             column="39"/>
     </issue>
 
@@ -404,7 +547,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="905"
+            line="907"
             column="26"/>
     </issue>
 
@@ -415,7 +558,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="906"
+            line="908"
             column="26"/>
     </issue>
 
@@ -426,7 +569,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="1054"
+            line="1056"
             column="26"/>
     </issue>
 
@@ -437,7 +580,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="1055"
+            line="1057"
             column="26"/>
     </issue>
 
@@ -987,7 +1130,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1698"
+            line="1705"
             column="32"/>
     </issue>
 
@@ -998,7 +1141,7 @@
         errorLine2="                ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="2026"
+            line="2033"
             column="17"/>
     </issue>
 
@@ -1009,7 +1152,7 @@
         errorLine2="                              ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1116"
+            line="1130"
             column="31"/>
     </issue>
 
@@ -5489,7 +5632,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java"
-            line="184"
+            line="186"
             column="35"/>
     </issue>
 
@@ -5500,7 +5643,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java"
-            line="192"
+            line="194"
             column="12"/>
     </issue>
 
@@ -5511,7 +5654,7 @@
         errorLine2="                                                   ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatAutoCompleteTextView.java"
-            line="192"
+            line="194"
             column="52"/>
     </issue>
 
@@ -5522,7 +5665,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatButton.java"
-            line="177"
+            line="179"
             column="35"/>
     </issue>
 
@@ -5533,7 +5676,7 @@
         errorLine2="                                               ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatButton.java"
-            line="185"
+            line="187"
             column="48"/>
     </issue>
 
@@ -5544,7 +5687,7 @@
         errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatButton.java"
-            line="191"
+            line="193"
             column="51"/>
     </issue>
 
@@ -5555,7 +5698,7 @@
         errorLine2="                                 ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatButton.java"
-            line="216"
+            line="218"
             column="34"/>
     </issue>
 
@@ -5566,7 +5709,7 @@
         errorLine2="           ~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatButton.java"
-            line="350"
+            line="352"
             column="12"/>
     </issue>
 
@@ -5610,7 +5753,7 @@
         errorLine2="                                  ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatCheckBox.java"
-            line="86"
+            line="88"
             column="35"/>
     </issue>
 
@@ -5995,7 +6138,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatEditText.java"
-            line="213"
+            line="215"
             column="35"/>
     </issue>
 
@@ -6006,7 +6149,7 @@
         errorLine2="                                                                       ~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatEditText.java"
-            line="291"
+            line="293"
             column="72"/>
     </issue>
 
@@ -6017,7 +6160,7 @@
         errorLine2="                               ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatImageButton.java"
-            line="101"
+            line="103"
             column="32"/>
     </issue>
 
@@ -6039,7 +6182,7 @@
         errorLine2="                               ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatImageView.java"
-            line="111"
+            line="113"
             column="32"/>
     </issue>
 
@@ -6050,7 +6193,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java"
-            line="182"
+            line="184"
             column="35"/>
     </issue>
 
@@ -6061,7 +6204,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java"
-            line="190"
+            line="192"
             column="12"/>
     </issue>
 
@@ -6072,7 +6215,7 @@
         errorLine2="                                                   ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView.java"
-            line="190"
+            line="192"
             column="52"/>
     </issue>
 
@@ -6083,7 +6226,7 @@
         errorLine2="                                ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java"
-            line="60"
+            line="62"
             column="33"/>
     </issue>
 
@@ -6094,7 +6237,7 @@
         errorLine2="                                ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java"
-            line="64"
+            line="66"
             column="33"/>
     </issue>
 
@@ -6105,7 +6248,7 @@
         errorLine2="                                ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java"
-            line="68"
+            line="70"
             column="33"/>
     </issue>
 
@@ -6116,7 +6259,7 @@
         errorLine2="                                  ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatRadioButton.java"
-            line="84"
+            line="86"
             column="35"/>
     </issue>
 
@@ -6138,7 +6281,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="208"
+            line="210"
             column="41"/>
     </issue>
 
@@ -6149,7 +6292,7 @@
         errorLine2="           ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="308"
+            line="310"
             column="12"/>
     </issue>
 
@@ -6160,7 +6303,7 @@
         errorLine2="                                           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="313"
+            line="315"
             column="44"/>
     </issue>
 
@@ -6171,7 +6314,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="327"
+            line="329"
             column="12"/>
     </issue>
 
@@ -6182,7 +6325,7 @@
         errorLine2="                           ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="401"
+            line="403"
             column="28"/>
     </issue>
 
@@ -6193,7 +6336,7 @@
         errorLine2="                                ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="427"
+            line="429"
             column="33"/>
     </issue>
 
@@ -6204,7 +6347,7 @@
         errorLine2="                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="462"
+            line="464"
             column="27"/>
     </issue>
 
@@ -6215,7 +6358,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="471"
+            line="473"
             column="12"/>
     </issue>
 
@@ -6226,7 +6369,7 @@
         errorLine2="           ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="616"
+            line="618"
             column="12"/>
     </issue>
 
@@ -6237,7 +6380,7 @@
         errorLine2="                                       ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatSpinner.java"
-            line="624"
+            line="626"
             column="40"/>
     </issue>
 
@@ -6248,7 +6391,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="208"
+            line="210"
             column="35"/>
     </issue>
 
@@ -6259,7 +6402,7 @@
         errorLine2="                                 ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="267"
+            line="269"
             column="34"/>
     </issue>
 
@@ -6270,7 +6413,7 @@
         errorLine2="           ~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="428"
+            line="430"
             column="12"/>
     </issue>
 
@@ -6281,7 +6424,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="440"
+            line="442"
             column="12"/>
     </issue>
 
@@ -6292,7 +6435,7 @@
         errorLine2="                                                   ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="440"
+            line="442"
             column="52"/>
     </issue>
 
@@ -6303,7 +6446,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/AppCompatTextView.java"
-            line="548"
+            line="550"
             column="12"/>
     </issue>
 
@@ -7843,7 +7986,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="230"
+            line="239"
             column="12"/>
     </issue>
 
@@ -7854,7 +7997,7 @@
         errorLine2="                                   ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="241"
+            line="250"
             column="36"/>
     </issue>
 
@@ -7865,7 +8008,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="292"
+            line="302"
             column="27"/>
     </issue>
 
@@ -7876,7 +8019,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1730"
+            line="1750"
             column="12"/>
     </issue>
 
@@ -7887,7 +8030,7 @@
         errorLine2="                                             ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1730"
+            line="1750"
             column="46"/>
     </issue>
 
@@ -7898,7 +8041,7 @@
         errorLine2="              ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1743"
+            line="1763"
             column="15"/>
     </issue>
 
@@ -7909,7 +8052,7 @@
         errorLine2="              ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1753"
+            line="1773"
             column="15"/>
     </issue>
 
@@ -7920,7 +8063,7 @@
         errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1753"
+            line="1773"
             column="49"/>
     </issue>
 
@@ -7931,7 +8074,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1760"
+            line="1780"
             column="41"/>
     </issue>
 
@@ -7942,7 +8085,7 @@
         errorLine2="                                               ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1765"
+            line="1785"
             column="48"/>
     </issue>
 
@@ -7953,7 +8096,7 @@
         errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1771"
+            line="1791"
             column="51"/>
     </issue>
 
@@ -7964,7 +8107,7 @@
         errorLine2="                            ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1784"
+            line="1804"
             column="29"/>
     </issue>
 
@@ -7975,7 +8118,7 @@
         errorLine2="                                       ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1784"
+            line="1804"
             column="40"/>
     </issue>
 
@@ -7986,7 +8129,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1812"
+            line="1832"
             column="29"/>
     </issue>
 
@@ -7997,7 +8140,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/LinearLayoutCompat.java"
-            line="1819"
+            line="1839"
             column="29"/>
     </issue>
 
@@ -10758,7 +10901,7 @@
         errorLine2="                                ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/PopupMenu.java"
-            line="282"
+            line="295"
             column="33"/>
     </issue>
 
@@ -10769,7 +10912,7 @@
         errorLine2="                       ~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/PopupMenu.java"
-            line="294"
+            line="307"
             column="24"/>
     </issue>
 
@@ -10857,7 +11000,7 @@
         errorLine2="                                  ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="216"
+            line="217"
             column="35"/>
     </issue>
 
@@ -10868,7 +11011,7 @@
         errorLine2="                                  ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="226"
+            line="227"
             column="35"/>
     </issue>
 
@@ -10879,7 +11022,7 @@
         errorLine2="                                  ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="405"
+            line="408"
             column="35"/>
     </issue>
 
@@ -10890,7 +11033,7 @@
         errorLine2="                                 ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="428"
+            line="431"
             column="34"/>
     </issue>
 
@@ -10901,7 +11044,7 @@
         errorLine2="                                               ~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="478"
+            line="482"
             column="48"/>
     </issue>
 
@@ -10912,7 +11055,7 @@
         errorLine2="                                       ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="510"
+            line="514"
             column="40"/>
     </issue>
 
@@ -10923,7 +11066,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="519"
+            line="523"
             column="36"/>
     </issue>
 
@@ -10934,7 +11077,7 @@
         errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="528"
+            line="532"
             column="51"/>
     </issue>
 
@@ -10945,7 +11088,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="537"
+            line="541"
             column="41"/>
     </issue>
 
@@ -10956,7 +11099,7 @@
         errorLine2="                                         ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="549"
+            line="553"
             column="42"/>
     </issue>
 
@@ -10967,7 +11110,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="558"
+            line="562"
             column="12"/>
     </issue>
 
@@ -10978,7 +11121,7 @@
         errorLine2="                         ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="570"
+            line="574"
             column="26"/>
     </issue>
 
@@ -10989,7 +11132,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="744"
+            line="750"
             column="39"/>
     </issue>
 
@@ -11000,7 +11143,7 @@
         errorLine2="           ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="754"
+            line="760"
             column="12"/>
     </issue>
 
@@ -11011,7 +11154,7 @@
         errorLine2="              ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1344"
+            line="1351"
             column="15"/>
     </issue>
 
@@ -11022,7 +11165,7 @@
         errorLine2="                                          ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1352"
+            line="1359"
             column="43"/>
     </issue>
 
@@ -11033,7 +11176,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1841"
+            line="1848"
             column="35"/>
     </issue>
 
@@ -11044,7 +11187,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1845"
+            line="1852"
             column="35"/>
     </issue>
 
@@ -11055,7 +11198,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1845"
+            line="1852"
             column="52"/>
     </issue>
 
@@ -11066,7 +11209,7 @@
         errorLine2="                                  ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1849"
+            line="1856"
             column="35"/>
     </issue>
 
@@ -11077,7 +11220,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1849"
+            line="1856"
             column="52"/>
     </issue>
 
@@ -11088,7 +11231,7 @@
         errorLine2="                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1884"
+            line="1891"
             column="36"/>
     </issue>
 
@@ -11099,7 +11242,7 @@
         errorLine2="                                                                      ~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1920"
+            line="1927"
             column="71"/>
     </issue>
 
@@ -11110,7 +11253,7 @@
         errorLine2="                                                ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1935"
+            line="1942"
             column="49"/>
     </issue>
 
@@ -11121,7 +11264,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1982"
+            line="1989"
             column="16"/>
     </issue>
 
@@ -11132,7 +11275,7 @@
         errorLine2="                                                       ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SearchView.java"
-            line="1982"
+            line="1989"
             column="56"/>
     </issue>
 
@@ -11902,7 +12045,7 @@
         errorLine2="                                        ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="339"
+            line="340"
             column="41"/>
     </issue>
 
@@ -11913,7 +12056,7 @@
         errorLine2="                                  ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="406"
+            line="407"
             column="35"/>
     </issue>
 
@@ -11924,7 +12067,7 @@
         errorLine2="                                  ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="434"
+            line="435"
             column="35"/>
     </issue>
 
@@ -11935,7 +12078,7 @@
         errorLine2="                                 ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="522"
+            line="526"
             column="34"/>
     </issue>
 
@@ -11946,7 +12089,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="551"
+            line="556"
             column="12"/>
     </issue>
 
@@ -11957,7 +12100,7 @@
         errorLine2="                                 ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="641"
+            line="648"
             column="34"/>
     </issue>
 
@@ -11968,7 +12111,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="672"
+            line="680"
             column="12"/>
     </issue>
 
@@ -11979,7 +12122,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="784"
+            line="796"
             column="12"/>
     </issue>
 
@@ -11990,7 +12133,7 @@
         errorLine2="                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="807"
+            line="819"
             column="27"/>
     </issue>
 
@@ -12001,7 +12144,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="822"
+            line="835"
             column="12"/>
     </issue>
 
@@ -12012,7 +12155,7 @@
         errorLine2="                           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="844"
+            line="857"
             column="28"/>
     </issue>
 
@@ -12023,7 +12166,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="956"
+            line="970"
             column="46"/>
     </issue>
 
@@ -12034,7 +12177,7 @@
         errorLine2="                                ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="993"
+            line="1007"
             column="33"/>
     </issue>
 
@@ -12045,7 +12188,7 @@
         errorLine2="                     ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1226"
+            line="1240"
             column="22"/>
     </issue>
 
@@ -12056,7 +12199,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1291"
+            line="1305"
             column="27"/>
     </issue>
 
@@ -12067,7 +12210,7 @@
         errorLine2="              ~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1415"
+            line="1429"
             column="15"/>
     </issue>
 
@@ -12078,7 +12221,7 @@
         errorLine2="                                     ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1461"
+            line="1475"
             column="38"/>
     </issue>
 
@@ -12089,7 +12232,7 @@
         errorLine2="                                               ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1484"
+            line="1498"
             column="48"/>
     </issue>
 
@@ -12100,7 +12243,7 @@
         errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/SwitchCompat.java"
-            line="1490"
+            line="1504"
             column="51"/>
     </issue>
 
@@ -12375,7 +12518,7 @@
         errorLine2="                        ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="557"
+            line="564"
             column="25"/>
     </issue>
 
@@ -12386,7 +12529,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="557"
+            line="564"
             column="43"/>
     </issue>
 
@@ -12397,7 +12540,7 @@
         errorLine2="                        ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="631"
+            line="638"
             column="25"/>
     </issue>
 
@@ -12408,7 +12551,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="653"
+            line="661"
             column="12"/>
     </issue>
 
@@ -12419,7 +12562,7 @@
         errorLine2="                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="677"
+            line="685"
             column="36"/>
     </issue>
 
@@ -12430,7 +12573,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="691"
+            line="700"
             column="12"/>
     </issue>
 
@@ -12441,7 +12584,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="738"
+            line="748"
             column="12"/>
     </issue>
 
@@ -12452,7 +12595,7 @@
         errorLine2="                         ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="762"
+            line="772"
             column="26"/>
     </issue>
 
@@ -12463,7 +12606,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="794"
+            line="805"
             column="12"/>
     </issue>
 
@@ -12474,7 +12617,7 @@
         errorLine2="                            ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="816"
+            line="827"
             column="29"/>
     </issue>
 
@@ -12485,7 +12628,7 @@
         errorLine2="                                       ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="847"
+            line="858"
             column="40"/>
     </issue>
 
@@ -12496,7 +12639,7 @@
         errorLine2="                                          ~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="858"
+            line="869"
             column="43"/>
     </issue>
 
@@ -12507,7 +12650,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1022"
+            line="1035"
             column="46"/>
     </issue>
 
@@ -12518,7 +12661,7 @@
         errorLine2="           ~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1128"
+            line="1144"
             column="12"/>
     </issue>
 
@@ -12529,7 +12672,7 @@
         errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1205"
+            line="1221"
             column="44"/>
     </issue>
 
@@ -12540,7 +12683,7 @@
         errorLine2="              ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1533"
+            line="1555"
             column="15"/>
     </issue>
 
@@ -12551,7 +12694,7 @@
         errorLine2="                                          ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1545"
+            line="1567"
             column="43"/>
     </issue>
 
@@ -12562,7 +12705,7 @@
         errorLine2="                                ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1579"
+            line="1601"
             column="33"/>
     </issue>
 
@@ -12573,7 +12716,7 @@
         errorLine2="                                ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="1605"
+            line="1627"
             column="33"/>
     </issue>
 
@@ -12584,7 +12727,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2200"
+            line="2222"
             column="12"/>
     </issue>
 
@@ -12595,7 +12738,7 @@
         errorLine2="                                             ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2200"
+            line="2222"
             column="46"/>
     </issue>
 
@@ -12606,7 +12749,7 @@
         errorLine2="              ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2205"
+            line="2227"
             column="15"/>
     </issue>
 
@@ -12617,7 +12760,7 @@
         errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2205"
+            line="2227"
             column="49"/>
     </issue>
 
@@ -12628,7 +12771,7 @@
         errorLine2="              ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2218"
+            line="2240"
             column="15"/>
     </issue>
 
@@ -12639,7 +12782,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2223"
+            line="2245"
             column="41"/>
     </issue>
 
@@ -12650,7 +12793,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2229"
+            line="2251"
             column="12"/>
     </issue>
 
@@ -12661,7 +12804,7 @@
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2278"
+            line="2300"
             column="34"/>
     </issue>
 
@@ -12672,7 +12815,7 @@
         errorLine2="                                                             ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2278"
+            line="2300"
             column="62"/>
     </issue>
 
@@ -12683,7 +12826,7 @@
         errorLine2="                                       ~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2333"
+            line="2355"
             column="40"/>
     </issue>
 
@@ -12694,7 +12837,7 @@
         errorLine2="                                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2352"
+            line="2374"
             column="49"/>
     </issue>
 
@@ -12705,7 +12848,7 @@
         errorLine2="                            ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2370"
+            line="2392"
             column="29"/>
     </issue>
 
@@ -12716,7 +12859,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2376"
+            line="2398"
             column="29"/>
     </issue>
 
@@ -12727,7 +12870,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2380"
+            line="2402"
             column="29"/>
     </issue>
 
@@ -12738,7 +12881,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2387"
+            line="2409"
             column="29"/>
     </issue>
 
@@ -12749,7 +12892,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2403"
+            line="2425"
             column="27"/>
     </issue>
 
@@ -12760,7 +12903,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2407"
+            line="2429"
             column="27"/>
     </issue>
 
@@ -12771,7 +12914,7 @@
         errorLine2="                                         ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2407"
+            line="2429"
             column="42"/>
     </issue>
 
@@ -12782,7 +12925,7 @@
         errorLine2="                          ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2413"
+            line="2435"
             column="27"/>
     </issue>
 
@@ -12793,7 +12936,7 @@
         errorLine2="                                  ~~~~~~">
         <location
             file="src/main/java/androidx/appcompat/widget/Toolbar.java"
-            line="2418"
+            line="2440"
             column="35"/>
     </issue>
 
diff --git a/appsearch/compiler/lint-baseline.xml b/appsearch/compiler/lint-baseline.xml
index 0df44a3..01adaec 100644
--- a/appsearch/compiler/lint-baseline.xml
+++ b/appsearch/compiler/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/arch/core/core-common/lint-baseline.xml b/arch/core/core-common/lint-baseline.xml
index 6798d30..78f729e 100644
--- a/arch/core/core-common/lint-baseline.xml
+++ b/arch/core/core-common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/arch/core/core-runtime/lint-baseline.xml b/arch/core/core-runtime/lint-baseline.xml
index c49c3ba..f2a45eb 100644
--- a/arch/core/core-runtime/lint-baseline.xml
+++ b/arch/core/core-runtime/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/arch/core/core-testing/lint-baseline.xml b/arch/core/core-testing/lint-baseline.xml
index a4d298c..1438e70 100644
--- a/arch/core/core-testing/lint-baseline.xml
+++ b/arch/core/core-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/autofill/autofill/lint-baseline.xml b/autofill/autofill/lint-baseline.xml
index 06ac3e7..f97aac0 100644
--- a/autofill/autofill/lint-baseline.xml
+++ b/autofill/autofill/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/benchmark/common/lint-baseline.xml b/benchmark/common/lint-baseline.xml
index 7edd276..1aaaf43 100644
--- a/benchmark/common/lint-baseline.xml
+++ b/benchmark/common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
@@ -118,7 +118,7 @@
         errorLine2="                                                                     ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/benchmark/Outputs.kt"
-            line="59"
+            line="57"
             column="70"/>
     </issue>
 
@@ -129,7 +129,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/benchmark/Outputs.kt"
-            line="61"
+            line="59"
             column="37"/>
     </issue>
 
@@ -140,7 +140,7 @@
         errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/benchmark/Profiler.kt"
-            line="100"
+            line="98"
             column="15"/>
     </issue>
 
diff --git a/benchmark/integration-tests/macrobenchmark/lint-baseline.xml b/benchmark/integration-tests/macrobenchmark/lint-baseline.xml
new file mode 100644
index 0000000..88e5728
--- /dev/null
+++ b/benchmark/integration-tests/macrobenchmark/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/integration/macrobenchmark/SmallListStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/integration/macrobenchmark/SmallListStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/integration/macrobenchmark/TrivialStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/integration/macrobenchmark/TrivialStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+</issues>
diff --git a/benchmark/macro/lint-baseline.xml b/benchmark/macro/lint-baseline.xml
index 916146a..b296a9f 100644
--- a/benchmark/macro/lint-baseline.xml
+++ b/benchmark/macro/lint-baseline.xml
@@ -1,5 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 18): `StartupTimingMetric`"
+        errorLine1="    val metric = StartupTimingMetric()"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt"
+            line="90"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 18): `configure$lint_module`"
+        errorLine1="    metric.configure(packageName)"
+        errorLine2="           ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt"
+            line="91"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 18): `getMetrics$lint_module`"
+        errorLine1="    return metric.getMetrics(packageName, tracePath)"
+        errorLine2="                  ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/benchmark/macro/StartupTimingMetricTest.kt"
+            line="93"
+            column="19"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
@@ -8,7 +41,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/benchmark/macro/Macrobenchmark.kt"
-            line="49"
+            line="47"
             column="26"/>
     </issue>
 
diff --git a/biometric/biometric/lint-baseline.xml b/biometric/biometric/lint-baseline.xml
new file mode 100644
index 0000000..cc9a4e5
--- /dev/null
+++ b/biometric/biometric/lint-baseline.xml
@@ -0,0 +1,1016 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="                mAuthenticationCallbackProvider.getBiometricCallback();"
+        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="62"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="        assertThat(mAuthenticationCallbackProvider.getBiometricCallback()).isEqualTo(callback);"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="63"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationResult`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricPrompt.AuthenticationResult.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="70"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `new android.hardware.biometrics.BiometricPrompt.CryptoObject`"
+        errorLine1="                new android.hardware.biometrics.BiometricPrompt.CryptoObject(mCipher);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="72"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationResult#getCryptoObject`"
+        errorLine1="        when(result.getCryptoObject()).thenReturn(crypto);"
+        errorLine2="                    ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="73"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationCallback#onAuthenticationSucceeded`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback().onAuthenticationSucceeded(result);"
+        errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="75"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback().onAuthenticationSucceeded(result);"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="75"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback()"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="89"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationCallback#onAuthenticationError`"
+        errorLine1="                .onAuthenticationError(errorCode, errorMessage);"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="90"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback()"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="102"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationCallback#onAuthenticationHelp`"
+        errorLine1="                .onAuthenticationHelp(helpCode, helpMessage);"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="103"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationCallback#onAuthenticationFailed`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback().onAuthenticationFailed();"
+        errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="111"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `getBiometricCallback`"
+        errorLine1="        mAuthenticationCallbackProvider.getBiometricCallback().onAuthenticationFailed();"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/AuthenticationCallbackProviderTest.java"
+            line="111"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricPrompt.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricFragmentTest.java"
+            line="169"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt#authenticate`"
+        errorLine1="        doThrow(NullPointerException.class).when(biometricPrompt).authenticate("
+        errorLine2="                                                                  ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricFragmentTest.java"
+            line="170"
+            column="67"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 16 (current min is 14): `android.os.CancellationSignal`"
+        errorLine1="                any(android.os.CancellationSignal.class),"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricFragmentTest.java"
+            line="171"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.AuthenticationCallback`"
+        errorLine1="                any(android.hardware.biometrics.BiometricPrompt.AuthenticationCallback.class));"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricFragmentTest.java"
+            line="173"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `authenticateWithBiometricPrompt`"
+        errorLine1="        mFragment.authenticateWithBiometricPrompt(biometricPrompt, mContext);"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricFragmentTest.java"
+            line="176"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="59"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="60"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="81"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NONE_ENROLLED);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="82"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="104"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NO_HARDWARE);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="105"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="127"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="128"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="169"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="170"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="207"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="208"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="245"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NO_HARDWARE);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="246"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="284"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NO_HARDWARE);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="285"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="323"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NONE_ENROLLED);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="324"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="358"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="359"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="381"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_ERROR_NONE_ENROLLED);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="382"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="404"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="405"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager`"
+        errorLine1="                mock(android.hardware.biometrics.BiometricManager.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="444"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.hardware.biometrics.BiometricManager#canAuthenticate`"
+        errorLine1="        when(frameworkBiometricManager.canAuthenticate()).thenReturn(BIOMETRIC_SUCCESS);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/BiometricManagerTest.java"
+            line="445"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 16 (current min is 14): `android.os.CancellationSignal`"
+        errorLine1="                return mock(android.os.CancellationSignal.class);"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="69"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="                provider.getBiometricCancellationSignal();"
+        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="85"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="        assertThat(provider.getBiometricCancellationSignal()).isEqualTo(cancellationSignal);"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="86"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="        assertThat(provider.getBiometricCancellationSignal())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="95"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.os.CancellationSignal#cancel`"
+        errorLine1="        verify(mBiometricCancellationSignal).cancel();"
+        errorLine2="                                             ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="100"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="        assertThat(provider.getBiometricCancellationSignal())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="130"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.os.CancellationSignal#cancel`"
+        errorLine1="        verify(mBiometricCancellationSignal).cancel();"
+        errorLine2="                                             ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="137"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="                provider.getBiometricCancellationSignal();"
+        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="147"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.os.CancellationSignal#cancel`"
+        errorLine1="        doThrow(NullPointerException.class).when(biometricSignal).cancel();"
+        errorLine2="                                                                  ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="151"
+            column="67"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `getBiometricCancellationSignal`"
+        errorLine1="        assertThat(provider.getBiometricCancellationSignal()).isNotEqualTo(biometricSignal);"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CancellationSignalProviderTest.java"
+            line="156"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `unwrapFromBiometricPrompt`"
+        errorLine1="        assertThat(CryptoObjectUtils.unwrapFromBiometricPrompt(null)).isNull();"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="54"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `new android.hardware.biometrics.BiometricPrompt.CryptoObject`"
+        errorLine1="                new android.hardware.biometrics.BiometricPrompt.CryptoObject(mCipher);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="61"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `unwrapFromBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.unwrapFromBiometricPrompt(wrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="64"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `new android.hardware.biometrics.BiometricPrompt.CryptoObject`"
+        errorLine1="                new android.hardware.biometrics.BiometricPrompt.CryptoObject(mSignature);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="76"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `unwrapFromBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.unwrapFromBiometricPrompt(wrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="79"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `new android.hardware.biometrics.BiometricPrompt.CryptoObject`"
+        errorLine1="                new android.hardware.biometrics.BiometricPrompt.CryptoObject(mMac);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="91"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `unwrapFromBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.unwrapFromBiometricPrompt(wrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="94"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 14): `android.security.identity.IdentityCredential`"
+        errorLine1="                mock(android.security.identity.IdentityCredential.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="106"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `new android.hardware.biometrics.BiometricPrompt.CryptoObject`"
+        errorLine1="                new android.hardware.biometrics.BiometricPrompt.CryptoObject(identityCredential);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="108"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `unwrapFromBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.unwrapFromBiometricPrompt(wrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="111"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `getIdentityCredential`"
+        errorLine1="        assertThat(unwrappedCrypto.getIdentityCredential()).isEqualTo(identityCredential);"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="117"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `wrapForBiometricPrompt`"
+        errorLine1="        assertThat(CryptoObjectUtils.wrapForBiometricPrompt(null)).isNull();"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="123"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `wrapForBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.wrapForBiometricPrompt(unwrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="133"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getCipher`"
+        errorLine1="        assertThat(wrappedCrypto.getCipher()).isEqualTo(mCipher);"
+        errorLine2="                                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="136"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getSignature`"
+        errorLine1="        assertThat(wrappedCrypto.getSignature()).isNull();"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="137"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getMac`"
+        errorLine1="        assertThat(wrappedCrypto.getMac()).isNull();"
+        errorLine2="                                 ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="138"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `wrapForBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.wrapForBiometricPrompt(unwrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="148"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getCipher`"
+        errorLine1="        assertThat(wrappedCrypto.getCipher()).isNull();"
+        errorLine2="                                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="151"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getSignature`"
+        errorLine1="        assertThat(wrappedCrypto.getSignature()).isEqualTo(mSignature);"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="152"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getMac`"
+        errorLine1="        assertThat(wrappedCrypto.getMac()).isNull();"
+        errorLine2="                                 ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="153"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `wrapForBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.wrapForBiometricPrompt(unwrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="162"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getCipher`"
+        errorLine1="        assertThat(wrappedCrypto.getCipher()).isNull();"
+        errorLine2="                                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="165"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getSignature`"
+        errorLine1="        assertThat(wrappedCrypto.getSignature()).isNull();"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="166"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getMac`"
+        errorLine1="        assertThat(wrappedCrypto.getMac()).isEqualTo(mMac);"
+        errorLine2="                                 ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="167"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 14): `android.security.identity.IdentityCredential`"
+        errorLine1="                mock(android.security.identity.IdentityCredential.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="174"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `CryptoObject`"
+        errorLine1="                new BiometricPrompt.CryptoObject(identityCredential);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="176"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `wrapForBiometricPrompt`"
+        errorLine1="                CryptoObjectUtils.wrapForBiometricPrompt(unwrappedCrypto);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="179"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getCipher`"
+        errorLine1="        assertThat(wrappedCrypto.getCipher()).isNull();"
+        errorLine2="                                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="182"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getSignature`"
+        errorLine1="        assertThat(wrappedCrypto.getSignature()).isNull();"
+        errorLine2="                                 ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="183"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getMac`"
+        errorLine1="        assertThat(wrappedCrypto.getMac()).isNull();"
+        errorLine2="                                 ~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="184"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.hardware.biometrics.BiometricPrompt.CryptoObject#getIdentityCredential`"
+        errorLine1="        assertThat(wrappedCrypto.getIdentityCredential()).isEqualTo(identityCredential);"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="185"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 14): `android.security.identity.IdentityCredential`"
+        errorLine1="                mock(android.security.identity.IdentityCredential.class);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="294"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `CryptoObject`"
+        errorLine1="                new BiometricPrompt.CryptoObject(identityCredential);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/CryptoObjectUtilsTest.java"
+            line="296"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.content.Context#getSystemService`"
+        errorLine1="        when(mContext.getSystemService(KeyguardManager.class)).thenReturn(mKeyguardManager);"
+        errorLine2="                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/KeyguardUtilsTest.java"
+            line="54"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.content.Context#getSystemService`"
+        errorLine1="        when(mContext.getSystemService(KeyguardManager.class)).thenReturn(null);"
+        errorLine2="                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/KeyguardUtilsTest.java"
+            line="68"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.content.Context#getSystemService`"
+        errorLine1="        when(mContext.getSystemService(any(Class.class))).thenReturn(mKeyguardManager);"
+        errorLine2="                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/KeyguardUtilsTest.java"
+            line="95"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.app.KeyguardManager#isDeviceSecure`"
+        errorLine1="        when(mKeyguardManager.isDeviceSecure()).thenReturn(true);"
+        errorLine2="                              ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/KeyguardUtilsTest.java"
+            line="96"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.app.KeyguardManager#isKeyguardSecure`"
+        errorLine1="        when(mKeyguardManager.isKeyguardSecure()).thenReturn(true);"
+        errorLine2="                              ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/biometric/KeyguardUtilsTest.java"
+            line="104"
+            column="31"/>
+    </issue>
+
+</issues>
diff --git a/browser/browser/lint-baseline.xml b/browser/browser/lint-baseline.xml
index b85e4387..99ae271 100644
--- a/browser/browser/lint-baseline.xml
+++ b/browser/browser/lint-baseline.xml
@@ -1,5 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.os.Bundle#getBinder`"
+        errorLine1="                intent.getExtras().getBinder(CustomTabsIntent.EXTRA_SESSION));"
+        errorLine2="                                   ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java"
+            line="280"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.os.Bundle#getBinder`"
+        errorLine1="                intent.getExtras().getBinder(CustomTabsIntent.EXTRA_SESSION));"
+        errorLine2="                                   ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java"
+            line="289"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.os.Bundle#getBinder`"
+        errorLine1="        assertNull(intent.getExtras().getBinder(CustomTabsIntent.EXTRA_SESSION));"
+        errorLine2="                                      ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java"
+            line="304"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.os.Bundle#getBinder`"
+        errorLine1="        assertEquals(session.getBinder(), intent.getExtras().getBinder("
+        errorLine2="                                                             ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/browser/customtabs/TestUtil.java"
+            line="56"
+            column="62"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
diff --git a/buildSrc/lint.xml b/buildSrc/lint.xml
index 1837ce0..1fb6d32 100644
--- a/buildSrc/lint.xml
+++ b/buildSrc/lint.xml
@@ -4,4 +4,15 @@
     <issue id="LintBaseline" severity="ignore">
         <ignore regexp=".* filtered out because .* listed in the baseline file.*"/>
     </issue>
+    <!-- Disable all lint checks on tests by default. -->
+    <issue id="all">
+        <ignore path="**/src/test/**" />
+        <ignore path="**/src/androidTest/**" />
+        <!-- Required for Kotlin multi-platform tests. -->
+        <ignore path="**/src/androidAndroidTest/**" />
+        <!-- Required for AppSearch icing tests. -->
+        <ignore path="**/java/tests/**" />
+    </issue>
+    <!-- Re-enable NewApi for tests (and everything else). -->
+    <issue id="NewApi" severity="fatal" />
 </lint>
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index fe922a5..7dbadbb 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -20,7 +20,7 @@
  * The list of versions codes of all the libraries in this project.
  */
 object LibraryVersions {
-    val ACTIVITY = Version("1.3.0-beta03")
+    val ACTIVITY = Version("1.4.0-alpha01")
     val ADS_IDENTIFIER = Version("1.0.0-alpha05")
     val ANNOTATION = Version("1.3.0-alpha01")
     val ANNOTATION_EXPERIMENTAL = Version("1.2.0-alpha01")
@@ -46,7 +46,7 @@
     val CAR_APP_PRE_RELEASE = Version("1.0.0-alpha01")
     val COLLECTION = Version("1.2.0-alpha02")
     val CONTENTPAGER = Version("1.1.0-alpha01")
-    val COMPOSE = Version(System.getenv("COMPOSE_CUSTOM_VERSION") ?: "1.0.0-beta10")
+    val COMPOSE = Version(System.getenv("COMPOSE_CUSTOM_VERSION") ?: "1.1.0-alpha01")
     val COORDINATORLAYOUT = Version("1.2.0-alpha01")
     val CORE = Version("1.7.0-alpha01")
     val CORE_ANIMATION = Version("1.0.0-alpha03")
@@ -87,7 +87,7 @@
     val LOADER = Version("1.2.0-alpha01")
     val MEDIA = Version("1.4.0-beta01")
     val MEDIA2 = Version("1.2.0-beta01")
-    val MEDIAROUTER = Version("1.3.0-alpha02")
+    val MEDIAROUTER = Version("1.3.0-alpha01")
     val NAVIGATION = Version("2.4.0-alpha04")
     val PAGING = Version("3.1.0-alpha02")
     val PAGING_COMPOSE = Version("1.0.0-alpha11")
@@ -95,7 +95,7 @@
     val PRINT = Version("1.1.0-beta01")
     val PERCENTLAYOUT = Version("1.1.0-alpha01")
     val PREFERENCE = Version("1.2.0-alpha01")
-    val PROFILEINSTALLER = Version("1.0.0-beta02")
+    val PROFILEINSTALLER = Version("1.1.0-alpha01")
     val RECOMMENDATION = Version("1.1.0-alpha01")
     val RECYCLERVIEW = Version("1.3.0-alpha01")
     val RECYCLERVIEW_SELECTION = Version("1.2.0-alpha02")
diff --git a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
index 2538b82..0709db4 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -129,6 +129,9 @@
             }
             isIgnoreWarnings = true
 
+            // Run lint on tests. Uses top-level lint.xml to specify checks.
+            isCheckTestSources = true
+
             // Write output directly to the console (and nowhere else).
             textReport = true
             htmlReport = false
@@ -225,41 +228,17 @@
 
                 // Analyze tasks are responsible for reading baselines and detecting issues, but
                 // they won't detect any issues that are already in the baselines. Delete them
-                // before the task evaluates up-to-date-ness.
-                listOf(
-                    tasks.named("lintAnalyzeDebug"),
-                    tasks.named("lintAnalyze"),
-                ).forEach { task ->
-                    val removeBaselineTask = project.tasks.register(
-                        "removeBaselineOf${task.name.capitalize(Locale.US)}",
-                        RemoveBaselineTask::class.java,
-                    ) { baselineTask ->
-                        baselineTask.baselineFile.set(lintBaseline)
-                    }
-
-                    task.configure {
-                        it.dependsOn(removeBaselineTask)
-                    }
-                }
+                // before the task evaluates up-to-date-ness using:
+                //
+                //     find . -type f -name lint-baseline.xml -exec rm -f {} \;
 
                 // Regular lint tasks are responsible for reading the output of analyze tasks and
                 // generating baseline files. They will fail if they generate a new baseline but
-                // there are no issues, so we need to delete the file as a finalization step.
-                listOf(
-                    tasks.named("lintDebug"),
-                    tasks.named("lint"),
-                ).forEach { task ->
-                    val removeEmptyBaselineTask = project.tasks.register(
-                        "removeEmptyBaselineOf${task.name.capitalize(Locale.US)}",
-                        RemoveEmptyBaselineTask::class.java,
-                    ) { baselineTask ->
-                        baselineTask.baselineFile.set(lintBaseline)
-                    }
-
-                    task.configure {
-                        it.finalizedBy(removeEmptyBaselineTask)
-                    }
-                }
+                // there are no issues, so we need to delete the file as a finalization step using:
+                //
+                //     find . -type f -name lint-baseline.xml \
+                //         -exec awk -v x=5 'NR==x{exit 1}' {} \; \
+                //         -exec rm -f {} \;
 
                 // Continue running after errors or after creating a new, blank baseline file.
                 // This doesn't work right now due to b/188545420, but it's technically correct.
diff --git a/camera/camera-camera2-pipe/lint-baseline.xml b/camera/camera-camera2-pipe/lint-baseline.xml
new file mode 100644
index 0000000..72e3568
--- /dev/null
+++ b/camera/camera-camera2-pipe/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.hardware.camera2.CameraDevice#createReprocessCaptureRequest`"
+        errorLine1="        return fakeCamera.cameraDevice.createReprocessCaptureRequest(inputResult)"
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/pipe/testing/FakeCameraDeviceWrapper.kt"
+            line="51"
+            column="40"/>
+    </issue>
+
+</issues>
diff --git a/camera/camera-camera2/lint-baseline.xml b/camera/camera-camera2/lint-baseline.xml
index 195e5d3..3d08ce0 100644
--- a/camera/camera-camera2/lint-baseline.xml
+++ b/camera/camera-camera2/lint-baseline.xml
@@ -1,5 +1,544 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.CameraCaptureSession#captureBurstRequests`"
+        errorLine1="        verify(mCaptureSession, times(1)).captureBurstRequests(any(List.class),"
+        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraCaptureSessionCompatTest.java"
+            line="83"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.CameraCaptureSession#captureSingleRequest`"
+        errorLine1="        verify(mCaptureSession, times(1)).captureSingleRequest(any(CaptureRequest.class),"
+        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraCaptureSessionCompatTest.java"
+            line="110"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.CameraCaptureSession#setRepeatingBurstRequests`"
+        errorLine1="        verify(mCaptureSession, times(1)).setRepeatingBurstRequests(any(List.class),"
+        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraCaptureSessionCompatTest.java"
+            line="140"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.CameraCaptureSession#setSingleRepeatingRequest`"
+        errorLine1="        verify(mCaptureSession, times(1)).setSingleRepeatingRequest(any(CaptureRequest.class),"
+        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraCaptureSessionCompatTest.java"
+            line="168"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `android.hardware.camera2.CameraDevice#createCaptureSessionByOutputConfigurations`"
+        errorLine1="        verify(mCameraDevice, times(1)).createCaptureSessionByOutputConfigurations("
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="104"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.CameraDevice#createCaptureSession`"
+        errorLine1="        verify(mCameraDevice, times(1)).createCaptureSession("
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="123"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 21): `android.hardware.camera2.params.SessionConfiguration`"
+        errorLine1="                any(SessionConfiguration.class));"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="124"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 23 (current min is 21): `android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="                InputConfigurationCompat.wrap(mock(InputConfiguration.class))));"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="167"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.hardware.camera2.CameraDevice#createReprocessableCaptureSession`"
+        errorLine1="        verify(mCameraDevice, times(1)).createReprocessableCaptureSession("
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="172"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 23 (current min is 21): `android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="                any(InputConfiguration.class),"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="173"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 23 (current min is 21): `android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="                InputConfigurationCompat.wrap(mock(InputConfiguration.class))));"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="192"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `android.hardware.camera2.CameraDevice#createReprocessableCaptureSessionByConfigurations`"
+        errorLine1="        verify(mCameraDevice, times(1)).createReprocessableCaptureSessionByConfigurations("
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="197"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 23 (current min is 21): `android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="                any(InputConfiguration.class),"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="198"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.hardware.camera2.CameraDevice#createConstrainedHighSpeedCaptureSession`"
+        errorLine1="        verify(mCameraDevice, times(1)).createConstrainedHighSpeedCaptureSession("
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/CameraDeviceCompatTest.java"
+            line="217"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="104"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="122"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="140"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="158"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="176"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="194"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="212"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="230"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="248"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="266"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ENABLE_ZSL`"
+        errorLine1="                CaptureRequest.CONTROL_ENABLE_ZSL, null))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/ImageCaptureOptionUnpackerTest.java"
+            line="284"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `new android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="        InputConfiguration inputConfig = new InputConfiguration(WIDTH, HEIGHT, FORMAT);"
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/InputConfigurationCompatTest.java"
+            line="52"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `new android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="        InputConfiguration config = new InputConfiguration(WIDTH, HEIGHT, FORMAT);"
+        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/InputConfigurationCompatTest.java"
+            line="84"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `new android.hardware.camera2.params.InputConfiguration`"
+        errorLine1="        InputConfiguration config = new InputConfiguration(WIDTH, HEIGHT, FORMAT);"
+        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/InputConfigurationCompatTest.java"
+            line="96"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 24 (current min is 21): `android.hardware.camera2.params.OutputConfiguration`"
+        errorLine1="        assertThat(outputConfig).isInstanceOf(OutputConfiguration.class);"
+        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="172"
+            column="47"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `new android.hardware.camera2.params.OutputConfiguration`"
+        errorLine1="        OutputConfiguration outputConfig = new OutputConfiguration(surface);"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="179"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `new android.hardware.camera2.params.OutputConfiguration`"
+        errorLine1="        OutputConfiguration outputConfig = new OutputConfiguration(TEST_GROUP_ID, surface);"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="189"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `OutputConfigurationCompat`"
+        errorLine1="        OutputConfigurationCompat outputConfigCompat = new OutputConfigurationCompat("
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="198"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 24 (current min is 21): `android.hardware.camera2.params.OutputConfiguration`"
+        errorLine1="        OutputConfiguration outputConfig = mock(OutputConfiguration.class);"
+        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="218"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId`"
+        errorLine1="        verify(outputConfig, times(1)).setPhysicalCameraId(PHYSICAL_CAMERA_ID);"
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/OutputConfigurationCompatTest.java"
+            line="224"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 24 (current min is 21): `android.hardware.camera2.params.OutputConfiguration`"
+        errorLine1="            outputConfigs.add((OutputConfiguration) outputConfigCompat.unwrap());"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/SessionConfigurationCompatTest.java"
+            line="93"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `new android.hardware.camera2.params.SessionConfiguration`"
+        errorLine1="        SessionConfiguration sessionConfig = new SessionConfiguration("
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/SessionConfigurationCompatTest.java"
+            line="96"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 21): `android.hardware.camera2.params.SessionConfiguration#getOutputConfigurations`"
+        errorLine1="                ((SessionConfiguration) sessionConfigCompat.unwrap()).getOutputConfigurations())"
+        errorLine2="                                                                      ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/SessionConfigurationCompatTest.java"
+            line="114"
+            column="71"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 21): `android.hardware.camera2.params.SessionConfiguration`"
+        errorLine1="                ((SessionConfiguration) sessionConfigCompat.unwrap()).getOutputConfigurations())"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/compat/params/SessionConfigurationCompatTest.java"
+            line="114"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.hardware.camera2.CameraCaptureSession.StateCallback#onCaptureQueueEmpty`"
+        errorLine1="        sessionConfigurationCompat.getStateCallback().onCaptureQueueEmpty(mMockCaptureSession);"
+        errorLine2="                                                      ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java"
+            line="118"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `onCaptureQueueEmpty`"
+        errorLine1="        verify(mMockStateCallback).onCaptureQueueEmpty(any(SynchronizedCaptureSession.class));"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java"
+            line="120"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.hardware.camera2.CameraCaptureSession.StateCallback#onSurfacePrepared`"
+        errorLine1="        sessionConfigurationCompat.getStateCallback().onSurfacePrepared(mMockCaptureSession,"
+        errorLine2="                                                      ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java"
+            line="132"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `onSurfacePrepared`"
+        errorLine1="        verify(mMockStateCallback).onSurfacePrepared(any(SynchronizedCaptureSession.class),"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseTest.java"
+            line="135"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `onCaptureQueueEmpty`"
+        errorLine1="        mStateCallback.onCaptureQueueEmpty(mCaptureSessionCompatBaseImpl);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="70"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `onCaptureQueueEmpty`"
+        errorLine1="        verify(mMockStateCallback).onCaptureQueueEmpty(any());"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="71"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.hardware.camera2.CameraCaptureSession.StateCallback#onCaptureQueueEmpty`"
+        errorLine1="        verify(mMockCameraCaptureSessionStateCallback).onCaptureQueueEmpty(any());"
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="72"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `onSurfacePrepared`"
+        errorLine1="        mStateCallback.onSurfacePrepared(mCaptureSessionCompatBaseImpl, mock(Surface.class));"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="79"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `onSurfacePrepared`"
+        errorLine1="        verify(mMockStateCallback).onSurfacePrepared(any(), any(Surface.class));"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="80"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.hardware.camera2.CameraCaptureSession.StateCallback#onSurfacePrepared`"
+        errorLine1="        verify(mMockCameraCaptureSessionStateCallback).onSurfacePrepared(any(), any(Surface.class));"
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionStateCallbackTest.java"
+            line="81"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 30 (current min is 21): `android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO`"
+        errorLine1="                CaptureRequest.CONTROL_ZOOM_RATIO, null);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/camera/camera2/internal/ZoomControlDeviceTest.java"
+            line="269"
+            column="17"/>
+    </issue>
 
     <issue
         id="SoonBlockedPrivateApi"
@@ -25,7 +564,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                return (Size) getSurfaceSize.invoke(null, surface);"
         errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -36,7 +575,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                return (int) detectSurfaceType.invoke(null, surface);"
         errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -47,7 +586,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                return (int) getGenerationId.invoke(surface);"
         errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/camera/camera-core/lint-baseline.xml b/camera/camera-core/lint-baseline.xml
index 9b6f6dc..debefae 100644
--- a/camera/camera-core/lint-baseline.xml
+++ b/camera/camera-core/lint-baseline.xml
@@ -1,5 +1,82 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `java.time.Duration#ofMillis`"
+        errorLine1="        ShadowSystemClock.advanceBy(Duration.ofMillis(100));"
+        errorLine2="                                             ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/impl/utils/ExifTest.java"
+            line="159"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `java.time.Duration#ofMillis`"
+        errorLine1="        ShadowSystemClock.advanceBy(Duration.ofMillis(100));"
+        errorLine2="                                             ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/impl/utils/ExifTest.java"
+            line="162"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `new android.graphics.SurfaceTexture`"
+        errorLine1="        mTestSurfaceTexture = new SurfaceTexture(/* singleBufferMode= */ false);"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/internal/compat/ImageWriterCompatTest.java"
+            line="47"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `newInstance`"
+        errorLine1="        ImageWriter imageWriter = ImageWriterCompat.newInstance(mTestSurface,"
+        errorLine2="                                                    ~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/internal/compat/ImageWriterCompatTest.java"
+            line="59"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 22 (current min is 21): `android.os.Message#isAsynchronous`"
+        errorLine1="        boolean isAsyncBeforeSending = message.isAsynchronous();"
+        errorLine2="                                               ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/impl/utils/MainThreadAsyncHandlerTest.java"
+            line="64"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 22 (current min is 21): `android.os.Message#isAsynchronous`"
+        errorLine1="        boolean isAsyncAfterSending = message.isAsynchronous();"
+        errorLine2="                                              ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/camera/core/impl/utils/MainThreadAsyncHandlerTest.java"
+            line="68"
+            column="47"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `triggerImage`"
+        errorLine1="        triggerImage(processingSurface, 1);"
+        errorLine2="        ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/camera/core/ProcessingSurfaceTest.java"
+            line="158"
+            column="9"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/camera/camera-extensions-stub/lint-baseline.xml b/camera/camera-extensions-stub/lint-baseline.xml
index 9b4df78..e77b730 100644
--- a/camera/camera-extensions-stub/lint-baseline.xml
+++ b/camera/camera-extensions-stub/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/camera/camera-extensions/lint-baseline.xml b/camera/camera-extensions/lint-baseline.xml
deleted file mode 100644
index 5bc97e7..0000000
--- a/camera/camera-extensions/lint-baseline.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="    public Version getVersion() {"
-        errorLine2="           ~~~~~~~">
-        <location
-            file="src/main/java/androidx/camera/extensions/VersionName.java"
-            line="39"
-            column="12"/>
-    </issue>
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="    public String toVersionString() {"
-        errorLine2="           ~~~~~~">
-        <location
-            file="src/main/java/androidx/camera/extensions/VersionName.java"
-            line="56"
-            column="12"/>
-    </issue>
-
-</issues>
diff --git a/camera/camera-testing/lint-baseline.xml b/camera/camera-testing/lint-baseline.xml
index 3163cc2..d112ce8 100644
--- a/camera/camera-testing/lint-baseline.xml
+++ b/camera/camera-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
@@ -85,7 +85,7 @@
         errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/testing/fakes/FakeCameraControl.java"
-            line="87"
+            line="86"
             column="53"/>
     </issue>
 
diff --git a/camera/camera-video/lint-baseline.xml b/camera/camera-video/lint-baseline.xml
new file mode 100644
index 0000000..c402ac5
--- /dev/null
+++ b/camera/camera-video/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `prepareRecording`"
+        errorLine1="            recorder.prepareRecording(outputOptions)"
+        errorLine2="                     ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/camera/video/RecorderTest.kt"
+            line="300"
+            column="22"/>
+    </issue>
+
+</issues>
diff --git a/camera/camera-view/api/current.txt b/camera/camera-view/api/current.txt
index e9aa22e..a1ecc5d 100644
--- a/camera/camera-view/api/current.txt
+++ b/camera/camera-view/api/current.txt
@@ -80,6 +80,8 @@
     method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
     method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
     method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort();
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort(int);
     method @UiThread public void setController(androidx.camera.view.CameraController?);
     method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
     method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
diff --git a/camera/camera-view/api/public_plus_experimental_current.txt b/camera/camera-view/api/public_plus_experimental_current.txt
index 991872b..ab1bd4b 100644
--- a/camera/camera-view/api/public_plus_experimental_current.txt
+++ b/camera/camera-view/api/public_plus_experimental_current.txt
@@ -86,8 +86,8 @@
     method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
     method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
     method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
-    method @UiThread @androidx.camera.core.ExperimentalUseCaseGroup public androidx.camera.core.ViewPort? getViewPort();
-    method @UiThread @androidx.camera.core.ExperimentalUseCaseGroup public androidx.camera.core.ViewPort? getViewPort(int);
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort();
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort(int);
     method @UiThread public void setController(androidx.camera.view.CameraController?);
     method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
     method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
@@ -126,10 +126,10 @@
 
   public final class CoordinateTransform {
     ctor public CoordinateTransform(androidx.camera.view.transform.OutputTransform, androidx.camera.view.transform.OutputTransform);
-    method public void getTransform(android.graphics.Matrix);
     method public void mapPoint(android.graphics.PointF);
     method public void mapPoints(float[]);
     method public void mapRect(android.graphics.RectF);
+    method public void transform(android.graphics.Matrix);
   }
 
   public final class FileTransformFactory {
diff --git a/camera/camera-view/api/restricted_current.txt b/camera/camera-view/api/restricted_current.txt
index 93845dc..c08e4ed 100644
--- a/camera/camera-view/api/restricted_current.txt
+++ b/camera/camera-view/api/restricted_current.txt
@@ -80,6 +80,8 @@
     method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
     method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
     method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort();
+    method @UiThread public androidx.camera.core.ViewPort? getViewPort(@androidx.camera.core.impl.ImageOutputConfig.RotationValue int);
     method @UiThread public void setController(androidx.camera.view.CameraController?);
     method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
     method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
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 720ba9b..37bfd4b 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
@@ -497,7 +497,6 @@
      */
     @UiThread
     @Nullable
-    @ExperimentalUseCaseGroup
     public ViewPort getViewPort() {
         Threads.checkMainThread();
         if (getDisplay() == null) {
@@ -548,7 +547,7 @@
     @UiThread
     @SuppressLint("WrongConstant")
     @Nullable
-    @ExperimentalUseCaseGroup
+    @OptIn(markerClass = ExperimentalUseCaseGroup.class)
     public ViewPort getViewPort(@ImageOutputConfig.RotationValue int targetRotation) {
         Threads.checkMainThread();
         if (getWidth() == 0 || getHeight() == 0) {
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/transform/CoordinateTransform.java b/camera/camera-view/src/main/java/androidx/camera/view/transform/CoordinateTransform.java
index 297560a..2410885 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/transform/CoordinateTransform.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/transform/CoordinateTransform.java
@@ -97,13 +97,12 @@
     }
 
     /**
-     * Gets the transform matrix.
+     * Copies the current transform to the specified {@link Matrix}.
      *
-     * @param matrix a {@link android.graphics.Matrix} that represents the transform from source
-     *               to target.
+     * @param outMatrix a {@link android.graphics.Matrix} in which to copy the current transform.
      */
-    public void getTransform(@NonNull Matrix matrix) {
-        matrix.set(mMatrix);
+    public void transform(@NonNull Matrix outMatrix) {
+        outMatrix.set(mMatrix);
     }
 
     /**
diff --git a/camera/camera-view/src/test/java/androidx/camera/view/transform/CoordinateTransformTest.kt b/camera/camera-view/src/test/java/androidx/camera/view/transform/CoordinateTransformTest.kt
index 419116c..31153d8 100644
--- a/camera/camera-view/src/test/java/androidx/camera/view/transform/CoordinateTransformTest.kt
+++ b/camera/camera-view/src/test/java/androidx/camera/view/transform/CoordinateTransformTest.kt
@@ -101,7 +101,7 @@
         // Set an arbitrary transform so it's no longer identity matrix.
         matrix.setRotate(90f)
         assertThat(matrix.isIdentity).isFalse()
-        transform.getTransform(matrix)
+        transform.transform(matrix)
         assertThat(matrix.isIdentity).isTrue()
     }
 
diff --git a/camera/integration-tests/camerapipetestapp/lint-baseline.xml b/camera/integration-tests/camerapipetestapp/lint-baseline.xml
index 6dca65d..b8de2b8 100644
--- a/camera/integration-tests/camerapipetestapp/lint-baseline.xml
+++ b/camera/integration-tests/camerapipetestapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
@@ -12,37 +12,4 @@
             column="43"/>
     </issue>
 
-    <issue
-        id="MissingTestSizeAnnotation"
-        message="Missing test size annotation"
-        errorLine1="    fun useAppContext() {"
-        errorLine2="        ~~~~~~~~~~~~~">
-        <location
-            file="src/androidTest/java/androidx/camera/integration/camera2/pipe/BasicInstrumentedTest.kt"
-            line="35"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="19"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="19"
-            column="6"/>
-    </issue>
-
 </issues>
diff --git a/camera/integration-tests/coretestapp/lint-baseline.xml b/camera/integration-tests/coretestapp/lint-baseline.xml
index b9701dd..4560f89 100644
--- a/camera/integration-tests/coretestapp/lint-baseline.xml
+++ b/camera/integration-tests/coretestapp/lint-baseline.xml
@@ -1,26 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
-        id="UnsupportedChromeOsHardware"
-        message="Expecting `android:required=&quot;false&quot;` for this hardware feature that may not be supported by all Chrome OS devices"
-        errorLine1="    &lt;uses-feature android:name=&quot;android.hardware.camera&quot; />"
-        errorLine2="     ~~~~~~~~~~~~">
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.lang.Double#isFinite`"
+        errorLine1="            if (Double.isFinite(actual[i])) {"
+        errorLine2="                       ~~~~~~~~">
         <location
-            file="src/main/AndroidManifest.xml"
-            line="22"
-            column="6"/>
+            file="src/test/java/androidx/camera/integration/core/FpsRecorderTest.java"
+            line="63"
+            column="24"/>
     </issue>
 
     <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.lang.Double#isFinite`"
+        errorLine1="            if (Double.isFinite(actual[i])) {"
+        errorLine2="                       ~~~~~~~~">
         <location
-            file="src/main/AndroidManifest.xml"
-            line="18"
-            column="6"/>
+            file="src/test/java/androidx/camera/integration/core/FpsRecorderTest.java"
+            line="138"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.media.ImageWriter#newInstance`"
+        errorLine1="            imageWriter = ImageWriter.newInstance(surface, 2)"
+        errorLine2="                                      ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt"
+            line="1512"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.media.ImageWriter#queueInputImage`"
+        errorLine1="                imageWriter!!.queueInputImage(imageProxy.image)"
+        errorLine2="                              ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/camera/integration/core/ImageCaptureTest.kt"
+            line="1520"
+            column="31"/>
     </issue>
 
     <issue
@@ -30,7 +52,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="182"
+            line="180"
             column="13"/>
     </issue>
 
@@ -41,7 +63,7 @@
         errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="185"
+            line="183"
             column="22"/>
     </issue>
 
@@ -52,7 +74,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="186"
+            line="184"
             column="21"/>
     </issue>
 
@@ -63,7 +85,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="384"
+            line="380"
             column="25"/>
     </issue>
 
@@ -74,7 +96,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="387"
+            line="383"
             column="25"/>
     </issue>
 
@@ -85,7 +107,7 @@
         errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="396"
+            line="392"
             column="33"/>
     </issue>
 
@@ -96,7 +118,7 @@
         errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="405"
+            line="401"
             column="45"/>
     </issue>
 
@@ -107,7 +129,7 @@
         errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/core/CameraXActivity.java"
-            line="427"
+            line="423"
             column="45"/>
     </issue>
 
diff --git a/camera/integration-tests/extensionstestapp/lint-baseline.xml b/camera/integration-tests/extensionstestapp/lint-baseline.xml
index e773319..4e7aca8 100644
--- a/camera/integration-tests/extensionstestapp/lint-baseline.xml
+++ b/camera/integration-tests/extensionstestapp/lint-baseline.xml
@@ -1,26 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
-        id="UnsupportedChromeOsHardware"
-        message="Expecting `android:required=&quot;false&quot;` for this hardware feature that may not be supported by all Chrome OS devices"
-        errorLine1="    &lt;uses-feature android:name=&quot;android.hardware.camera&quot; />"
-        errorLine2="     ~~~~~~~~~~~~">
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `android.os.Handler#hasCallbacks`"
+        errorLine1="        if (!mIdle &amp;&amp; !mHandler.hasCallbacks(mRunnable)) {"
+        errorLine2="                                ~~~~~~~~~~~~">
         <location
-            file="src/main/AndroidManifest.xml"
-            line="24"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="20"
-            column="6"/>
+            file="src/androidTest/java/androidx/camera/integration/extensions/idlingresource/ViewIdlingResource.java"
+            line="78"
+            column="33"/>
     </issue>
 
     <issue
@@ -30,7 +19,7 @@
         errorLine2="                            ~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/extensions/CameraExtensionsActivity.java"
-            line="281"
+            line="265"
             column="29"/>
     </issue>
 
diff --git a/camera/integration-tests/extensionstestlib/lint-baseline.xml b/camera/integration-tests/extensionstestlib/lint-baseline.xml
index 19e17b2..17cd540 100644
--- a/camera/integration-tests/extensionstestlib/lint-baseline.xml
+++ b/camera/integration-tests/extensionstestlib/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/camera/integration-tests/timingtestapp/lint-baseline.xml b/camera/integration-tests/timingtestapp/lint-baseline.xml
index 3a68c2d..56aa960 100644
--- a/camera/integration-tests/timingtestapp/lint-baseline.xml
+++ b/camera/integration-tests/timingtestapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
@@ -19,30 +19,8 @@
         errorLine2="                           ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/camera/integration/antelope/cameracontrollers/CameraXController.kt"
-            line="279"
+            line="282"
             column="28"/>
     </issue>
 
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="20"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="20"
-            column="6"/>
-    </issue>
-
 </issues>
diff --git a/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml b/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
index f3c0b38..4baa02f 100644
--- a/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
+++ b/camera/integration-tests/uiwidgetstestapp/lint-baseline.xml
@@ -1,27 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="56"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="56"
-            column="6"/>
-    </issue>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/camera/integration-tests/viewtestapp/lint-baseline.xml b/camera/integration-tests/viewtestapp/lint-baseline.xml
deleted file mode 100644
index 07b6fc0..0000000
--- a/camera/integration-tests/viewtestapp/lint-baseline.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="18"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="PermissionImpliesUnsupportedChromeOsHardware"
-        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera.autofocus&quot; required=&quot;false&quot;>` tag"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
-        errorLine2="     ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="18"
-            column="6"/>
-    </issue>
-
-</issues>
diff --git a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/TransformFragment.java b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/TransformFragment.java
index 78b879c..5e6eaa3 100644
--- a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/TransformFragment.java
+++ b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/TransformFragment.java
@@ -589,7 +589,7 @@
             @NonNull RectF imageProxyTile) {
         CoordinateTransform transform = new CoordinateTransform(source, target);
         Matrix matrix = new Matrix();
-        transform.getTransform(matrix);
+        transform.transform(matrix);
         matrix.mapRect(imageProxyTile);
         return imageProxyTile;
     }
diff --git a/car/app/app-automotive/build.gradle b/car/app/app-automotive/build.gradle
index 0a2212a..54abcc2 100644
--- a/car/app/app-automotive/build.gradle
+++ b/car/app/app-automotive/build.gradle
@@ -41,6 +41,7 @@
     testImplementation(libs.robolectric)
     testImplementation(libs.truth)
     testImplementation("androidx.fragment:fragment-testing:1.2.3")
+    testImplementation project(path: ':car:app:app-testing')
 }
 
 android {
diff --git a/car/app/app-automotive/src/main/java/androidx/car/app/hardware/AutomotiveCarHardwareManager.java b/car/app/app-automotive/src/main/java/androidx/car/app/hardware/AutomotiveCarHardwareManager.java
index 7c058d0..1b5f28d 100644
--- a/car/app/app-automotive/src/main/java/androidx/car/app/hardware/AutomotiveCarHardwareManager.java
+++ b/car/app/app-automotive/src/main/java/androidx/car/app/hardware/AutomotiveCarHardwareManager.java
@@ -18,17 +18,20 @@
 
 import static androidx.annotation.RestrictTo.Scope.LIBRARY;
 
+import static java.util.Objects.requireNonNull;
+
 import android.content.Context;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RestrictTo;
+import androidx.car.app.hardware.common.PropertyManager;
 import androidx.car.app.hardware.info.AutomotiveCarInfo;
 import androidx.car.app.hardware.info.AutomotiveCarSensors;
 import androidx.car.app.hardware.info.CarInfo;
 import androidx.car.app.hardware.info.CarSensors;
 
 /**
- * {@link CarHardwareManager} which connects to Android Automotive OS to access properties, sensors,
+ * {@link CarHardwareManager} which uses Android Automotive OS APIs to access properties, sensors,
  * and actions.
  *
  * @hide
@@ -39,6 +42,12 @@
     private final AutomotiveCarInfo mCarInfo;
     private final AutomotiveCarSensors mCarSensors;
 
+    public AutomotiveCarHardwareManager(@NonNull Context context) {
+        requireNonNull(context);
+        mCarInfo = new AutomotiveCarInfo(new PropertyManager(context));
+        mCarSensors = new AutomotiveCarSensors();
+    }
+
     @NonNull
     @Override
     public CarInfo getCarInfo() {
@@ -50,9 +59,4 @@
     public CarSensors getCarSensors() {
         return mCarSensors;
     }
-
-    public AutomotiveCarHardwareManager(@NonNull Context context) {
-        mCarInfo = new AutomotiveCarInfo();
-        mCarSensors = new AutomotiveCarSensors();
-    }
 }
diff --git a/car/app/app-automotive/src/main/java/androidx/car/app/hardware/info/AutomotiveCarInfo.java b/car/app/app-automotive/src/main/java/androidx/car/app/hardware/info/AutomotiveCarInfo.java
index c1705f5..fb5f00b 100644
--- a/car/app/app-automotive/src/main/java/androidx/car/app/hardware/info/AutomotiveCarInfo.java
+++ b/car/app/app-automotive/src/main/java/androidx/car/app/hardware/info/AutomotiveCarInfo.java
@@ -15,35 +15,69 @@
  */
 package androidx.car.app.hardware.info;
 
+import static android.car.VehiclePropertyIds.INFO_MAKE;
+import static android.car.VehiclePropertyIds.INFO_MODEL;
+import static android.car.VehiclePropertyIds.INFO_MODEL_YEAR;
+
 import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+import static androidx.car.app.activity.LogTags.TAG;
+
+import static java.util.Objects.requireNonNull;
+
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RestrictTo;
+import androidx.annotation.VisibleForTesting;
+import androidx.car.app.hardware.common.CarPropertyResponse;
+import androidx.car.app.hardware.common.CarValue;
+import androidx.car.app.hardware.common.GetPropertyRequest;
 import androidx.car.app.hardware.common.OnCarDataListener;
+import androidx.car.app.hardware.common.PropertyManager;
 
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
 
 /**
- * Manages access to vehicle specific info communication with a car app host.
+ * Manages access to vehicle specific info, for example, energy info, model info.
  *
  * @hide
  */
 @RestrictTo(LIBRARY)
 public class AutomotiveCarInfo implements CarInfo {
+    private PropertyManager mPropertyManager;
 
-    public AutomotiveCarInfo() {
+    /**
+     * AutomotiveCarInfo class constructor initializing PropertyWorkManager object.
+     *
+     * @throws NullPointerException if {@code manager} is null
+     */
+    public AutomotiveCarInfo(@NonNull PropertyManager manager) {
+        mPropertyManager = requireNonNull(manager);
     }
 
     @Override
     public void getModel(@NonNull Executor executor,
             @NonNull OnCarDataListener<Model> listener) {
+        // Prepare request GetPropertyRequest
+        List<GetPropertyRequest> request = new ArrayList<>();
 
+        // Add "make", "model", "year" of the vehicle to the requests.
+        request.add(GetPropertyRequest.create(INFO_MAKE));
+        request.add(GetPropertyRequest.create(INFO_MODEL));
+        request.add(GetPropertyRequest.create(INFO_MODEL_YEAR));
+        ListenableFuture<List<CarPropertyResponse<?>>> future =
+                mPropertyManager.submitGetPropertyRequest(request, executor);
+        populateModelData(executor, listener, future);
     }
 
     @Override
     public void getEnergyProfile(@NonNull Executor executor,
             @NonNull OnCarDataListener<EnergyProfile> listener) {
-
     }
 
     @Override
@@ -54,40 +88,75 @@
 
     @Override
     public void removeTollListener(@NonNull OnCarDataListener<TollCard> listener) {
-
     }
 
     @Override
     public void addEnergyLevelListener(@NonNull Executor executor,
             @NonNull OnCarDataListener<EnergyLevel> listener) {
-
     }
 
     @Override
     public void removeEnergyLevelListener(@NonNull OnCarDataListener<EnergyLevel> listener) {
-
     }
 
     @Override
     public void addSpeedListener(@NonNull Executor executor,
             @NonNull OnCarDataListener<Speed> listener) {
-
     }
 
     @Override
     public void removeSpeedListener(@NonNull OnCarDataListener<Speed> listener) {
-
     }
 
     @Override
     public void addMileageListener(@NonNull Executor executor,
             @NonNull OnCarDataListener<Mileage> listener) {
-
     }
 
     @Override
     public void removeMileageListener(@NonNull OnCarDataListener<Mileage> listener) {
-
     }
 
+    <T> CarValue<T> getCarValue(Class<T> clazz, CarPropertyResponse<?> response) {
+        T value = clazz.cast(response.getValue());
+        long timeStamp = response.getTimestampMillis();
+        int status = response.getStatus();
+        return new CarValue<>(value, timeStamp, status);
+    }
+
+    @VisibleForTesting
+    void populateModelData(@NonNull Executor executor, OnCarDataListener<Model> listener,
+            ListenableFuture<List<CarPropertyResponse<?>>> future) {
+        future.addListener(() -> {
+            try {
+                List<CarPropertyResponse<?>> result = future.get();
+                CarValue<String> makeValue = CarValue.UNIMPLEMENTED_STRING;
+                CarValue<Integer> yearValue = CarValue.UNIMPLEMENTED_INTEGER;
+                CarValue<String> modelValue = CarValue.UNIMPLEMENTED_STRING;
+                for (CarPropertyResponse<?> value : result) {
+                    if (value.getPropertyId() == INFO_MAKE) {
+                        makeValue = getCarValue(String.class, value);
+                    }
+                    if (value.getPropertyId() == INFO_MODEL) {
+                        modelValue = getCarValue(String.class, value);
+                    }
+                    if (value.getPropertyId() == INFO_MODEL_YEAR) {
+                        yearValue = getCarValue(Integer.class, value);
+                    }
+                }
+                Model model = new Model.Builder().setName(makeValue)
+                        .setManufacturer(modelValue)
+                        .setYear(yearValue)
+                        .build();
+                listener.onCarData(model);
+            } catch (ExecutionException e) {
+                // TODO(b/191084385): Match exception style in {@link CarValue}.
+                Log.e(TAG, "Failed to get CarPropertyResponse", e);
+            } catch (InterruptedException e) {
+                // TODO(b/191084385): Match exception style in {@link CarValue}.
+                Log.e(TAG, "Failed to get CarPropertyResponse", e);
+                Thread.currentThread().interrupt();
+            }
+        }, executor);
+    }
 }
diff --git a/car/app/app-automotive/src/test/java/androidx/car/app/hardware/info/AutomotiveCarInfoTest.java b/car/app/app-automotive/src/test/java/androidx/car/app/hardware/info/AutomotiveCarInfoTest.java
new file mode 100644
index 0000000..f938c38
--- /dev/null
+++ b/car/app/app-automotive/src/test/java/androidx/car/app/hardware/info/AutomotiveCarInfoTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2021 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.car.app.hardware.info;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.car.Car;
+import android.car.VehiclePropertyIds;
+import android.car.hardware.property.CarPropertyManager;
+
+import androidx.car.app.hardware.common.CarPropertyResponse;
+import androidx.car.app.hardware.common.CarValue;
+import androidx.car.app.hardware.common.OnCarDataListener;
+import androidx.car.app.hardware.common.PropertyManager;
+import androidx.car.app.shadows.car.ShadowCar;
+
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.internal.DoNotInstrument;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicReference;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        manifest = Config.NONE,
+        shadows = {ShadowCar.class}
+)
+@DoNotInstrument
+public class AutomotiveCarInfoTest {
+    private final List<CarPropertyResponse<?>> mResponse = new ArrayList<>();
+    @Mock
+    ListenableFuture<List<CarPropertyResponse<?>>> mListenableCarPropertyResponse;
+    private CountDownLatch mCountDownLatch = new CountDownLatch(1);
+    private AtomicReference<Model> mLoadedResult = new AtomicReference<>();
+    private Executor mExecutor = Executors.newSingleThreadExecutor();
+    private AutomotiveCarInfo mAutomotiveCarInfo;
+    private OnCarDataListener<Model> mListener;
+    @Mock
+    private Car mCarMock;
+    @Mock
+    private CarPropertyManager mCarPropertyManagerMock;
+    @Mock
+    private PropertyManager mPropertyManager;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowCar.setCar(mCarMock);
+        when(mCarMock.getCarManager(anyString())).thenReturn(mCarPropertyManagerMock);
+        mAutomotiveCarInfo = new AutomotiveCarInfo(mPropertyManager);
+        // Add "make", "model", "year" values to the response.
+        mResponse.add(CarPropertyResponse.create(VehiclePropertyIds.INFO_MAKE,
+                CarValue.STATUS_SUCCESS, 1, "Speedy "
+                        + "Model"));
+        mResponse.add(CarPropertyResponse.create(VehiclePropertyIds.INFO_MODEL,
+                CarValue.STATUS_SUCCESS, 2, "Toy "
+                        + "Vehicle"));
+        mResponse.add(CarPropertyResponse.create(VehiclePropertyIds.INFO_MODEL_YEAR,
+                CarValue.STATUS_SUCCESS, 3, 2020));
+        mListenableCarPropertyResponse = Futures.immediateFuture(mResponse);
+        when(mPropertyManager.submitGetPropertyRequest(any(), any())).thenReturn(
+                mListenableCarPropertyResponse);
+        mListener = (data) -> {
+            if (data.getName() != null && data.getManufacturer() != null
+                    && data.getYear() != null) {
+                mLoadedResult.set(data);
+                mCountDownLatch.countDown();
+            }
+        };
+    }
+
+    @Test
+    public void getModel_verifyResponse() throws InterruptedException {
+        mAutomotiveCarInfo.getModel(Executors.newFixedThreadPool(1),
+                mListener);
+        verify(mPropertyManager, times(1)).submitGetPropertyRequest(any(), any());
+        mCountDownLatch.await();
+        Model mModel = mLoadedResult.get();
+        assertThat(mModel.getName().getValue()).isEqualTo("Speedy Model");
+        assertThat(mModel.getManufacturer().getValue()).isEqualTo("Toy Vehicle");
+        assertThat(mModel.getYear().getValue()).isEqualTo(2020);
+        assertThat(mModel.getName().getTimestampMillis()).isEqualTo(1);
+        assertThat(mModel.getManufacturer().getTimestampMillis()).isEqualTo(2);
+        assertThat(mModel.getYear().getTimestampMillis()).isEqualTo(3);
+    }
+}
diff --git a/car/app/app-automotive/src/test/java/androidx/car/app/shadows/car/ShadowCar.java b/car/app/app-automotive/src/test/java/androidx/car/app/shadows/car/ShadowCar.java
new file mode 100644
index 0000000..a95033f
--- /dev/null
+++ b/car/app/app-automotive/src/test/java/androidx/car/app/shadows/car/ShadowCar.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2021 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.car.app.shadows.car;
+
+import android.car.Car;
+import android.content.Context;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+/**
+ * Robolectric shadow class for {@link Car}.
+ *
+ * <p>{@link Car} is declared final, so this shadow class allows for mocking and
+ * controlling return values and behavior of the {@link Car} instance.
+ */
+@Implements(Car.class)
+public class ShadowCar {
+    private static Car sCar;
+
+    @Implementation
+    public static Car createCar(Context context) {
+        return sCar;
+    }
+
+    public static void setCar(Car car) {
+        sCar = car;
+    }
+
+    @Implementation
+    public Object getCarManager(String serviceName) {
+        return sCar.getCarManager(serviceName);
+    }
+}
diff --git a/car/app/app-samples/helloworld/mobile/lint-baseline.xml b/car/app/app-samples/helloworld/mobile/lint-baseline.xml
index ce0936b..14802ab 100644
--- a/car/app/app-samples/helloworld/mobile/lint-baseline.xml
+++ b/car/app/app-samples/helloworld/mobile/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="Instantiatable"
diff --git a/car/app/app-samples/navigation/common/lint-baseline.xml b/car/app/app-samples/navigation/common/lint-baseline.xml
index 46c007f..1f16ba2 100644
--- a/car/app/app-samples/navigation/common/lint-baseline.xml
+++ b/car/app/app-samples/navigation/common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
@@ -8,7 +8,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java"
-            line="106"
+            line="104"
             column="21"/>
     </issue>
 
@@ -19,7 +19,7 @@
         errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java"
-            line="107"
+            line="105"
             column="33"/>
     </issue>
 
@@ -30,7 +30,7 @@
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="451"
+            line="449"
             column="17"/>
     </issue>
 
@@ -41,7 +41,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="452"
+            line="450"
             column="26"/>
     </issue>
 
@@ -52,7 +52,7 @@
         errorLine2="                         ~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="453"
+            line="451"
             column="26"/>
     </issue>
 
@@ -63,7 +63,7 @@
         errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="466"
+            line="464"
             column="38"/>
     </issue>
 
@@ -74,7 +74,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="471"
+            line="469"
             column="26"/>
     </issue>
 
@@ -85,7 +85,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="488"
+            line="486"
             column="26"/>
     </issue>
 
@@ -96,7 +96,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="505"
+            line="502"
             column="21"/>
     </issue>
 
@@ -107,7 +107,7 @@
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java"
-            line="506"
+            line="503"
             column="34"/>
     </issue>
 
diff --git a/car/app/app-samples/navigation/mobile/lint-baseline.xml b/car/app/app-samples/navigation/mobile/lint-baseline.xml
index d8758e0..1f71361 100644
--- a/car/app/app-samples/navigation/mobile/lint-baseline.xml
+++ b/car/app/app-samples/navigation/mobile/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="Instantiatable"
diff --git a/car/app/app-samples/places/mobile/lint-baseline.xml b/car/app/app-samples/places/mobile/lint-baseline.xml
index 81bc66c..ea00bc2 100644
--- a/car/app/app-samples/places/mobile/lint-baseline.xml
+++ b/car/app/app-samples/places/mobile/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="Instantiatable"
diff --git a/car/app/app-samples/showcase/automotive/lint-baseline.xml b/car/app/app-samples/showcase/automotive/lint-baseline.xml
deleted file mode 100644
index 4653593..0000000
--- a/car/app/app-samples/showcase/automotive/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="Instantiatable"
-        message="`DelayedFileProvider` must extend android.content.ContentProvider"
-        errorLine1="        android:name=&quot;androidx.car.app.sample.showcase.common.textandicons.DelayedFileProvider&quot;"
-        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="74"
-            column="23"/>
-    </issue>
-
-</issues>
diff --git a/car/app/app-samples/showcase/common/lint-baseline.xml b/car/app/app-samples/showcase/common/lint-baseline.xml
index f8d21eaf..34ce884 100644
--- a/car/app/app-samples/showcase/common/lint-baseline.xml
+++ b/car/app/app-samples/showcase/common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/car/app/app-samples/showcase/mobile/lint-baseline.xml b/car/app/app-samples/showcase/mobile/lint-baseline.xml
index b47a401..51b60eb 100644
--- a/car/app/app-samples/showcase/mobile/lint-baseline.xml
+++ b/car/app/app-samples/showcase/mobile/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="Instantiatable"
diff --git a/car/app/app-testing/lint-baseline.xml b/car/app/app-testing/lint-baseline.xml
new file mode 100644
index 0000000..a412c08
--- /dev/null
+++ b/car/app/app-testing/lint-baseline.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMinutes`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(1)).build();"
+        errorLine2="                                                                         ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="73"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(1)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="73"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofHours`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(1)).build();"
+        errorLine2="                                                                         ~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="78"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(1)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="78"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMinutes`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(2)).build();"
+        errorLine2="                                                                         ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="105"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(2)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="105"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofHours`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(2)).build();"
+        errorLine2="                                                                         ~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="110"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(2)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="110"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMinutes`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(3)).build();"
+        errorLine2="                                                                         ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="126"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofMinutes(3)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="126"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofHours`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(3)).build();"
+        errorLine2="                                                                         ~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="131"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                                &quot;US/Pacific&quot;)).setRemainingTime(Duration.ofHours(3)).build();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/testing/navigation/TestNavigationManagerTest.java"
+            line="131"
+            column="48"/>
+    </issue>
+
+</issues>
diff --git a/car/app/app/lint-baseline.xml b/car/app/app/lint-baseline.xml
index 785bf57..0ba9e06 100644
--- a/car/app/app/lint-baseline.xml
+++ b/car/app/app/lint-baseline.xml
@@ -1,9 +1,460 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertThat(actions.get(0).getIcon().getResId()).isEqualTo(icon1);"
+        errorLine2="                                            ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/notification/CarAppExtenderTest.java"
+            line="209"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertThat(actions.get(1).getIcon().getResId()).isEqualTo(icon2);"
+        errorLine2="                                            ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/notification/CarAppExtenderTest.java"
+            line="212"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.content.res.Configuration#getLocales`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                 ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarAppServiceTest.java"
+            line="212"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.os.LocaleList#get`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                              ~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarAppServiceTest.java"
+            line="212"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.content.res.Configuration#getLocales`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                 ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarAppServiceTest.java"
+            line="275"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.os.LocaleList#get`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                              ~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarAppServiceTest.java"
+            line="275"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.content.res.Configuration#getLocales`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                 ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarContextTest.java"
+            line="224"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `android.os.LocaleList#get`"
+        errorLine1="        assertThat(mCarContext.getResources().getConfiguration().getLocales().get(0))"
+        errorLine2="                                                                              ~~~">
+        <location
+            file="src/test/java/androidx/car/app/CarContextTest.java"
+            line="224"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `android.app.Notification#getChannelId`"
+        errorLine1="        assertThat(changed.getChannelId()).isEqualTo(EXTENDED_CHANNEL);"
+        errorLine2="                           ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"
+            line="112"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `android.app.Notification#getChannelId`"
+        errorLine1="        assertThat(output.getChannelId()).isEqualTo(DEFAULT_CHANNEL);"
+        errorLine2="                          ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"
+            line="137"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `android.app.Notification#getChannelId`"
+        errorLine1="        assertThat(output.getChannelId()).isEqualTo(DEFAULT_CHANNEL);"
+        errorLine2="                          ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/notification/CarNotificationManagerTest.java"
+            line="165"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.ZonedDateTime#parse`"
+        errorLine1="        ZonedDateTime zonedDateTime = ZonedDateTime.parse(&quot;2020-05-14T19:57:00-07:00[US/Pacific]&quot;);"
+        errorLine2="                                                    ~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="135"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `create`"
+        errorLine1="        DateTimeWithZone dateTimeWithZone = DateTimeWithZone.create(zonedDateTime);"
+        errorLine2="                                                             ~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="136"
+            column="62"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `assertDateTimeWithZoneEquals`"
+        errorLine1="        assertDateTimeWithZoneEquals(zonedDateTime, dateTimeWithZone);"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="138"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `create`"
+        errorLine1="                    DateTimeWithZone.create(null);"
+        errorLine2="                                     ~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="147"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#getSeconds`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                                                                            ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="156"
+            column="77"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMillis`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="156"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#getSeconds`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                                                                            ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="174"
+            column="77"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMillis`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="174"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#getSeconds`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                                                                            ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="193"
+            column="77"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMillis`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="193"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#getSeconds`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                                                                            ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="212"
+            column="77"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofMillis`"
+        errorLine1="                Duration.ofMillis(timeZone.getOffset(timeSinceEpochMillis)).getSeconds();"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/model/DateTimeWithZoneTest.java"
+            line="212"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `java.util.Collection#stream`"
+        errorLine1="                .stream()"
+        errorLine2="                 ~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"
+            line="132"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `java.util.stream.Stream#mapToLong`"
+        errorLine1="                .mapToLong(List::size)"
+        errorLine2="                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"
+            line="133"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `java.util.stream.LongStream#sum`"
+        errorLine1="                .sum()).isEqualTo(6);"
+        errorLine2="                 ~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTest.java"
+            line="134"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 23): `android.content.pm.SigningInfo`"
+        errorLine1="        packageInfo.signingInfo = mock(SigningInfo.class);"
+        errorLine2="                                       ~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"
+            line="108"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 28 (current min is 23): `android.content.pm.PackageInfo#signingInfo`"
+        errorLine1="        packageInfo.signingInfo = mock(SigningInfo.class);"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"
+            line="108"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `android.content.pm.SigningInfo#getSigningCertificateHistory`"
+        errorLine1="        when(packageInfo.signingInfo.getSigningCertificateHistory()).thenReturn(signatures);"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"
+            line="109"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 28 (current min is 23): `android.content.pm.PackageInfo#signingInfo`"
+        errorLine1="        when(packageInfo.signingInfo.getSigningCertificateHistory()).thenReturn(signatures);"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/validation/HostValidatorTestApi28.java"
+            line="109"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.ZonedDateTime#parse`"
+        errorLine1="        ZonedDateTime arrivalTime = ZonedDateTime.parse(&quot;2020-05-14T19:57:00-07:00[US/Pacific]&quot;);"
+        errorLine2="                                                  ~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="69"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofHours`"
+        errorLine1="        Duration remainingTime = Duration.ofHours(10);"
+        errorLine2="                                          ~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="70"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `Builder`"
+        errorLine1="                new TravelEstimate.Builder(mRemainingDistance, arrivalTime).setRemainingTime("
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="73"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                new TravelEstimate.Builder(mRemainingDistance, arrivalTime).setRemainingTime("
+        errorLine2="                                                                            ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="73"
+            column="77"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#getSeconds`"
+        errorLine1="        assertThat(travelEstimate.getRemainingTimeSeconds()).isEqualTo(remainingTime.getSeconds());"
+        errorLine2="                                                                                     ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="77"
+            column="86"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `assertDateTimeWithZoneEquals`"
+        errorLine1="        assertDateTimeWithZoneEquals(arrivalTime, travelEstimate.getArrivalTimeAtDestination());"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="78"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.ZonedDateTime#parse`"
+        errorLine1="        ZonedDateTime arrivalTime = ZonedDateTime.parse(&quot;2020-05-14T19:57:00-07:00[US/Pacific]&quot;);"
+        errorLine2="                                                  ~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="115"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `Builder`"
+        errorLine1="                new TravelEstimate.Builder("
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="119"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `setRemainingTime`"
+        errorLine1="                        remainingDistance, arrivalTime).setRemainingTime("
+        errorLine2="                                                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="120"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `java.time.Duration#ofSeconds`"
+        errorLine1="                        Duration.ofSeconds(REMAINING_TIME_UNKNOWN)).build();"
+        errorLine2="                                 ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="121"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 23): `assertDateTimeWithZoneEquals`"
+        errorLine1="        assertDateTimeWithZoneEquals(arrivalTime, travelEstimate.getArrivalTimeAtDestination());"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/car/app/navigation/model/TravelEstimateTest.java"
+            line="125"
+            column="9"/>
+    </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            enumName = (String) nameMethod.invoke(obj);"
         errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -14,7 +465,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            Object obj = converter.invoke(null, binder);"
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -25,7 +476,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            return nameMethod.invoke(null, enumName);"
         errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/collection/collection/lint-baseline.xml b/collection/collection/lint-baseline.xml
index 6d3f9db..5769268 100644
--- a/collection/collection/lint-baseline.xml
+++ b/collection/collection/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/compose/animation/animation-core/lint-baseline.xml b/compose/animation/animation-core/lint-baseline.xml
new file mode 100644
index 0000000..94fd5e3
--- /dev/null
+++ b/compose/animation/animation-core/lint-baseline.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.lang.Long#max`"
+        errorLine1="        val duration = max("
+        errorLine2="                       ~~~">
+        <location
+            file="src/test/java/androidx/compose/animation/core/AnimationTest.kt"
+            line="285"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.lang.Long#max`"
+        errorLine1="            max("
+        errorLine2="            ~~~">
+        <location
+            file="src/test/java/androidx/compose/animation/core/AnimationTest.kt"
+            line="287"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.Collection#parallelStream`"
+        errorLine1="        testCases.parallelStream().forEach {"
+        errorLine2="                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/compose/animation/core/SpringEstimationTest.kt"
+            line="54"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.stream.Stream#forEach`"
+        errorLine1="        testCases.parallelStream().forEach {"
+        errorLine2="                                   ~~~~~~~">
+        <location
+            file="src/test/java/androidx/compose/animation/core/SpringEstimationTest.kt"
+            line="54"
+            column="36"/>
+    </issue>
+
+</issues>
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
index fb97b07..54cc9eb 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
@@ -45,20 +45,21 @@
             2800 to "1.0.0-beta07",
             2900 to "1.0.0-beta08",
             3000 to "1.0.0-beta09",
-            3100 to "1.0.0-beta10",
+            3100 to "1.0.0-rc01",
+            4000 to "1.1.0-alpha01",
         )
 
         /**
          * The minimum version int that this compiler is guaranteed to be compatible with. Typically
          * this will match the version int that is in ComposeVersion.kt in the runtime.
          */
-        private val minimumRuntimeVersionInt: Int = 3100
+        private val minimumRuntimeVersionInt: Int = 4000
 
         /**
          * The maven version string of this compiler. This string should be updated before/after every
          * release.
          */
-        val compilerVersion: String = "1.0.0-beta10"
+        val compilerVersion: String = "1.1.0-alpha01"
         private val minimumRuntimeVersion: String
             get() = versionTable[minimumRuntimeVersionInt] ?: "unknown"
     }
diff --git a/compose/foundation/foundation-layout/lint-baseline.xml b/compose/foundation/foundation-layout/lint-baseline.xml
new file mode 100644
index 0000000..8d64150
--- /dev/null
+++ b/compose/foundation/foundation-layout/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `waitAndScreenShot`"
+        errorLine1="        val bitmap = activityTestRule.waitAndScreenShot()"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/layout/BoxWithConstraintsTest.kt"
+            line="673"
+            column="39"/>
+    </issue>
+
+</issues>
diff --git a/compose/foundation/foundation/lint-baseline.xml b/compose/foundation/foundation/lint-baseline.xml
new file mode 100644
index 0000000..78df605
--- /dev/null
+++ b/compose/foundation/foundation/lint-baseline.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 21): `isSoftwareKeyboardShown`"
+        errorLine1="            if (view.isSoftwareKeyboardShown()) {"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/text/CoreTextFieldSoftKeyboardTest.kt"
+            line="183"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 21): `hideKeyboard`"
+        errorLine1="                view.hideKeyboard()"
+        errorLine2="                     ~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/text/CoreTextFieldSoftKeyboardTest.kt"
+            line="184"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 21): `isSoftwareKeyboardShown`"
+        errorLine1="                view.waitUntil(timeout) { !view.isSoftwareKeyboardShown() }"
+        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/text/CoreTextFieldSoftKeyboardTest.kt"
+            line="185"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 21): `android.view.View#setWindowInsetsAnimationCallback`"
+        errorLine1="    rootView.setWindowInsetsAnimationCallback("
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/text/CoreTextFieldSoftKeyboardTest.kt"
+            line="193"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 21): `InsetAnimationCallback`"
+        errorLine1="        InsetAnimationCallback {"
+        errorLine2="        ^">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/foundation/text/CoreTextFieldSoftKeyboardTest.kt"
+            line="194"
+            column="9"/>
+    </issue>
+
+</issues>
diff --git a/compose/integration-tests/docs-snippets/build.gradle b/compose/integration-tests/docs-snippets/build.gradle
index 2d3862e..7c756ac 100644
--- a/compose/integration-tests/docs-snippets/build.gradle
+++ b/compose/integration-tests/docs-snippets/build.gradle
@@ -35,7 +35,7 @@
     implementation(project(":compose:runtime:runtime-livedata"))
     implementation(project(":compose:ui:ui-graphics"))
     implementation(project(":compose:ui:ui-test-junit4"))
-    implementation(project(":compose:ui:ui-tooling"))
+    implementation(project(":compose:ui:ui-tooling-preview"))
     implementation(project(":compose:ui:ui-viewbinding"))
     implementation(project(":navigation:navigation-compose"))
     implementation(project(":activity:activity-compose"))
diff --git a/compose/integration-tests/macrobenchmark/lint-baseline.xml b/compose/integration-tests/macrobenchmark/lint-baseline.xml
new file mode 100644
index 0000000..86830d6
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark/lint-baseline.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/IoSettingsStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/IoSettingsStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/NestedListsScrollBenchmark.kt"
+            line="42"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureRepeated`"
+        errorLine1="        benchmarkRule.measureRepeated("
+        errorLine2="                      ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/NestedListsScrollBenchmark.kt"
+            line="54"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/SmallListStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/SmallListStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/TrivialListScrollBenchmark.kt"
+            line="42"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureRepeated`"
+        errorLine1="        benchmarkRule.measureRepeated("
+        errorLine2="                      ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/TrivialListScrollBenchmark.kt"
+            line="54"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/TrivialStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/compose/integration/macrobenchmark/TrivialStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+</issues>
diff --git a/compose/material/material/lint-baseline.xml b/compose/material/material/lint-baseline.xml
new file mode 100644
index 0000000..b0b67ac
--- /dev/null
+++ b/compose/material/material/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/material/BadgeTest.kt"
+            line="125"
+            column="14"/>
+    </issue>
+
+</issues>
diff --git a/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/textfield/OutlinedTextFieldTest.kt b/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/textfield/OutlinedTextFieldTest.kt
index e607dd0..8980737 100644
--- a/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/textfield/OutlinedTextFieldTest.kt
+++ b/compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/textfield/OutlinedTextFieldTest.kt
@@ -964,6 +964,27 @@
     }
 
     @Test
+    @SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
+    fun testOutlinedTextField_appliesBackgroundColor() {
+        rule.setMaterialContent {
+            OutlinedTextField(
+                value = "",
+                onValueChange = {},
+                modifier = Modifier.testTag(TextfieldTag),
+                colors = TextFieldDefaults.outlinedTextFieldColors(
+                    backgroundColor = Color.Red,
+                    unfocusedBorderColor = Color.Red
+                ),
+                shape = RectangleShape
+            )
+        }
+
+        rule.onNodeWithTag(TextfieldTag).captureToImage().assertPixels {
+            Color.Red
+        }
+    }
+
+    @Test
     fun testOutlinedTextField_doesNotCrash_columnWidthWithMinIntrinsics() {
         var textFieldSize: IntSize? = null
         var dividerSize: IntSize? = null
diff --git a/compose/material/material/src/androidMain/kotlin/androidx/compose/material/AndroidAlertDialog.android.kt b/compose/material/material/src/androidMain/kotlin/androidx/compose/material/AndroidAlertDialog.android.kt
index e753449..9042e78 100644
--- a/compose/material/material/src/androidMain/kotlin/androidx/compose/material/AndroidAlertDialog.android.kt
+++ b/compose/material/material/src/androidMain/kotlin/androidx/compose/material/AndroidAlertDialog.android.kt
@@ -52,9 +52,9 @@
  * any events for this button so they need to be set up by the caller.
  * @param title The title of the Dialog which should specify the purpose of the Dialog. The title
  * is not mandatory, because there may be sufficient information inside the [text]. Provided text
- * style will be [Typography.h6].
+ * style will be [Typography.subtitle1].
  * @param text The text which presents the details regarding the Dialog's purpose. Provided text
- * style will be [Typography.body1].
+ * style will be [Typography.body2].
  * @param shape Defines the Dialog's shape
  * @param backgroundColor The background color of the dialog.
  * @param contentColor The preferred content color provided by this dialog to its children.
@@ -114,9 +114,9 @@
  * @param modifier Modifier to be applied to the layout of the dialog.
  * @param title The title of the Dialog which should specify the purpose of the Dialog. The title
  * is not mandatory, because there may be sufficient information inside the [text]. Provided text
- * style will be [Typography.h6].
+ * style will be [Typography.subtitle1].
  * @param text The text which presents the details regarding the Dialog's purpose. Provided text
- * style will be [Typography.body1].
+ * style will be [Typography.body2].
  * @param shape Defines the Dialog's shape.
  * @param backgroundColor The background color of the dialog.
  * @param contentColor The preferred content color provided by this dialog to its children.
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
index a5e1b53..add31f6 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
@@ -16,6 +16,7 @@
 
 package androidx.compose.material
 
+import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.interaction.Interaction
 import androidx.compose.foundation.interaction.MutableInteractionSource
@@ -308,6 +309,7 @@
     indicatorWidth: Dp,
     indicatorColor: Color,
     cursorColor: Color,
+    backgroundColor: Color,
     shape: Shape
 ) {
     val labelSize = remember { mutableStateOf(Size.Zero) }
@@ -323,8 +325,9 @@
             )
             .defaultMinSize(
                 minWidth = MinWidth,
-                minHeight = MinHeight,
-            ),
+                minHeight = MinHeight
+            )
+            .background(backgroundColor, shape),
         onValueChange = onValueChange,
         enabled = enabled,
         readOnly = readOnly,
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt
index 65913b9..a50a6d2 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt
@@ -194,6 +194,7 @@
                     indicatorColor =
                         colors.indicatorColor(enabled, isError, interactionSource).value,
                     shape = shape,
+                    backgroundColor = colors.backgroundColor(enabled).value,
                     cursorColor = colors.cursorColor(isError).value
                 )
             }
diff --git a/compose/material/material/src/desktopMain/kotlin/androidx/compose/material/DesktopAlertDialog.desktop.kt b/compose/material/material/src/desktopMain/kotlin/androidx/compose/material/DesktopAlertDialog.desktop.kt
index b077db6..fecc83d 100644
--- a/compose/material/material/src/desktopMain/kotlin/androidx/compose/material/DesktopAlertDialog.desktop.kt
+++ b/compose/material/material/src/desktopMain/kotlin/androidx/compose/material/DesktopAlertDialog.desktop.kt
@@ -48,9 +48,9 @@
  * any events for this button so they need to be set up by the caller.
  * @param title The title of the Dialog which should specify the purpose of the Dialog. The title
  * is not mandatory, because there may be sufficient information inside the [text]. Provided text
- * style will be [Typography.h6].
+ * style will be [Typography.subtitle1].
  * @param text The text which presents the details regarding the Dialog's purpose. Provided text
- * style will be [Typography.body1].
+ * style will be [Typography.body2].
  * @param shape Defines the Dialog's shape
  * @param backgroundColor The background color of the dialog.
  * @param contentColor The preferred content color provided by this dialog to its children.
@@ -106,9 +106,9 @@
  * @param modifier Modifier to be applied to the layout of the dialog.
  * @param title The title of the Dialog which should specify the purpose of the Dialog. The title
  * is not mandatory, because there may be sufficient information inside the [text]. Provided text
- * style will be [Typography.h6].
+ * style will be [Typography.subtitle1].
  * @param text The text which presents the details regarding the Dialog's purpose. Provided text
- * style will be [Typography.body1].
+ * style will be [Typography.body2].
  * @param shape Defines the Dialog's shape.
  * @param backgroundColor The background color of the dialog.
  * @param contentColor The preferred content color provided by this dialog to its children.
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
index 78b5389..6e80fa41 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
@@ -28,5 +28,5 @@
      * IMPORTANT: Whenever updating this value, please make sure to also update `versionTable` and
      * `minimumRuntimeVersionInt` in `VersionChecker.kt` of the compiler.
      */
-    const val version: Int = 3100
+    const val version: Int = 4000
 }
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
index cf8ee96..864628b 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
@@ -326,9 +326,13 @@
     /**
      * A Compose compiler plugin API. DO NOT call directly.
      *
-     * This is the instance that changes that are calculated by the composer will be played to.
-     * During while invoking [Composable] functions none of the [applier] methods are called.
-     * The changes are made in a batch after the all [Composable] functions have completed.
+     * Changes calculated and recorded during composition and are sent to [applier] which makes
+     * the physical changes to the node tree implied by a composition.
+     *
+     * Composition has two discrete phases, 1) calculate and record changes and 2) making the
+     * changes via the [applier]. While a [Composable] functions is executing, none of the
+     * [applier] methods are called. The recorded changes are sent to the [applier] all at once
+     * after all [Composable] functions have completed.
      */
     @ComposeCompilerApi
     val applier: Applier<*>
diff --git a/compose/ui/ui-text/benchmark/lint-baseline.xml b/compose/ui/ui-text/benchmark/lint-baseline.xml
index 029c0d9..00ea318 100644
--- a/compose/ui/ui-text/benchmark/lint-baseline.xml
+++ b/compose/ui/ui-text/benchmark/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.1.0-alpha01" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha01">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
diff --git a/compose/ui/ui-text/lint-baseline.xml b/compose/ui/ui-text/lint-baseline.xml
new file mode 100644
index 0000000..78070ef
--- /dev/null
+++ b/compose/ui/ui-text/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `Font`"
+        errorLine1="            val font = Font(ParcelFileDescriptor.dup(inputStream.fd)) as AndroidFont"
+        errorLine2="                       ~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/text/font/AndroidFontTest.kt"
+            line="85"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `Font`"
+        errorLine1="            val fontFamily = Font(ParcelFileDescriptor.dup(inputStream.fd)).toFontFamily()"
+        errorLine2="                             ~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/text/platform/TypefaceAdapterFileTest.kt"
+            line="107"
+            column="30"/>
+    </issue>
+
+</issues>
diff --git a/compose/ui/ui-tooling-preview/OWNERS b/compose/ui/ui-tooling-preview/OWNERS
new file mode 100644
index 0000000..7e888c71
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/OWNERS
@@ -0,0 +1,2 @@
+amaurym@google.com
+diegoperez@google.com
\ No newline at end of file
diff --git a/compose/ui/ui-tooling-preview/api/1.0.0-beta10.txt b/compose/ui/ui-tooling-preview/api/1.0.0-beta10.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/1.0.0-beta10.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/current.txt b/compose/ui/ui-tooling-preview/api/current.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/current.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/public_plus_experimental_1.0.0-beta10.txt b/compose/ui/ui-tooling-preview/api/public_plus_experimental_1.0.0-beta10.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/public_plus_experimental_1.0.0-beta10.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/public_plus_experimental_current.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/res-1.0.0-beta10.txt b/compose/ui/ui-tooling-preview/api/res-1.0.0-beta10.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/res-1.0.0-beta10.txt
diff --git a/compose/ui/ui-tooling-preview/api/res-current.txt b/compose/ui/ui-tooling-preview/api/res-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/res-current.txt
diff --git a/compose/ui/ui-tooling-preview/api/restricted_1.0.0-beta10.txt b/compose/ui/ui-tooling-preview/api/restricted_1.0.0-beta10.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/restricted_1.0.0-beta10.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/api/restricted_current.txt b/compose/ui/ui-tooling-preview/api/restricted_current.txt
new file mode 100644
index 0000000..6500942
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/api/restricted_current.txt
@@ -0,0 +1,91 @@
+// Signature format: 4.0
+package androidx.compose.ui.tooling.preview {
+
+  public final class Devices {
+    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
+    field public static final String DEFAULT = "";
+    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
+    field public static final String NEXUS_10 = "name:Nexus 10";
+    field public static final String NEXUS_5 = "id:Nexus 5";
+    field public static final String NEXUS_5X = "id:Nexus 5X";
+    field public static final String NEXUS_6 = "id:Nexus 6";
+    field public static final String NEXUS_6P = "id:Nexus 6P";
+    field public static final String NEXUS_7 = "id:Nexus 7";
+    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
+    field public static final String NEXUS_9 = "id:Nexus 9";
+    field public static final String PIXEL = "id:pixel";
+    field public static final String PIXEL_2 = "id:pixel_2";
+    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
+    field public static final String PIXEL_3 = "id:pixel_3";
+    field public static final String PIXEL_3A = "id:pixel_3a";
+    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
+    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
+    field public static final String PIXEL_4 = "id:pixel_4";
+    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
+    field public static final String PIXEL_C = "id:pixel_c";
+    field public static final String PIXEL_XL = "id:pixel_xl";
+  }
+
+  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
+    method public abstract int apiLevel() default -1;
+    method public abstract long backgroundColor() default 0L;
+    method public abstract String device() default "";
+    method public abstract float fontScale() default 1.0f;
+    method public abstract String group() default "";
+    method public abstract int heightDp() default -1;
+    method public abstract String locale() default "";
+    method public abstract String name() default "";
+    method public abstract boolean showBackground() default false;
+    method public abstract boolean showSystemUi() default false;
+    method public abstract int uiMode() default 0;
+    method public abstract int widthDp() default -1;
+    property public abstract int apiLevel;
+    property public abstract long backgroundColor;
+    property public abstract String device;
+    property public abstract float fontScale;
+    property public abstract String group;
+    property public abstract int heightDp;
+    property public abstract String locale;
+    property public abstract String name;
+    property public abstract boolean showBackground;
+    property public abstract boolean showSystemUi;
+    property public abstract int uiMode;
+    property public abstract int widthDp;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
+    method public abstract int limit() default 2147483647;
+    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
+    property public abstract int limit;
+    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
+  }
+
+  public interface PreviewParameterProvider<T> {
+    method public default int getCount();
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public default int count;
+    property public abstract kotlin.sequences.Sequence<T> values;
+  }
+
+}
+
+package androidx.compose.ui.tooling.preview.datasource {
+
+  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
+    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
+    method public kotlin.sequences.Sequence<T> getValues();
+    property public kotlin.sequences.Sequence<T> values;
+  }
+
+  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
+    ctor public LoremIpsum(int words);
+    ctor public LoremIpsum();
+    method public kotlin.sequences.Sequence<java.lang.String> getValues();
+    property public kotlin.sequences.Sequence<java.lang.String> values;
+  }
+
+  public final class LoremIpsumKt {
+  }
+
+}
+
diff --git a/compose/ui/ui-tooling-preview/build.gradle b/compose/ui/ui-tooling-preview/build.gradle
new file mode 100644
index 0000000..201c607
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/build.gradle
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2021 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.
+ */
+
+import androidx.build.LibraryGroups
+import androidx.build.LibraryType
+
+plugins {
+    id("AndroidXPlugin")
+    id("AndroidXComposePlugin")
+    id("com.android.library")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    implementation(libs.kotlinStdlib)
+    api("androidx.annotation:annotation:1.2.0")
+    api(project(":compose:runtime:runtime"))
+
+    testImplementation(libs.junit)
+}
+
+androidx {
+    name = "Compose Tooling API"
+    type = LibraryType.PUBLISHED_LIBRARY
+    mavenGroup = LibraryGroups.Compose.UI
+    inceptionYear = "2021"
+    description = "Compose tooling library API. This library provides the API required to declare" +
+            " @Preview composables in user apps."
+    legacyDisableKotlinStrictApiMode = true
+}
diff --git a/compose/ui/ui-tooling-preview/src/main/AndroidManifest.xml b/compose/ui/ui-tooling-preview/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..347442f
--- /dev/null
+++ b/compose/ui/ui-tooling-preview/src/main/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2021 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.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="androidx.compose.ui.tooling.preview">
+
+</manifest>
\ No newline at end of file
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/Device.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/Device.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/Device.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/Device.kt
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/Preview.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/Preview.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/Preview.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/Preview.kt
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewParameter.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/PreviewParameter.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewParameter.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/PreviewParameter.kt
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/UiMode.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/UiMode.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/UiMode.kt
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/datasource/CollectionPreviewParameterProvider.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/datasource/CollectionPreviewParameterProvider.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/datasource/CollectionPreviewParameterProvider.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/datasource/CollectionPreviewParameterProvider.kt
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt
similarity index 85%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt
rename to compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt
index 2dd91ff..a02e165 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt
+++ b/compose/ui/ui-tooling-preview/src/main/java/androidx/compose/ui/tooling/preview/datasource/LoremIpsum.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 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.
@@ -39,17 +39,6 @@
 """.trim().split(" ")
 
 /**
- * Generate a Lorem Ipsum [words] long.
- */
-private fun generateLoremIpsum(words: Int): String {
-    var wordsUsed = 0
-    val loremIpsumMaxSize = LOREM_IPSUM_SOURCE.size
-    return generateSequence {
-        LOREM_IPSUM_SOURCE[wordsUsed++ % loremIpsumMaxSize]
-    }.take(words).joinToString(" ")
-}
-
-/**
  * [PreviewParameterProvider] with 1 value containing Lorem Ipsum.
  *
  * @param words Number of words from "Lorem Ipsum" to use.
@@ -61,4 +50,15 @@
 
     override val values: Sequence<String>
         get() = sequenceOf(generateLoremIpsum(words))
+
+    /**
+     * Generate a Lorem Ipsum [words] long.
+     */
+    private fun generateLoremIpsum(words: Int): String {
+        var wordsUsed = 0
+        val loremIpsumMaxSize = LOREM_IPSUM_SOURCE.size
+        return generateSequence {
+            LOREM_IPSUM_SOURCE[wordsUsed++ % loremIpsumMaxSize]
+        }.take(words).joinToString(" ")
+    }
 }
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/datasource/LoremIpsumTest.kt b/compose/ui/ui-tooling-preview/src/test/java/androidx/compose/ui/tooling/preview/datasource/LoremIpsumTest.kt
similarity index 100%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/datasource/LoremIpsumTest.kt
rename to compose/ui/ui-tooling-preview/src/test/java/androidx/compose/ui/tooling/preview/datasource/LoremIpsumTest.kt
diff --git a/compose/ui/ui-tooling/api/1.0.0-beta10.txt b/compose/ui/ui-tooling/api/1.0.0-beta10.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/1.0.0-beta10.txt
+++ b/compose/ui/ui-tooling/api/1.0.0-beta10.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/api/current.ignore b/compose/ui/ui-tooling/api/current.ignore
new file mode 100644
index 0000000..62d7b31
--- /dev/null
+++ b/compose/ui/ui-tooling/api/current.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+RemovedPackage: androidx.compose.ui.tooling.preview:
+    Removed package androidx.compose.ui.tooling.preview
+RemovedPackage: androidx.compose.ui.tooling.preview.animation:
+    Removed package androidx.compose.ui.tooling.preview.animation
+RemovedPackage: androidx.compose.ui.tooling.preview.datasource:
+    Removed package androidx.compose.ui.tooling.preview.datasource
diff --git a/compose/ui/ui-tooling/api/current.txt b/compose/ui/ui-tooling/api/current.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/current.txt
+++ b/compose/ui/ui-tooling/api/current.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/api/public_plus_experimental_1.0.0-beta10.txt b/compose/ui/ui-tooling/api/public_plus_experimental_1.0.0-beta10.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/public_plus_experimental_1.0.0-beta10.txt
+++ b/compose/ui/ui-tooling/api/public_plus_experimental_1.0.0-beta10.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/api/public_plus_experimental_current.txt b/compose/ui/ui-tooling/api/public_plus_experimental_current.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui-tooling/api/public_plus_experimental_current.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/api/restricted_1.0.0-beta10.txt b/compose/ui/ui-tooling/api/restricted_1.0.0-beta10.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/restricted_1.0.0-beta10.txt
+++ b/compose/ui/ui-tooling/api/restricted_1.0.0-beta10.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/api/restricted_current.ignore b/compose/ui/ui-tooling/api/restricted_current.ignore
new file mode 100644
index 0000000..62d7b31
--- /dev/null
+++ b/compose/ui/ui-tooling/api/restricted_current.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+RemovedPackage: androidx.compose.ui.tooling.preview:
+    Removed package androidx.compose.ui.tooling.preview
+RemovedPackage: androidx.compose.ui.tooling.preview.animation:
+    Removed package androidx.compose.ui.tooling.preview.animation
+RemovedPackage: androidx.compose.ui.tooling.preview.datasource:
+    Removed package androidx.compose.ui.tooling.preview.datasource
diff --git a/compose/ui/ui-tooling/api/restricted_current.txt b/compose/ui/ui-tooling/api/restricted_current.txt
index 1789ce2..d6124a8 100644
--- a/compose/ui/ui-tooling/api/restricted_current.txt
+++ b/compose/ui/ui-tooling/api/restricted_current.txt
@@ -1,113 +1,22 @@
 // Signature format: 4.0
 package androidx.compose.ui.tooling {
 
+  public final class ComposeViewAdapterKt {
+  }
+
   public final class InspectableKt {
     method @androidx.compose.runtime.Composable public static void InInspectionModeOnly(kotlin.jvm.functions.Function0<kotlin.Unit> content);
   }
 
-}
-
-package androidx.compose.ui.tooling.preview {
-
-  public final class ComposeViewAdapterKt {
-    field public static final String TOOLS_NS_URI = "http://schemas.android.com/tools";
-  }
-
-  public final class Devices {
-    field public static final String AUTOMOTIVE_1024p = "id:automotive_1024p_landscape";
-    field public static final String DEFAULT = "";
-    field public static final androidx.compose.ui.tooling.preview.Devices INSTANCE;
-    field public static final String NEXUS_10 = "name:Nexus 10";
-    field public static final String NEXUS_5 = "id:Nexus 5";
-    field public static final String NEXUS_5X = "id:Nexus 5X";
-    field public static final String NEXUS_6 = "id:Nexus 6";
-    field public static final String NEXUS_6P = "id:Nexus 6P";
-    field public static final String NEXUS_7 = "id:Nexus 7";
-    field public static final String NEXUS_7_2013 = "id:Nexus 7 2013";
-    field public static final String NEXUS_9 = "id:Nexus 9";
-    field public static final String PIXEL = "id:pixel";
-    field public static final String PIXEL_2 = "id:pixel_2";
-    field public static final String PIXEL_2_XL = "id:pixel_2_xl";
-    field public static final String PIXEL_3 = "id:pixel_3";
-    field public static final String PIXEL_3A = "id:pixel_3a";
-    field public static final String PIXEL_3A_XL = "id:pixel_3a_xl";
-    field public static final String PIXEL_3_XL = "id:pixel_3_xl";
-    field public static final String PIXEL_4 = "id:pixel_4";
-    field public static final String PIXEL_4_XL = "id:pixel_4_xl";
-    field public static final String PIXEL_C = "id:pixel_c";
-    field public static final String PIXEL_XL = "id:pixel_xl";
-  }
-
-  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Repeatable @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget) public @interface Preview {
-    method public abstract int apiLevel() default -1;
-    method public abstract long backgroundColor() default 0L;
-    method public abstract String device() default "";
-    method public abstract float fontScale() default 1.0f;
-    method public abstract String group() default "";
-    method public abstract int heightDp() default -1;
-    method public abstract String locale() default "";
-    method public abstract String name() default "";
-    method public abstract boolean showBackground() default false;
-    method public abstract boolean showSystemUi() default false;
-    method public abstract int uiMode() default 0;
-    method public abstract int widthDp() default -1;
-    property public abstract int apiLevel;
-    property public abstract long backgroundColor;
-    property public abstract String device;
-    property public abstract float fontScale;
-    property public abstract String group;
-    property public abstract int heightDp;
-    property public abstract String locale;
-    property public abstract String name;
-    property public abstract boolean showBackground;
-    property public abstract boolean showSystemUi;
-    property public abstract int uiMode;
-    property public abstract int widthDp;
-  }
-
-  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface PreviewParameter {
-    method public abstract int limit() default 2147483647;
-    method public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider();
-    property public abstract int limit;
-    property public abstract Class<? extends androidx.compose.ui.tooling.preview.PreviewParameterProvider<?>> provider;
-  }
-
-  public interface PreviewParameterProvider<T> {
-    method public default int getCount();
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public default int count;
-    property public abstract kotlin.sequences.Sequence<T> values;
-  }
-
   public final class PreviewUtilsKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.animation {
+package androidx.compose.ui.tooling.animation {
 
   public final class ComposeAnimationParserKt {
   }
 
 }
 
-package androidx.compose.ui.tooling.preview.datasource {
-
-  public class CollectionPreviewParameterProvider<T> implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<T> {
-    ctor public CollectionPreviewParameterProvider(java.util.Collection<? extends T> collection);
-    method public kotlin.sequences.Sequence<T> getValues();
-    property public kotlin.sequences.Sequence<T> values;
-  }
-
-  public final class LoremIpsum implements androidx.compose.ui.tooling.preview.PreviewParameterProvider<java.lang.String> {
-    ctor public LoremIpsum(int words);
-    ctor public LoremIpsum();
-    method public kotlin.sequences.Sequence<java.lang.String> getValues();
-    property public kotlin.sequences.Sequence<java.lang.String> values;
-  }
-
-  public final class LoremIpsumKt {
-  }
-
-}
-
diff --git a/compose/ui/ui-tooling/build.gradle b/compose/ui/ui-tooling/build.gradle
index e485626..4890adc 100644
--- a/compose/ui/ui-tooling/build.gradle
+++ b/compose/ui/ui-tooling/build.gradle
@@ -36,6 +36,7 @@
 
         api(project(":compose:runtime:runtime"))
         api(project(":compose:ui:ui"))
+        api(project(":compose:ui:ui-tooling-preview"))
         api(project(":compose:ui:ui-tooling-data"))
         implementation(project(":compose:material:material"))
         implementation(project(":activity:activity-compose"))
@@ -77,6 +78,7 @@
 
                 api(project(":compose:runtime:runtime"))
                 api(project(":compose:ui:ui"))
+                api(project(":compose:ui:ui-tooling-preview"))
                 api(project(":compose:ui:ui-tooling-data"))
                 implementation(project(":compose:material:material"))
                 implementation(project(":activity:activity-compose"))
diff --git a/compose/ui/ui-tooling/lint-baseline.xml b/compose/ui/ui-tooling/lint-baseline.xml
index 5f2bf52..38b8dce8 100644
--- a/compose/ui/ui-tooling/lint-baseline.xml
+++ b/compose/ui/ui-tooling/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.1.0-alpha01" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha01">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
@@ -7,7 +7,7 @@
         errorLine1="        return invoke(instance, *arguments)"
         errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/jvmMain/kotlin/androidx/compose/ui/tooling/preview/CommonPreviewUtils.kt"
+            file="src/jvmMain/kotlin/androidx/compose/ui/tooling/CommonPreviewUtils.kt"
             line="149"
             column="16"/>
     </issue>
@@ -18,7 +18,7 @@
         errorLine1="                val result = designInfoMethod.invoke("
         errorLine2="                             ^">
         <location
-            file="src/androidMain/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapter.kt"
+            file="src/androidMain/kotlin/androidx/compose/ui/tooling/ComposeViewAdapter.kt"
             line="385"
             column="30"/>
     </issue>
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/AndroidManifest.xml b/compose/ui/ui-tooling/src/androidAndroidTest/AndroidManifest.xml
index faa9b77..7216778 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/AndroidManifest.xml
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/AndroidManifest.xml
@@ -21,8 +21,9 @@
         android:debuggable="true"
         tools:ignore="HardcodedDebugMode"
         tools:replace="android:debuggable">
-        <activity android:name="androidx.compose.ui.tooling.preview.ComposeViewAdapterTest$Companion$TestActivity"
-            android:theme="@style/TestTheme"/>
+        <activity
+            android:name="androidx.compose.ui.tooling.ComposeViewAdapterTest$Companion$TestActivity"
+            android:theme="@style/TestTheme" />
         <activity android:name="androidx.compose.ui.tooling.TestActivity"
             android:theme="@style/TestTheme"/>
     </application>
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapterTest.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ComposeViewAdapterTest.kt
similarity index 97%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapterTest.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ComposeViewAdapterTest.kt
index a8c2933..ac5f09d 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapterTest.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ComposeViewAdapterTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,14 +14,13 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.animation.core.InternalAnimationApi
-import androidx.compose.ui.tooling.compositionCount
 import androidx.compose.ui.tooling.data.UiToolingDataApi
-import androidx.compose.ui.tooling.preview.animation.PreviewAnimationClock
+import androidx.compose.ui.tooling.animation.PreviewAnimationClock
 import androidx.compose.ui.tooling.test.R
 import androidx.test.filters.LargeTest
 import androidx.test.filters.MediumTest
@@ -348,7 +347,7 @@
         expectedResult: String
     ) {
         initAndWaitForDraw(
-            "androidx.compose.ui.tooling.preview.DesignInfoProviderComposableKt",
+            "androidx.compose.ui.tooling.DesignInfoProviderComposableKt",
             methodName,
             customArgument
         )
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/DesignInfoProviderComposable.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/DesignInfoProviderComposable.kt
similarity index 94%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/DesignInfoProviderComposable.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/DesignInfoProviderComposable.kt
index ec9575e..806dd6c 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/DesignInfoProviderComposable.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/DesignInfoProviderComposable.kt
@@ -14,11 +14,12 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import androidx.compose.material.Scaffold
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
+import androidx.compose.ui.tooling.preview.Preview
 
 @Composable
 fun DesignInfoProviderA() {
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ParameterProviderComposable.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ParameterProviderComposable.kt
similarity index 90%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ParameterProviderComposable.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ParameterProviderComposable.kt
index 0c91f65..9412cf0 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/ParameterProviderComposable.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/ParameterProviderComposable.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import androidx.compose.material.Button
 import androidx.compose.material.Colors
@@ -23,6 +23,7 @@
 import androidx.compose.material.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.tooling.preview.Preview
 
 @Preview
 @Composable
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewActivityTest.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewActivityTest.kt
similarity index 96%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewActivityTest.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewActivityTest.kt
index fba78f7..49c6d5c 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewActivityTest.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewActivityTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.content.Intent
 import android.view.ViewGroup
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterTest.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewParameterTest.kt
similarity index 87%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterTest.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewParameterTest.kt
index 0913689..61591d4 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterTest.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/PreviewParameterTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import androidx.compose.material.Colors
 import androidx.compose.material.darkColors
@@ -48,7 +48,7 @@
     fun loremIpsumProvider() {
         activityTestRule.runOnUiThread {
             composeViewAdapter.init(
-                "androidx.compose.ui.tooling.preview.ParameterProviderComposableKt",
+                "androidx.compose.ui.tooling.ParameterProviderComposableKt",
                 "OneStringParameter",
                 parameterProvider = LoremIpsum::class.java,
                 debugViewInfos = true
@@ -62,7 +62,7 @@
     fun checkIntParameterProvider() {
         activityTestRule.runOnUiThread {
             composeViewAdapter.init(
-                "androidx.compose.ui.tooling.preview.ParameterProviderComposableKt",
+                "androidx.compose.ui.tooling.ParameterProviderComposableKt",
                 "OneIntParameter",
                 parameterProvider = MyListProvider::class.java,
                 debugViewInfos = true
@@ -78,7 +78,7 @@
     fun checkColorsProvider() {
         activityTestRule.runOnUiThread {
             composeViewAdapter.init(
-                "androidx.compose.ui.tooling.preview.ParameterProviderComposableKt",
+                "androidx.compose.ui.tooling.ParameterProviderComposableKt",
                 "ColorsParameter",
                 parameterProvider = MyColorsProvider::class.java,
                 debugViewInfos = true
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClockTest.kt b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClockTest.kt
similarity index 99%
rename from compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClockTest.kt
rename to compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClockTest.kt
index a661cc7..e35c2ca 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClockTest.kt
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClockTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview.animation
+package androidx.compose.ui.tooling.animation
 
 import androidx.compose.animation.animateColor
 import androidx.compose.animation.core.InternalAnimationApi
diff --git a/compose/ui/ui-tooling/src/androidAndroidTest/res/layout/compose_adapter_test.xml b/compose/ui/ui-tooling/src/androidAndroidTest/res/layout/compose_adapter_test.xml
index 8adabed..6673e1e 100644
--- a/compose/ui/ui-tooling/src/androidAndroidTest/res/layout/compose_adapter_test.xml
+++ b/compose/ui/ui-tooling/src/androidAndroidTest/res/layout/compose_adapter_test.xml
@@ -15,7 +15,7 @@
   limitations under the License.
   -->
 
-<androidx.compose.ui.tooling.preview.ComposeViewAdapter
+<androidx.compose.ui.tooling.ComposeViewAdapter
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/compose_view_adapter"
     android:orientation="vertical" android:layout_width="match_parent"
diff --git a/compose/ui/ui-tooling/src/androidMain/AndroidManifest.xml b/compose/ui/ui-tooling/src/androidMain/AndroidManifest.xml
index 0a785be..aef36de 100644
--- a/compose/ui/ui-tooling/src/androidMain/AndroidManifest.xml
+++ b/compose/ui/ui-tooling/src/androidMain/AndroidManifest.xml
@@ -18,7 +18,7 @@
 
     <application>
         <activity
-            android:name=".preview.PreviewActivity"
+            android:name=".PreviewActivity"
             android:exported="true" />
     </application>
 
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapter.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/ComposeViewAdapter.kt
similarity index 98%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapter.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/ComposeViewAdapter.kt
index 4dabeea..baf13ac 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/ComposeViewAdapter.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/ComposeViewAdapter.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.annotation.SuppressLint
 import android.content.Context
@@ -47,14 +47,14 @@
 import androidx.compose.ui.platform.ComposeView
 import androidx.compose.ui.platform.LocalFontLoader
 import androidx.compose.ui.platform.ViewRootForTest
-import androidx.compose.ui.tooling.CompositionDataRecord
-import androidx.compose.ui.tooling.Inspectable
+import androidx.compose.ui.tooling.CommonPreviewUtils.invokeComposableViaReflection
 import androidx.compose.ui.tooling.data.Group
 import androidx.compose.ui.tooling.data.SourceLocation
 import androidx.compose.ui.tooling.data.UiToolingDataApi
 import androidx.compose.ui.tooling.data.asTree
-import androidx.compose.ui.tooling.preview.animation.PreviewAnimationClock
-import androidx.compose.ui.tooling.preview.CommonPreviewUtils.invokeComposableViaReflection
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.tooling.preview.PreviewParameterProvider
+import androidx.compose.ui.tooling.animation.PreviewAnimationClock
 import androidx.compose.ui.unit.IntRect
 import androidx.core.app.ActivityOptionsCompat
 import androidx.lifecycle.Lifecycle
@@ -68,7 +68,7 @@
 import androidx.savedstate.ViewTreeSavedStateRegistryOwner
 import java.lang.reflect.Method
 
-const val TOOLS_NS_URI = "http://schemas.android.com/tools"
+private const val TOOLS_NS_URI = "http://schemas.android.com/tools"
 private const val DESIGN_INFO_METHOD = "getDesignInfo"
 
 private val emptyContent: @Composable () -> Unit = @Composable {}
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/LayoutlibFontResourceLoader.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/LayoutlibFontResourceLoader.kt
similarity index 93%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/LayoutlibFontResourceLoader.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/LayoutlibFontResourceLoader.kt
index 0c85551..90af339 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/LayoutlibFontResourceLoader.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/LayoutlibFontResourceLoader.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.content.Context
 import android.graphics.Typeface
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewActivity.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewActivity.kt
similarity index 96%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewActivity.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewActivity.kt
index 6b2fd1b..87f7446 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewActivity.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewActivity.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.content.pm.ApplicationInfo
 import android.os.Bundle
@@ -27,7 +27,7 @@
 import androidx.compose.runtime.currentComposer
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
-import androidx.compose.ui.tooling.preview.CommonPreviewUtils.invokeComposableViaReflection
+import androidx.compose.ui.tooling.CommonPreviewUtils.invokeComposableViaReflection
 
 /**
  * Activity used to run `@Composable` previews from Android Studio.
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewUtils.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewUtils.kt
similarity index 95%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewUtils.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewUtils.kt
index 0637d9a..902dccc 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/PreviewUtils.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/PreviewUtils.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2021 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.
@@ -14,9 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import android.util.Log
+import androidx.compose.ui.tooling.preview.PreviewParameterProvider
 
 /**
  * Tries to find the [Class] of the [PreviewParameterProvider] corresponding to the given FQN.
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/ComposeAnimationParser.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/ComposeAnimationParser.kt
similarity index 96%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/ComposeAnimationParser.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/ComposeAnimationParser.kt
index 966dfc9..8421a8a8 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/ComposeAnimationParser.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/ComposeAnimationParser.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview.animation
+package androidx.compose.ui.tooling.animation
 
 import android.util.Log
 import androidx.compose.animation.core.Transition
diff --git a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClock.kt b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClock.kt
similarity index 99%
rename from compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClock.kt
rename to compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClock.kt
index 8541ec1..cb1d1fe 100644
--- a/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/preview/animation/PreviewAnimationClock.kt
+++ b/compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/animation/PreviewAnimationClock.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview.animation
+package androidx.compose.ui.tooling.animation
 
 import android.util.Log
 import androidx.annotation.VisibleForTesting
diff --git a/compose/ui/ui-tooling/src/desktopMain/kotlin/androidx/compose/desktop/ui/tooling/preview/runtime/PreviewRunner.kt b/compose/ui/ui-tooling/src/desktopMain/kotlin/androidx/compose/desktop/ui/tooling/preview/runtime/PreviewRunner.kt
index 4100ec56..6f49adf 100644
--- a/compose/ui/ui-tooling/src/desktopMain/kotlin/androidx/compose/desktop/ui/tooling/preview/runtime/PreviewRunner.kt
+++ b/compose/ui/ui-tooling/src/desktopMain/kotlin/androidx/compose/desktop/ui/tooling/preview/runtime/PreviewRunner.kt
@@ -19,7 +19,7 @@
 import androidx.compose.desktop.Window
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.currentComposer
-import androidx.compose.ui.tooling.preview.CommonPreviewUtils.invokeComposableViaReflection
+import androidx.compose.ui.tooling.CommonPreviewUtils.invokeComposableViaReflection
 
 internal class PreviewRunner {
     companion object {
diff --git a/compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/preview/CommonPreviewUtils.kt b/compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/CommonPreviewUtils.kt
similarity index 99%
rename from compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/preview/CommonPreviewUtils.kt
rename to compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/CommonPreviewUtils.kt
index 2f114ae..1a30e4e 100644
--- a/compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/preview/CommonPreviewUtils.kt
+++ b/compose/ui/ui-tooling/src/jvmMain/kotlin/androidx/compose/ui/tooling/CommonPreviewUtils.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.compose.ui.tooling.preview
+package androidx.compose.ui.tooling
 
 import androidx.compose.runtime.Composer
 import java.lang.reflect.Method
diff --git a/compose/ui/ui/lint-baseline.xml b/compose/ui/ui/lint-baseline.xml
new file mode 100644
index 0000000..e85b753
--- /dev/null
+++ b/compose/ui/ui/lint-baseline.xml
@@ -0,0 +1,543 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `waitAndScreenShot`"
+        errorLine1="        val bitmap = rule.waitAndScreenShot()"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/AlphaTest.kt"
+            line="231"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `RenderNodeApi29`"
+        errorLine1="        RenderNodeApi29(AndroidComposeView(activity)).apply {"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt"
+            line="224"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `dumpRenderNodeData`"
+        errorLine1="        }.dumpRenderNodeData().cameraDistance == cameraDistance"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt"
+            line="226"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `RenderNodeApi23`"
+        errorLine1="        RenderNodeApi23(AndroidComposeView(activity)).apply {"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt"
+            line="231"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `dumpRenderNodeData`"
+        errorLine1="        }.dumpRenderNodeData().cameraDistance == -cameraDistance // Camera distance is negative"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt"
+            line="233"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `waitAndScreenShot`"
+        errorLine1="    val bitmap = waitAndScreenShot()"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt"
+            line="3707"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `AndroidAutofill`"
+        errorLine1="        androidAutofill = AndroidAutofill(view, autofillTree)"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPerformAutofillTest.kt"
+            line="46"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.view.autofill.AutofillValue#forText`"
+        errorLine1="            .apply { append(autofillNode.id, AutofillValue.forText(expectedValue)) }"
+        errorLine2="                                                           ~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPerformAutofillTest.kt"
+            line="62"
+            column="60"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `performAutofill`"
+        errorLine1="        androidAutofill.performAutofill(autofillValues)"
+        errorLine2="                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPerformAutofillTest.kt"
+            line="65"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.view.autofill.AutofillValue#forText`"
+        errorLine1="            .apply { append(autofillNode.id, AutofillValue.forText(expectedValue)) }"
+        errorLine2="                                                           ~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPerformAutofillTest.kt"
+            line="84"
+            column="60"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `performAutofill`"
+        errorLine1="        androidAutofill.performAutofill(autofillValues)"
+        errorLine2="                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPerformAutofillTest.kt"
+            line="87"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `AndroidAutofill`"
+        errorLine1="        androidAutofill = AndroidAutofill(view, autofillTree)"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="50"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="        val viewStructure: ViewStructure = FakeAndroidViewStructure()"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="57"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `populateViewStructure`"
+        errorLine1="        androidAutofill.populateViewStructure(viewStructure)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="60"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.view.ViewStructure#getChildCount`"
+        errorLine1="        assertThat(viewStructure.childCount).isEqualTo(0)"
+        errorLine2="                                 ~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="63"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="        val viewStructure = FakeAndroidViewStructure()"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="77"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `populateViewStructure`"
+        errorLine1="        androidAutofill.populateViewStructure(viewStructure)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="78"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="            FakeAndroidViewStructure().apply {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="82"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="                    FakeAndroidViewStructure().apply {"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="84"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillType`"
+        errorLine1="                        setAutofillType(View.AUTOFILL_TYPE_TEXT)"
+        errorLine2="                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="87"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillHints`"
+        errorLine1="                        setAutofillHints(arrayOf(AUTOFILL_HINT_PERSON_NAME))"
+        errorLine2="                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="88"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setDimens`"
+        errorLine1="                        setDimens(0, 0, 0, 0, 0, 0)"
+        errorLine2="                        ~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="89"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="        val viewStructure: ViewStructure = FakeAndroidViewStructure()"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="114"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `populateViewStructure`"
+        errorLine1="        androidAutofill.populateViewStructure(viewStructure)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="115"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="            FakeAndroidViewStructure().apply {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="119"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="                    FakeAndroidViewStructure().apply {"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="121"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillType`"
+        errorLine1="                        setAutofillType(View.AUTOFILL_TYPE_TEXT)"
+        errorLine2="                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="124"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillHints`"
+        errorLine1="                        setAutofillHints(arrayOf(AUTOFILL_HINT_PERSON_NAME))"
+        errorLine2="                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="125"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setDimens`"
+        errorLine1="                        setDimens(0, 0, 0, 0, 0, 0)"
+        errorLine2="                        ~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="126"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `FakeAndroidViewStructure`"
+        errorLine1="                    FakeAndroidViewStructure().apply {"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="130"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillType`"
+        errorLine1="                        setAutofillType(View.AUTOFILL_TYPE_TEXT)"
+        errorLine2="                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="133"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setAutofillHints`"
+        errorLine1="                        setAutofillHints(arrayOf(View.AUTOFILL_HINT_EMAIL_ADDRESS))"
+        errorLine2="                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="134"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `setDimens`"
+        errorLine1="                        setDimens(0, 0, 0, 0, 0, 0)"
+        errorLine2="                        ~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AndroidPopulateViewStructureTest.kt"
+            line="135"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.content.Context#getSystemService`"
+        errorLine1="            activity.getSystemService(AutofillManager::class.java)"
+        errorLine2="                     ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="60"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 21): `android.view.autofill.AutofillManager`"
+        errorLine1="            activity.getSystemService(AutofillManager::class.java)"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="60"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `AndroidAutofill`"
+        errorLine1="        androidAutofill = AndroidAutofill(view, autofillTree)"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="63"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.view.View#getImportantForAutofill`"
+        errorLine1="        assertThat(view.importantForAutofill).isEqualTo(View.IMPORTANT_FOR_AUTOFILL_YES)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="74"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `requestAutofillForNode`"
+        errorLine1="        androidAutofill.requestAutofillForNode(autofillNode)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="84"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `requestAutofillForNode`"
+        errorLine1="        androidAutofill.requestAutofillForNode(autofillNode)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="101"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `cancelAutofillForNode`"
+        errorLine1="        androidAutofill.cancelAutofillForNode(autofillNode)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/kotlin/androidx/compose/ui/autofill/AutofillNodeTest.kt"
+            line="110"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `waitAndScreenShot`"
+        errorLine1="        val bitmap = rule.waitAndScreenShot()"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/ClipDrawTest.kt"
+            line="524"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `android.os.Parcel#readBoolean`"
+        errorLine1="        parcel?.readBoolean()"
+        errorLine2="                ~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/platform/DisposableSaveableStateRegistryTest.kt"
+            line="184"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `android.os.Parcel#readBoolean`"
+        errorLine1="        parcel?.readBoolean()"
+        errorLine2="                ~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/platform/DisposableSaveableStateRegistryTest.kt"
+            line="184"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 21): `android.os.Parcel#writeBoolean`"
+        errorLine1="        parcel.writeBoolean(true)"
+        errorLine2="               ~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/platform/DisposableSaveableStateRegistryTest.kt"
+            line="188"
+            column="16"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `captureToImage`"
+        errorLine1="    fun SemanticsNodeInteraction.captureToBitmap() = captureToImage().asAndroidBitmap()"
+        errorLine2="                                                     ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt"
+            line="638"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/InvalidatingNotPlacedChildTest.kt"
+            line="378"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `captureToImage`"
+        errorLine1="    val bitmap = onRoot().captureToImage()"
+        errorLine2="                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/PainterModifierTest.kt"
+            line="720"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `waitAndScreenShot`"
+        errorLine1="        val bitmap = rule.waitAndScreenShot()"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/draw/ShadowTest.kt"
+            line="342"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `captureToImage`"
+        errorLine1="        val bitmap = rule.onRoot().captureToImage().asAndroidBitmap()"
+        errorLine2="                                   ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/vector/VectorTest.kt"
+            line="481"
+            column="36"/>
+    </issue>
+
+</issues>
diff --git a/concurrent/futures/lint-baseline.xml b/concurrent/futures/lint-baseline.xml
index e3e9c00..1e1f597 100644
--- a/concurrent/futures/lint-baseline.xml
+++ b/concurrent/futures/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/contentaccess/contentaccess-entities/lint-baseline.xml b/contentaccess/contentaccess-entities/lint-baseline.xml
deleted file mode 100644
index cac8848..0000000
--- a/contentaccess/contentaccess-entities/lint-baseline.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DATE_TAKEN`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.DATE_TAKEN)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="204"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_ID`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_ID)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="208"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_DISPLAY_NAME`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_DISPLAY_NAME)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="212"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#ORIENTATION`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.ORIENTATION)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="216"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DATE_TAKEN`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.DATE_TAKEN)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="403"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_ID`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_ID)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="407"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#BUCKET_DISPLAY_NAME`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.BUCKET_DISPLAY_NAME)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="411"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DURATION`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.DURATION)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="420"
-            column="24"/>
-    </issue>
-
-    <issue
-        id="InlinedApi"
-        message="Field requires API level 29 (current min is 14): `android.provider.MediaStore.MediaColumns#DURATION`"
-        errorLine1="        @ContentColumn(android.provider.MediaStore.MediaColumns.DURATION)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/kotlin/androidx/contentaccess/entities/ContentAccessMediaStore.kt"
-            line="581"
-            column="24"/>
-    </issue>
-
-</issues>
diff --git a/contentaccess/integration-tests/testapp/lint-baseline.xml b/contentaccess/integration-tests/testapp/lint-baseline.xml
deleted file mode 100644
index f4519bf..0000000
--- a/contentaccess/integration-tests/testapp/lint-baseline.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-alpha15" client="gradle" variant="debug" version="4.2.0-alpha15">
-
-    <issue
-        id="ScopedStorage"
-        message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 10+"
-        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; />"
-        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="20"
-            column="36"/>
-    </issue>
-
-    <issue
-        id="AllowBackup"
-        message="On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html"
-        errorLine1="    &lt;application />"
-        errorLine2="     ~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="24"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="AllowBackup"
-        message="Should explicitly set `android:allowBackup` to `true` or `false` (it&apos;s `true` by default, and that can have some security implications for the application&apos;s data)"
-        errorLine1="    &lt;application />"
-        errorLine2="     ~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="24"
-            column="6"/>
-    </issue>
-
-    <issue
-        id="MissingApplicationIcon"
-        message="Should explicitly set `android:icon`, there is no default"
-        errorLine1="    &lt;application />"
-        errorLine2="     ~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="24"
-            column="6"/>
-    </issue>
-
-</issues>
diff --git a/contentpager/contentpager/lint-baseline.xml b/contentpager/contentpager/lint-baseline.xml
index cbcf5fe..16ff690 100644
--- a/contentpager/contentpager/lint-baseline.xml
+++ b/contentpager/contentpager/lint-baseline.xml
@@ -1,5 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.database.AbstractCursor#setExtras`"
+        errorLine1="        c.setExtras(extras);"
+        errorLine2="          ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/contentpager/content/TestContentProvider.java"
+            line="245"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 15 (current min is 14): `new android.database.CursorWindow`"
+        errorLine1="            setWindow(new CursorWindow(&quot;stevie&quot;));"
+        errorLine2="                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/contentpager/content/TestContentProvider.java"
+            line="377"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `android.database.AbstractCursor#setExtras`"
+        errorLine1="        cursor.setExtras(extras);"
+        errorLine2="               ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/contentpager/content/TestQueryCallback.java"
+            line="51"
+            column="16"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
diff --git a/coordinatorlayout/coordinatorlayout/lint-baseline.xml b/coordinatorlayout/coordinatorlayout/lint-baseline.xml
index be43f6b..a8c4079 100644
--- a/coordinatorlayout/coordinatorlayout/lint-baseline.xml
+++ b/coordinatorlayout/coordinatorlayout/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.view.MotionEvent#actionToString`"
+        errorLine1="            return &quot;MotionEvent#getAction() == &quot; + MotionEvent.actionToString(mAction);"
+        errorLine2="                                                               ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTouchEventTest.java"
+            line="561"
+            column="64"/>
+    </issue>
 
     <issue
         id="UnknownNullness"
diff --git a/coordinatorlayout/coordinatorlayout/proguard-rules.pro b/coordinatorlayout/coordinatorlayout/proguard-rules.pro
index 3705ed2..8e70bc6 100644
--- a/coordinatorlayout/coordinatorlayout/proguard-rules.pro
+++ b/coordinatorlayout/coordinatorlayout/proguard-rules.pro
@@ -19,4 +19,7 @@
 }
 
 # Make sure we keep annotations for CoordinatorLayout's DefaultBehavior and ViewPager's DecorView
--keepattributes *Annotation*
+-keepattributes AnnotationDefault,
+                RuntimeVisibleAnnotations,
+                RuntimeVisibleParameterAnnotations,
+                RuntimeVisibleTypeAnnotations
diff --git a/core/core-animation/lint-baseline.xml b/core/core-animation/lint-baseline.xml
index 13d37ce..7ea9925 100644
--- a/core/core-animation/lint-baseline.xml
+++ b/core/core-animation/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ResourceType"
@@ -14,7 +14,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        Object value = convertBack(mGetter.invoke(target));"
         errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -25,7 +25,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                Object value = convertBack(mGetter.invoke(target));"
         errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -36,7 +36,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                mSetter.invoke(target, mTmpValueArray);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -47,7 +47,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                mSetter.invoke(target, mTmpValueArray);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -58,7 +58,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mSetter.invoke(target, mTmpValueArray);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -69,7 +69,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mSetter.invoke(target, boxedValues);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -80,7 +80,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mSetter.invoke(target, boxedValues);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/core/core-appdigest/lint-baseline.xml b/core/core-appdigest/lint-baseline.xml
new file mode 100644
index 0000000..f787484e
--- /dev/null
+++ b/core/core-appdigest/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 24): `android.app.UiAutomation#adoptShellPermissionIdentity`"
+        errorLine1="            getUiAutomation().adoptShellPermissionIdentity(Manifest.permission.INSTALL_PACKAGES);"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java"
+            line="379"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 24): `android.app.UiAutomation#dropShellPermissionIdentity`"
+        errorLine1="                getUiAutomation().dropShellPermissionIdentity();"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/appdigest/ChecksumsTest.java"
+            line="395"
+            column="35"/>
+    </issue>
+
+</issues>
diff --git a/core/core-google-shortcuts/lint-baseline.xml b/core/core-google-shortcuts/lint-baseline.xml
new file mode 100644
index 0000000..cf82732
--- /dev/null
+++ b/core/core-google-shortcuts/lint-baseline.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.Collection#stream`"
+        errorLine1="                actions.stream().map(Object::toString).collect(Collectors.toList());"
+        errorLine2="                        ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/ShortcutInfoChangeListenerImplTest.java"
+            line="274"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.stream.Collectors#toList`"
+        errorLine1="                actions.stream().map(Object::toString).collect(Collectors.toList());"
+        errorLine2="                                                                          ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/ShortcutInfoChangeListenerImplTest.java"
+            line="274"
+            column="75"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.stream.Stream#collect`"
+        errorLine1="                actions.stream().map(Object::toString).collect(Collectors.toList());"
+        errorLine2="                                                       ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/ShortcutInfoChangeListenerImplTest.java"
+            line="274"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.stream.Stream#map`"
+        errorLine1="                actions.stream().map(Object::toString).collect(Collectors.toList());"
+        errorLine2="                                 ~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/ShortcutInfoChangeListenerImplTest.java"
+            line="274"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast to `Collector` requires API level 24 (current min is 21)"
+        errorLine1="                actions.stream().map(Object::toString).collect(Collectors.toList());"
+        errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/ShortcutInfoChangeListenerImplTest.java"
+            line="274"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.Collection#stream`"
+        errorLine1="        assertThat(resolveInfos.stream().anyMatch(resolveInfo ->"
+        errorLine2="                                ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/TrampolineActivityTest.java"
+            line="136"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 21): `java.util.stream.Stream#anyMatch`"
+        errorLine1="        assertThat(resolveInfos.stream().anyMatch(resolveInfo ->"
+        errorLine2="                                         ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/google/shortcuts/TrampolineActivityTest.java"
+            line="136"
+            column="42"/>
+    </issue>
+
+</issues>
diff --git a/core/core-ktx/lint-baseline.xml b/core/core-ktx/lint-baseline.xml
index 718509e..0a1170e 100644
--- a/core/core-ktx/lint-baseline.xml
+++ b/core/core-ktx/lint-baseline.xml
@@ -1,5 +1,126 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.util.SparseArray#contains`"
+        errorLine1="        assertFalse(1 in array)"
+        errorLine2="                    ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/util/SparseArrayTest.kt"
+            line="42"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.util.SparseArray#contains`"
+        errorLine1="        assertTrue(1 in array)"
+        errorLine2="                   ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/util/SparseArrayTest.kt"
+            line="44"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.util.SparseArray#contains`"
+        errorLine1="        assertFalse(2 in array)"
+        errorLine2="                    ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/util/SparseArrayTest.kt"
+            line="52"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.util.SparseArray#contains`"
+        errorLine1="        assertTrue(2 in array)"
+        errorLine2="                   ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/util/SparseArrayTest.kt"
+            line="55"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `updatePaddingRelative`"
+        errorLine1="        view.updatePaddingRelative(start = 10, end = 20)"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="142"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#getPaddingStart`"
+        errorLine1="        assertEquals(10, view.paddingStart)"
+        errorLine2="                              ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="143"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#getPaddingEnd`"
+        errorLine1="        assertEquals(20, view.paddingEnd)"
+        errorLine2="                              ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="145"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#setPaddingRelative`"
+        errorLine1="        view.setPaddingRelative(10, 20, 30, 40)"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="151"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `updatePaddingRelative`"
+        errorLine1="        view.updatePaddingRelative()"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="152"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#getPaddingStart`"
+        errorLine1="        assertEquals(10, view.paddingStart)"
+        errorLine2="                              ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="153"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#getPaddingEnd`"
+        errorLine1="        assertEquals(30, view.paddingEnd)"
+        errorLine2="                              ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/ViewTest.kt"
+            line="155"
+            column="31"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
diff --git a/core/core/api/current.txt b/core/core/api/current.txt
index ed6e107..fc6c7cd 100644
--- a/core/core/api/current.txt
+++ b/core/core/api/current.txt
@@ -988,16 +988,21 @@
   }
 
   public final class IntentCompat {
-    method public static boolean areUnusedAppRestrictionsAllowlisted(android.content.Context);
-    method public static boolean areUnusedAppRestrictionsAvailable(android.content.Context);
     method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+    method public static int getUnusedAppRestrictionsStatus(android.content.Context);
     method public static android.content.Intent makeMainSelectorActivity(String, String);
     field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String ACTION_UNUSED_APP_RESTRICTIONS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+    field public static final int APP_HIBERNATION_DISABLED = 5; // 0x5
+    field public static final int APP_HIBERNATION_ENABLED = 4; // 0x4
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
     field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+    field public static final int PERMISSION_REVOCATION_DISABLED = 3; // 0x3
+    field public static final int PERMISSION_REVOCATION_ENABLED = 2; // 0x2
+    field public static final int UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE = 1; // 0x1
+    field public static final int UNUSED_APP_RESTRICTION_STATUS_UNKNOWN = 0; // 0x0
   }
 
   public final class LocusIdCompat {
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/public_plus_experimental_current.txt
index 5153500..5ae6f44 100644
--- a/core/core/api/public_plus_experimental_current.txt
+++ b/core/core/api/public_plus_experimental_current.txt
@@ -988,16 +988,21 @@
   }
 
   public final class IntentCompat {
-    method public static boolean areUnusedAppRestrictionsAllowlisted(android.content.Context);
-    method public static boolean areUnusedAppRestrictionsAvailable(android.content.Context);
     method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+    method public static int getUnusedAppRestrictionsStatus(android.content.Context);
     method public static android.content.Intent makeMainSelectorActivity(String, String);
     field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String ACTION_UNUSED_APP_RESTRICTIONS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+    field public static final int APP_HIBERNATION_DISABLED = 5; // 0x5
+    field public static final int APP_HIBERNATION_ENABLED = 4; // 0x4
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
     field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+    field public static final int PERMISSION_REVOCATION_DISABLED = 3; // 0x3
+    field public static final int PERMISSION_REVOCATION_ENABLED = 2; // 0x2
+    field public static final int UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE = 1; // 0x1
+    field public static final int UNUSED_APP_RESTRICTION_STATUS_UNKNOWN = 0; // 0x0
   }
 
   public final class LocusIdCompat {
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index 3cea1d3..c7814ac8 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -1091,16 +1091,21 @@
   }
 
   public final class IntentCompat {
-    method public static boolean areUnusedAppRestrictionsAllowlisted(android.content.Context);
-    method public static boolean areUnusedAppRestrictionsAvailable(android.content.Context);
     method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+    method public static int getUnusedAppRestrictionsStatus(android.content.Context);
     method public static android.content.Intent makeMainSelectorActivity(String, String);
     field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
     field public static final String ACTION_UNUSED_APP_RESTRICTIONS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+    field public static final int APP_HIBERNATION_DISABLED = 5; // 0x5
+    field public static final int APP_HIBERNATION_ENABLED = 4; // 0x4
     field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
     field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
     field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+    field public static final int PERMISSION_REVOCATION_DISABLED = 3; // 0x3
+    field public static final int PERMISSION_REVOCATION_ENABLED = 2; // 0x2
+    field public static final int UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE = 1; // 0x1
+    field public static final int UNUSED_APP_RESTRICTION_STATUS_UNKNOWN = 0; // 0x0
   }
 
   public final class LocusIdCompat {
diff --git a/core/core/lint-baseline.xml b/core/core/lint-baseline.xml
index 39e9183..26283d0 100644
--- a/core/core/lint-baseline.xml
+++ b/core/core/lint-baseline.xml
@@ -1,5 +1,1138 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#of`"
+        errorLine1="                return Optional.of(modeCompat);"
+        errorLine2="                                ~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="74"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#empty`"
+        errorLine1="        return Optional.empty();"
+        errorLine2="                        ~~~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="77"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 17 (current min is 14): `android.hardware.display.DisplayManager`"
+        errorLine1="        mDisplayManager = (DisplayManager) mContext.getSystemService(DISPLAY_SERVICE);"
+        errorLine2="                           ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="84"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.hardware.display.DisplayManager#getDisplay`"
+        errorLine1="        mDefaultDisplay = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY);"
+        errorLine2="                                          ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="85"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#get`"
+        errorLine1="                findNativeMode(DisplayCompat.getSupportedModes(mContext, mDefaultDisplay)).get();"
+        errorLine2="                                                                                           ~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="112"
+            column="92"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.hardware.display.DisplayManager#getDisplay`"
+        errorLine1="        Display secondDisplay = mDisplayManager.getDisplay(secondDisplayId);"
+        errorLine2="                                                ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="123"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#get`"
+        errorLine1="                findNativeMode(DisplayCompat.getSupportedModes(mContext, secondDisplay)).get();"
+        errorLine2="                                                                                         ~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="130"
+            column="90"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#get`"
+        errorLine1="                findNativeMode(DisplayCompat.getSupportedModes(mContext, mDefaultDisplay)).get();"
+        errorLine2="                                                                                           ~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="145"
+            column="92"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Optional#get`"
+        errorLine1="                findNativeMode(DisplayCompat.getSupportedModes(mContext, mDefaultDisplay)).get();"
+        errorLine2="                                                                                           ~~~">
+        <location
+            file="src/test/java/androidx/core/view/DisplayCompatTest.java"
+            line="166"
+            column="92"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.lang.AutoCloseable#close`"
+        errorLine1="                closeable.close();"
+        errorLine2="                          ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/FileProviderTest.java"
+            line="466"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        resolveInfo.providerInfo = new ProviderInfo();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/IntentCompatTest.java"
+            line="217"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        resolveInfo.providerInfo.name = &quot;Name needed to keep toString() happy :)&quot;;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/IntentCompatTest.java"
+            line="218"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getImportance`"
+        errorLine1="            boolean equality = nc1.getImportance() == nc2.getImportance()"
+        errorLine2="                                   ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="175"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getImportance`"
+        errorLine1="            boolean equality = nc1.getImportance() == nc2.getImportance()"
+        errorLine2="                                                          ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="175"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#canBypassDnd`"
+        errorLine1="                    &amp;&amp; nc1.canBypassDnd() == nc2.canBypassDnd()"
+        errorLine2="                           ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="176"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#canBypassDnd`"
+        errorLine1="                    &amp;&amp; nc1.canBypassDnd() == nc2.canBypassDnd()"
+        errorLine2="                                                 ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="176"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getLockscreenVisibility`"
+        errorLine1="                    &amp;&amp; nc1.getLockscreenVisibility() == nc2.getLockscreenVisibility()"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="177"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getLockscreenVisibility`"
+        errorLine1="                    &amp;&amp; nc1.getLockscreenVisibility() == nc2.getLockscreenVisibility()"
+        errorLine2="                                                            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="177"
+            column="61"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getLightColor`"
+        errorLine1="                    &amp;&amp; nc1.getLightColor() == nc2.getLightColor()"
+        errorLine2="                           ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="178"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getLightColor`"
+        errorLine1="                    &amp;&amp; nc1.getLightColor() == nc2.getLightColor()"
+        errorLine2="                                                  ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="178"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getId(), nc2.getId())"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="179"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getId`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getId(), nc2.getId())"
+        errorLine2="                                          ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="179"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getId`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getId(), nc2.getId())"
+        errorLine2="                                                       ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="179"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getName(), nc2.getName())"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="180"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getName`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getName(), nc2.getName())"
+        errorLine2="                                          ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="180"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getName`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getName(), nc2.getName())"
+        errorLine2="                                                         ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="180"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getDescription(), nc2.getDescription())"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="181"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getDescription`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getDescription(), nc2.getDescription())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="181"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getDescription`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getDescription(), nc2.getDescription())"
+        errorLine2="                                                                ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="181"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getSound(), nc2.getSound())"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="182"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getSound`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getSound(), nc2.getSound())"
+        errorLine2="                                          ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="182"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getSound`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getSound(), nc2.getSound())"
+        errorLine2="                                                          ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="182"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getVibrationPattern`"
+        errorLine1="                    &amp;&amp; Arrays.equals(nc1.getVibrationPattern(), nc2.getVibrationPattern())"
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="183"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getVibrationPattern`"
+        errorLine1="                    &amp;&amp; Arrays.equals(nc1.getVibrationPattern(), nc2.getVibrationPattern())"
+        errorLine2="                                                                    ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="183"
+            column="69"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getGroup(), nc2.getGroup())"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="184"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getGroup`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getGroup(), nc2.getGroup())"
+        errorLine2="                                          ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="184"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getGroup`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getGroup(), nc2.getGroup())"
+        errorLine2="                                                          ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="184"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getAudioAttributes(), nc2.getAudioAttributes());"
+        errorLine2="                               ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="185"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getAudioAttributes`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getAudioAttributes(), nc2.getAudioAttributes());"
+        errorLine2="                                          ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="185"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getAudioAttributes`"
+        errorLine1="                    &amp;&amp; Objects.equals(nc1.getAudioAttributes(), nc2.getAudioAttributes());"
+        errorLine2="                                                                    ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="185"
+            column="69"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getImportance`"
+        errorLine1="            assertEquals(expected.getImportance(), actual.getImportance());"
+        errorLine2="                                  ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="200"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getLightColor`"
+        errorLine1="            assertEquals(expected.getLightColor(), actual.getLightColor());"
+        errorLine2="                                  ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="201"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getId`"
+        errorLine1="            assertEquals(expected.getId(), actual.getId());"
+        errorLine2="                                  ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="202"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getName`"
+        errorLine1="            assertEquals(expected.getName(), actual.getName());"
+        errorLine2="                                  ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="203"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getDescription`"
+        errorLine1="            assertEquals(expected.getDescription(), actual.getDescription());"
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="204"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getSound`"
+        errorLine1="            assertEquals(expected.getSound(), actual.getSound());"
+        errorLine2="                                  ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="205"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getVibrationPattern`"
+        errorLine1="            assertArrayEquals(expected.getVibrationPattern(), actual.getVibrationPattern());"
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="206"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getGroup`"
+        errorLine1="            assertEquals(expected.getGroup(), actual.getGroup());"
+        errorLine2="                                  ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="207"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannel#getAudioAttributes`"
+        errorLine1="            assertEquals(expected.getAudioAttributes(), actual.getAudioAttributes());"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelCompatTest.java"
+            line="208"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannelGroup#getId`"
+        errorLine1="            assertEquals(expected.getId(), actual.getId());"
+        errorLine2="                                  ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelGroupCompatTest.java"
+            line="113"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `android.app.NotificationChannelGroup#getName`"
+        errorLine1="            assertEquals(expected.getName(), actual.getName());"
+        errorLine2="                                  ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationChannelGroupCompatTest.java"
+            line="114"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `addInvisibleAction`"
+        errorLine1="        Notification nWith = builder.addInvisibleAction(0, &quot;testAction&quot;, null)"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="251"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `getInvisibleActions`"
+        errorLine1="        List&lt;NotificationCompat.Action> actions = NotificationCompat.getInvisibleActions(nWith);"
+        errorLine2="                                                                     ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="253"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 19): `android.graphics.drawable.Icon#getType`"
+        errorLine1="            assertEquals(Icon.TYPE_BITMAP, ((Icon) firstBuiltIcon).getType());"
+        errorLine2="                                                                   ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="1409"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 19): `android.graphics.drawable.Icon#getType`"
+        errorLine1="            assertEquals(Icon.TYPE_BITMAP, ((Icon) rebuiltIcon).getType());"
+        errorLine2="                                                                ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="1424"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `android.graphics.drawable.Icon#getType`"
+        errorLine1="        assertEquals(Icon.TYPE_RESOURCE, firstBuiltIcon.getType());"
+        errorLine2="                                                        ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="1440"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `android.graphics.drawable.Icon#getType`"
+        errorLine1="        assertEquals(Icon.TYPE_RESOURCE, rebuiltIcon.getType());"
+        errorLine2="                                                     ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="1450"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `Builder`"
+        errorLine1="                new NotificationCompat.BubbleMetadata.Builder(shortcutId)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="2017"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `getInvisibleActions`"
+        errorLine1="                NotificationCompat.getInvisibleActions(notification);"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationCompatTest.java"
+            line="2229"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.app.Notification#extras`"
+        errorLine1="        assertBundleEquals(&quot;Notification.extras&quot;, n2.extras, n2.extras)"
+        errorLine2="                                                  ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationTester.kt"
+            line="33"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.app.Notification#extras`"
+        errorLine1="        assertBundleEquals(&quot;Notification.extras&quot;, n2.extras, n2.extras)"
+        errorLine2="                                                             ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/app/NotificationTester.kt"
+            line="33"
+            column="62"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `COLOR_DODGE`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.COLOR_DODGE, null);"
+        errorLine2="                                                      ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="100"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `COLOR_BURN`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.COLOR_BURN, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="101"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `HARD_LIGHT`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.HARD_LIGHT, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="102"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `SOFT_LIGHT`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.SOFT_LIGHT, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="103"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `DIFFERENCE`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.DIFFERENCE, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="104"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `EXCLUSION`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.EXCLUSION, null);"
+        errorLine2="                                                      ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="105"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MULTIPLY`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.MULTIPLY, null);"
+        errorLine2="                                                      ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="108"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `HUE`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.HUE, null);"
+        errorLine2="                                                      ~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="109"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `SATURATION`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.SATURATION, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="110"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `COLOR`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.COLOR, null);"
+        errorLine2="                                                      ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="111"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `LUMINOSITY`"
+        errorLine1="        verifyPorterDuffMatchesCompat(BlendModeCompat.LUMINOSITY, null);"
+        errorLine2="                                                      ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="112"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 14): `android.graphics.Paint#getBlendMode`"
+        errorLine1="            assertEquals(blendMode, p.getBlendMode());"
+        errorLine2="                                      ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/graphics/PaintTest.java"
+            line="146"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setBreakStrategy`"
+        errorLine1="                .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE).build());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="70"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setBreakStrategy`"
+        errorLine1="                .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE)"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="72"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setHyphenationFrequency`"
+        errorLine1="                .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL).build());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="73"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setBreakStrategy`"
+        errorLine1="                .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE)"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="75"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setHyphenationFrequency`"
+        errorLine1="                .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL)"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="76"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 14): `setTextDirection`"
+        errorLine1="                .setTextDirection(LTR).build());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="77"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 18 (current min is 14): `android.text.TextDirectionHeuristics#LTR`"
+        errorLine1="                .setTextDirection(LTR).build());"
+        errorLine2="                                  ~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="77"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `getBreakStrategy`"
+        errorLine1="                .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE).build().getBreakStrategy());"
+        errorLine2="                                                                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="83"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setBreakStrategy`"
+        errorLine1="                .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE).build().getBreakStrategy());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="83"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `setHyphenationFrequency`"
+        errorLine1="                .setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NONE).build()"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="85"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `getHyphenationFrequency`"
+        errorLine1="                .getHyphenationFrequency());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="86"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 14): `setTextDirection`"
+        errorLine1="        assertEquals(RTL, new Params.Builder(PAINT).setTextDirection(RTL).build()"
+        errorLine2="                                                    ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="87"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 18 (current min is 14): `android.text.TextDirectionHeuristics#RTL`"
+        errorLine1="        assertEquals(RTL, new Params.Builder(PAINT).setTextDirection(RTL).build()"
+        errorLine2="                     ~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="87"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 18 (current min is 14): `android.text.TextDirectionHeuristics#RTL`"
+        errorLine1="        assertEquals(RTL, new Params.Builder(PAINT).setTextDirection(RTL).build()"
+        errorLine2="                                                                     ~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="87"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 14): `getTextDirection`"
+        errorLine1="                .getTextDirection());"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java"
+            line="88"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `toShortcutInfo`"
+        errorLine1="                .toShortcutInfo());"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java"
+            line="471"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `toShortcutInfo`"
+        errorLine1="                .toShortcutInfo());"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java"
+            line="479"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `toShortcutInfo`"
+        errorLine1="                .toShortcutInfo());"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java"
+            line="487"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `toShortcutInfo`"
+        errorLine1="                .toShortcutInfo());"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java"
+            line="495"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 25 (current min is 14): `toShortcutInfo`"
+        errorLine1="                .toShortcutInfo());"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java"
+            line="503"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `android.telephony.SubscriptionManager#getDefaultSubscriptionId`"
+        errorLine1="                assertEquals(getDefaultSubscriptionId(), actual);"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/telephony/TelephonyManagerCompatTest.java"
+            line="110"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `android.telephony.SubscriptionManager#getDefaultSubscriptionId`"
+        errorLine1="                assertEquals(expected, getDefaultSubscriptionId());"
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/telephony/TelephonyManagerCompatTest.java"
+            line="112"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `new android.widget.FrameLayout`"
+        errorLine1="        super(context, attrs, defStyleAttr, defStyleRes);"
+        errorLine2="        ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/widget/TestContentView.java"
+            line="53"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 20 (current min is 14): `android.view.View#requestApplyInsets`"
+        errorLine1="        requestApplyInsets()"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsCompatActivityTest.kt"
+            line="425"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `scenario`"
+        errorLine1="        scenario.onActivity {"
+        errorLine2="        ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="271"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `windowInsetsController`"
+        errorLine1="            windowInsetsController.systemBarsBehavior ="
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="272"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `scenario`"
+        errorLine1="        val decorView = scenario.withActivity { window.decorView }"
+        errorLine2="                        ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="275"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `scenario`"
+        errorLine1="        scenario.onActivity {"
+        errorLine2="        ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="288"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `windowInsetsController`"
+        errorLine1="            windowInsetsController.systemBarsBehavior ="
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="289"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `scenario`"
+        errorLine1="        val decorView = scenario.withActivity { window.decorView }"
+        errorLine2="                        ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/core/view/WindowInsetsControllerCompatActivityTest.kt"
+            line="292"
+            column="25"/>
+    </issue>
 
     <issue
         id="BanUncheckedReflection"
@@ -3517,7 +4650,7 @@
         errorLine2="                                                      ~~~~~">
         <location
             file="src/main/java/androidx/core/provider/FontProvider.java"
-            line="139"
+            line="138"
             column="55"/>
     </issue>
 
@@ -4056,7 +5189,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/inputmethod/InputConnectionCompat.java"
-            line="145"
+            line="148"
             column="36"/>
     </issue>
 
@@ -4078,7 +5211,7 @@
         errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/IntentCompat.java"
-            line="108"
+            line="125"
             column="27"/>
     </issue>
 
@@ -4089,7 +5222,7 @@
         errorLine2="                                ~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/app/JobIntentService.java"
-            line="260"
+            line="265"
             column="33"/>
     </issue>
 
@@ -4100,7 +5233,7 @@
         errorLine2="                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/app/JobIntentService.java"
-            line="267"
+            line="272"
             column="33"/>
     </issue>
 
@@ -4111,7 +5244,7 @@
         errorLine2="                    ~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/util/LinkifyCompat.java"
-            line="260"
+            line="258"
             column="21"/>
     </issue>
 
@@ -4122,7 +5255,7 @@
         errorLine2="                           ~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/util/LinkifyCompat.java"
-            line="336"
+            line="333"
             column="28"/>
     </issue>
 
@@ -4419,7 +5552,7 @@
         errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/MenuCompat.java"
-            line="51"
+            line="49"
             column="18"/>
     </issue>
 
@@ -7510,7 +8643,7 @@
         errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="199"
+            line="197"
             column="28"/>
     </issue>
 
@@ -7521,7 +8654,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="200"
+            line="198"
             column="26"/>
     </issue>
 
@@ -7532,7 +8665,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="201"
+            line="199"
             column="26"/>
     </issue>
 
@@ -7543,7 +8676,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="202"
+            line="200"
             column="26"/>
     </issue>
 
@@ -7554,7 +8687,7 @@
         errorLine2="                         ~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="203"
+            line="201"
             column="26"/>
     </issue>
 
@@ -7565,7 +8698,7 @@
         errorLine2="                             ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="215"
+            line="213"
             column="30"/>
     </issue>
 
@@ -7576,7 +8709,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="216"
+            line="214"
             column="32"/>
     </issue>
 
@@ -7587,7 +8720,7 @@
         errorLine2="                                     ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="217"
+            line="215"
             column="38"/>
     </issue>
 
@@ -7598,7 +8731,7 @@
         errorLine2="                                            ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="218"
+            line="216"
             column="45"/>
     </issue>
 
@@ -7609,7 +8742,7 @@
         errorLine2="                           ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="294"
+            line="292"
             column="28"/>
     </issue>
 
@@ -7620,7 +8753,7 @@
         errorLine2="                                                                      ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="294"
+            line="292"
             column="71"/>
     </issue>
 
@@ -7631,7 +8764,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="297"
+            line="295"
             column="46"/>
     </issue>
 
@@ -7642,7 +8775,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="298"
+            line="296"
             column="46"/>
     </issue>
 
@@ -7653,7 +8786,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="306"
+            line="304"
             column="29"/>
     </issue>
 
@@ -7664,7 +8797,7 @@
         errorLine2="                                                                         ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="306"
+            line="304"
             column="74"/>
     </issue>
 
@@ -7675,7 +8808,7 @@
         errorLine2="                            ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="310"
+            line="308"
             column="29"/>
     </issue>
 
@@ -7686,7 +8819,7 @@
         errorLine2="                                                                        ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="310"
+            line="308"
             column="73"/>
     </issue>
 
@@ -7697,7 +8830,7 @@
         errorLine2="                                                      ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="354"
+            line="352"
             column="55"/>
     </issue>
 
@@ -7708,7 +8841,7 @@
         errorLine2="                                                                              ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="355"
+            line="353"
             column="79"/>
     </issue>
 
@@ -7719,7 +8852,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="355"
+            line="353"
             column="32"/>
     </issue>
 
@@ -7730,7 +8863,7 @@
         errorLine2="                                                      ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="359"
+            line="357"
             column="55"/>
     </issue>
 
@@ -7741,7 +8874,7 @@
         errorLine2="                               ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="360"
+            line="358"
             column="32"/>
     </issue>
 
@@ -7752,7 +8885,7 @@
         errorLine2="                                                                             ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="360"
+            line="358"
             column="78"/>
     </issue>
 
@@ -7763,7 +8896,7 @@
         errorLine2="                                                                         ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="364"
+            line="362"
             column="74"/>
     </issue>
 
@@ -7774,7 +8907,7 @@
         errorLine2="                                                                         ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="368"
+            line="366"
             column="74"/>
     </issue>
 
@@ -7785,7 +8918,7 @@
         errorLine2="                                                      ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="384"
+            line="382"
             column="55"/>
     </issue>
 
@@ -7796,7 +8929,7 @@
         errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="385"
+            line="383"
             column="59"/>
     </issue>
 
@@ -7807,7 +8940,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="388"
+            line="386"
             column="52"/>
     </issue>
 
@@ -7818,7 +8951,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="390"
+            line="388"
             column="52"/>
     </issue>
 
@@ -7829,7 +8962,7 @@
         errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="394"
+            line="392"
             column="59"/>
     </issue>
 
@@ -7840,7 +8973,7 @@
         errorLine2="                                        ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="440"
+            line="437"
             column="41"/>
     </issue>
 
@@ -7851,7 +8984,7 @@
         errorLine2="                                     ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="468"
+            line="465"
             column="38"/>
     </issue>
 
@@ -7862,7 +8995,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="470"
+            line="467"
             column="26"/>
     </issue>
 
@@ -7873,7 +9006,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="471"
+            line="468"
             column="26"/>
     </issue>
 
@@ -7884,7 +9017,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="472"
+            line="469"
             column="26"/>
     </issue>
 
@@ -7895,7 +9028,7 @@
         errorLine2="                         ~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="473"
+            line="470"
             column="26"/>
     </issue>
 
@@ -7906,7 +9039,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="532"
+            line="528"
             column="29"/>
     </issue>
 
@@ -7917,7 +9050,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="545"
+            line="540"
             column="29"/>
     </issue>
 
@@ -7928,7 +9061,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="558"
+            line="552"
             column="29"/>
     </issue>
 
@@ -8995,7 +10128,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
-            line="908"
+            line="907"
             column="41"/>
     </issue>
 
@@ -9006,7 +10139,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
-            line="915"
+            line="914"
             column="39"/>
     </issue>
 
@@ -9017,7 +10150,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
-            line="921"
+            line="920"
             column="43"/>
     </issue>
 
@@ -9028,7 +10161,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
-            line="928"
+            line="927"
             column="41"/>
     </issue>
 
@@ -9039,7 +10172,7 @@
         errorLine2="                                  ~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/content/pm/ShortcutInfoCompat.java"
-            line="930"
+            line="929"
             column="35"/>
     </issue>
 
@@ -14183,7 +15316,7 @@
         errorLine2="           ~~~~~~~">
         <location
             file="src/main/java/androidx/core/app/JobIntentService.java"
-            line="463"
+            line="468"
             column="12"/>
     </issue>
 
@@ -14469,7 +15602,7 @@
         errorLine2="                                       ~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/MenuCompat.java"
-            line="36"
+            line="35"
             column="40"/>
     </issue>
 
@@ -14480,7 +15613,7 @@
         errorLine2="                                              ~~~~">
         <location
             file="src/main/java/androidx/core/view/MenuCompat.java"
-            line="47"
+            line="45"
             column="47"/>
     </issue>
 
@@ -16229,7 +17362,7 @@
         errorLine2="                   ~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="144"
+            line="143"
             column="20"/>
     </issue>
 
@@ -16240,7 +17373,7 @@
         errorLine2="                   ~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="162"
+            line="161"
             column="20"/>
     </issue>
 
@@ -16251,7 +17384,7 @@
         errorLine2="                   ~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="180"
+            line="179"
             column="20"/>
     </issue>
 
@@ -16262,7 +17395,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="431"
+            line="428"
             column="19"/>
     </issue>
 
@@ -16273,7 +17406,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="650"
+            line="644"
             column="19"/>
     </issue>
 
@@ -16284,7 +17417,7 @@
         errorLine2="                        ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="677"
+            line="670"
             column="25"/>
     </issue>
 
@@ -16295,7 +17428,7 @@
         errorLine2="                           ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="694"
+            line="686"
             column="28"/>
     </issue>
 
@@ -16306,7 +17439,7 @@
         errorLine2="               ~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="713"
+            line="704"
             column="16"/>
     </issue>
 
@@ -16317,7 +17450,7 @@
         errorLine2="                                                ~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="713"
+            line="704"
             column="49"/>
     </issue>
 
@@ -16328,7 +17461,7 @@
         errorLine2="                            ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="723"
+            line="714"
             column="29"/>
     </issue>
 
@@ -16339,7 +17472,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="728"
+            line="719"
             column="27"/>
     </issue>
 
@@ -16350,7 +17483,7 @@
         errorLine2="                            ~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="733"
+            line="724"
             column="29"/>
     </issue>
 
@@ -16361,7 +17494,7 @@
         errorLine2="                                                        ~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="738"
+            line="729"
             column="57"/>
     </issue>
 
@@ -16372,7 +17505,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/text/PrecomputedTextCompat.java"
-            line="758"
+            line="749"
             column="12"/>
     </issue>
 
@@ -17637,7 +18770,7 @@
         errorLine2="                                                                            ~~~~~~">
         <location
             file="src/main/java/androidx/core/graphics/TypefaceCompat.java"
-            line="174"
+            line="172"
             column="77"/>
     </issue>
 
@@ -18198,7 +19331,7 @@
         errorLine2="                                                ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="565"
+            line="542"
             column="49"/>
     </issue>
 
@@ -18209,7 +19342,7 @@
         errorLine2="                                              ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="578"
+            line="555"
             column="47"/>
     </issue>
 
@@ -18220,7 +19353,7 @@
         errorLine2="                                        ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="595"
+            line="572"
             column="41"/>
     </issue>
 
@@ -18231,7 +19364,7 @@
         errorLine2="                                         ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="615"
+            line="592"
             column="42"/>
     </issue>
 
@@ -18242,7 +19375,7 @@
         errorLine2="                                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="653"
+            line="632"
             column="53"/>
     </issue>
 
@@ -18253,7 +19386,7 @@
         errorLine2="                                                            ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="653"
+            line="632"
             column="61"/>
     </issue>
 
@@ -18264,7 +19397,7 @@
         errorLine2="                                                      ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="683"
+            line="664"
             column="55"/>
     </issue>
 
@@ -18275,7 +19408,7 @@
         errorLine2="                                                              ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="683"
+            line="664"
             column="63"/>
     </issue>
 
@@ -18286,7 +19419,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1481"
+            line="1467"
             column="34"/>
     </issue>
 
@@ -18297,7 +19430,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1519"
+            line="1506"
             column="37"/>
     </issue>
 
@@ -18308,7 +19441,7 @@
         errorLine2="                                                                         ~~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1519"
+            line="1506"
             column="74"/>
     </issue>
 
@@ -18319,7 +19452,7 @@
         errorLine2="                                   ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1541"
+            line="1530"
             column="36"/>
     </issue>
 
@@ -18330,7 +19463,7 @@
         errorLine2="                                   ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1710"
+            line="1698"
             column="36"/>
     </issue>
 
@@ -18341,7 +19474,7 @@
         errorLine2="                                               ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1745"
+            line="1735"
             column="48"/>
     </issue>
 
@@ -18352,7 +19485,7 @@
         errorLine2="                                                ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1761"
+            line="1752"
             column="49"/>
     </issue>
 
@@ -18363,7 +19496,7 @@
         errorLine2="                                       ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1775"
+            line="1766"
             column="40"/>
     </issue>
 
@@ -18374,7 +19507,7 @@
         errorLine2="                                        ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1965"
+            line="1958"
             column="41"/>
     </issue>
 
@@ -18385,7 +19518,7 @@
         errorLine2="                                        ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1978"
+            line="1972"
             column="41"/>
     </issue>
 
@@ -18396,7 +19529,7 @@
         errorLine2="                                   ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="1998"
+            line="1994"
             column="36"/>
     </issue>
 
@@ -18407,7 +19540,7 @@
         errorLine2="                                       ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2103"
+            line="2100"
             column="40"/>
     </issue>
 
@@ -18418,7 +19551,7 @@
         errorLine2="                                       ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2118"
+            line="2117"
             column="40"/>
     </issue>
 
@@ -18440,7 +19573,7 @@
         errorLine2="                            ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2148"
+            line="2149"
             column="29"/>
     </issue>
 
@@ -18451,7 +19584,7 @@
         errorLine2="                            ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2162"
+            line="2164"
             column="29"/>
     </issue>
 
@@ -18462,7 +19595,7 @@
         errorLine2="                                   ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2174"
+            line="2177"
             column="36"/>
     </issue>
 
@@ -18473,7 +19606,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2187"
+            line="2191"
             column="37"/>
     </issue>
 
@@ -18484,7 +19617,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2200"
+            line="2205"
             column="37"/>
     </issue>
 
@@ -18495,7 +19628,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2212"
+            line="2218"
             column="34"/>
     </issue>
 
@@ -18506,7 +19639,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2224"
+            line="2231"
             column="34"/>
     </issue>
 
@@ -18517,7 +19650,7 @@
         errorLine2="                                  ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2235"
+            line="2242"
             column="35"/>
     </issue>
 
@@ -18528,7 +19661,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2250"
+            line="2258"
             column="34"/>
     </issue>
 
@@ -18539,7 +19672,7 @@
         errorLine2="                                  ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2262"
+            line="2271"
             column="35"/>
     </issue>
 
@@ -18550,7 +19683,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2277"
+            line="2287"
             column="34"/>
     </issue>
 
@@ -18561,7 +19694,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2285"
+            line="2295"
             column="37"/>
     </issue>
 
@@ -18572,7 +19705,7 @@
         errorLine2="                                     ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2293"
+            line="2303"
             column="38"/>
     </issue>
 
@@ -18583,7 +19716,7 @@
         errorLine2="                                     ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2301"
+            line="2311"
             column="38"/>
     </issue>
 
@@ -18594,7 +19727,7 @@
         errorLine2="                                  ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2309"
+            line="2319"
             column="35"/>
     </issue>
 
@@ -18605,7 +19738,7 @@
         errorLine2="                                  ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2317"
+            line="2327"
             column="35"/>
     </issue>
 
@@ -18616,7 +19749,7 @@
         errorLine2="                             ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2325"
+            line="2335"
             column="30"/>
     </issue>
 
@@ -18627,7 +19760,7 @@
         errorLine2="                             ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2333"
+            line="2343"
             column="30"/>
     </issue>
 
@@ -18638,7 +19771,7 @@
         errorLine2="                                                      ~~~~~~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2456"
+            line="2467"
             column="55"/>
     </issue>
 
@@ -18649,7 +19782,7 @@
         errorLine2="                                            ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2497"
+            line="2508"
             column="45"/>
     </issue>
 
@@ -18660,7 +19793,7 @@
         errorLine2="                                                   ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2511"
+            line="2522"
             column="52"/>
     </issue>
 
@@ -18671,7 +19804,7 @@
         errorLine2="                                                ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2841"
+            line="2853"
             column="49"/>
     </issue>
 
@@ -18682,7 +19815,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/core/view/ViewCompat.java"
-            line="2856"
+            line="2869"
             column="37"/>
     </issue>
 
diff --git a/core/core/src/androidTest/java/androidx/core/content/IntentCompatTest.java b/core/core/src/androidTest/java/androidx/core/content/IntentCompatTest.java
index 422aa5c1..4685da9 100644
--- a/core/core/src/androidTest/java/androidx/core/content/IntentCompatTest.java
+++ b/core/core/src/androidTest/java/androidx/core/content/IntentCompatTest.java
@@ -26,6 +26,13 @@
 import static android.os.Build.VERSION_CODES.R;
 import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
 
+import static androidx.core.content.IntentCompat.APP_HIBERNATION_DISABLED;
+import static androidx.core.content.IntentCompat.APP_HIBERNATION_ENABLED;
+import static androidx.core.content.IntentCompat.PERMISSION_REVOCATION_DISABLED;
+import static androidx.core.content.IntentCompat.PERMISSION_REVOCATION_ENABLED;
+import static androidx.core.content.IntentCompat.UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE;
+import static androidx.core.content.IntentCompat.UNUSED_APP_RESTRICTION_STATUS_UNKNOWN;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertThrows;
@@ -110,7 +117,8 @@
                 mContext, PACKAGE_NAME);
 
         assertThat(activityIntent.getAction()).isEqualTo(ACTION_APPLICATION_DETAILS_SETTINGS);
-        assertThat(activityIntent.getData()).isEqualTo(Uri.parse(PACKAGE_NAME));
+        assertThat(activityIntent.getData()).isEqualTo(
+                Uri.fromParts("package", PACKAGE_NAME, /* fragment= */ null));
     }
 
     @Test
@@ -121,7 +129,8 @@
 
         assertThat(activityIntent.getAction())
                 .isEqualTo("android.intent.action.AUTO_REVOKE_PERMISSIONS");
-        assertThat(activityIntent.getData()).isEqualTo(Uri.parse(PACKAGE_NAME));
+        assertThat(activityIntent.getData()).isEqualTo(
+                Uri.fromParts("package", PACKAGE_NAME, /* fragment= */ null));
     }
 
     @Test
@@ -160,21 +169,28 @@
         assertThat(activityIntent.getAction()).isEqualTo(
                 "android.intent.action.AUTO_REVOKE_PERMISSIONS");
         assertThat(activityIntent.getPackage()).isEqualTo(VERIFIER_PACKAGE_NAME);
+        assertThat(activityIntent.getData()).isEqualTo(
+                Uri.fromParts("package", PACKAGE_NAME, /* fragment= */ null));
     }
 
     @Test
     @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
     public void createManageUnusedAppRestrictionsIntent_preApi30_manyVerifierRevocationApps() {
         setupPermissionRevocationApps(Arrays.asList(VERIFIER_PACKAGE_NAME, VERIFIER_PACKAGE_NAME2));
-        // Set both apps as the Verifier on the device
+        // Set both apps as the Verifier on the device, but we should fail gracefully.
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 VERIFIER_PACKAGE_NAME)).thenReturn(PERMISSION_GRANTED);
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 VERIFIER_PACKAGE_NAME2)).thenReturn(PERMISSION_GRANTED);
+        Intent activityIntent = IntentCompat.createManageUnusedAppRestrictionsIntent(
+                mContext, PACKAGE_NAME);
 
-        assertThrows(RuntimeException.class,
-                () -> IntentCompat.createManageUnusedAppRestrictionsIntent(
-                        mContext, PACKAGE_NAME));
+        assertThat(activityIntent.getAction()).isEqualTo(
+                "android.intent.action.AUTO_REVOKE_PERMISSIONS");
+        // Verify that we use the first Verifier's package name.
+        assertThat(activityIntent.getPackage()).isEqualTo(VERIFIER_PACKAGE_NAME);
+        assertThat(activityIntent.getData()).isEqualTo(
+                Uri.fromParts("package", PACKAGE_NAME, /* fragment= */ null));
     }
 
     @Test
@@ -186,79 +202,98 @@
     }
 
     @Test
+    @SdkSuppress(minSdkVersion = 31)
+    public void getUnusedAppRestrictionsStatus_api31Plus_disabled_returnsAppHibernationDisabled() {
+        // Mark the application as exempt from app hibernation, so the feature is disabled
+        when(mPackageManager.isAutoRevokeWhitelisted()).thenReturn(true);
+
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                APP_HIBERNATION_DISABLED);
+    }
+
+    @Test
+    @SdkSuppress(minSdkVersion = 31)
+    public void getUnusedAppRestrictionsStatus_api31Plus_enabled_returnsAppHibernationEnabled() {
+        // Mark the application as _not_ exempt from app hibernation, so the feature is enabled
+        when(mPackageManager.isAutoRevokeWhitelisted()).thenReturn(false);
+
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                APP_HIBERNATION_ENABLED);
+    }
+
+    @Test
+    @SdkSuppress(minSdkVersion = R, maxSdkVersion = R)
+    public void getUnusedAppRestrictionsStatus_api30_disabled_returnsPermRevocationDisabled() {
+        // Mark the application as exempt from permission revocation, so the feature is disabled
+        when(mPackageManager.isAutoRevokeWhitelisted()).thenReturn(true);
+
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                PERMISSION_REVOCATION_DISABLED);
+    }
+
+    @Test
     @SdkSuppress(minSdkVersion = R)
-    public void areUnusedAppRestrictionsAvailable_api30Plus_returnsTrue() {
-        assertThat(IntentCompat.areUnusedAppRestrictionsAvailable(mContext)).isTrue();
+    public void getUnusedAppRestrictionsStatus_api30Plus_enabled_returnsPermRevocationEnabled() {
+        // Mark the application as _not_ exempt from permission revocation, so the feature is
+        // enabled
+        when(mPackageManager.isAutoRevokeWhitelisted()).thenReturn(false);
+
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                PERMISSION_REVOCATION_ENABLED);
     }
 
     @Test
     @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
-    public void areUnusedAppRestrictionsAvailable_preApi30_noRevocationApp_returnsFalse() {
+    public void getUnusedAppRestrictionsStatus_preApi30_noRevocationApp_returnsNotAvailable() {
         // Don't install an app that can resolve the permission auto-revocation intent
 
-        assertThat(IntentCompat.areUnusedAppRestrictionsAvailable(mContext)).isFalse();
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE);
     }
 
     @Test
     @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
-    public void areUnusedAppRestrictionsAvailable_preApi30_noVerifierRevocationApp_returnsFalse() {
+    public void getUnusedAppRestrictionsStatus_preApi30_noVerifierRevokeApp_returnsNotAvailable() {
         setupPermissionRevocationApps(Arrays.asList(NON_VERIFIER_PACKAGE_NAME));
         // Do not set this app as the Verifier on the device
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 NON_VERIFIER_PACKAGE_NAME)).thenReturn(PERMISSION_DENIED);
 
-        assertThat(IntentCompat.areUnusedAppRestrictionsAvailable(mContext)).isFalse();
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE);
     }
 
     @Test
     @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
-    public void areUnusedAppRestrictionsAvailable_preApi30_verifierRevocationApp_returnsTrue() {
+    public void getUnusedAppRestrictionsStatus_preApi30_verifierRevocationApp_returnsUnknown() {
         setupPermissionRevocationApps(Arrays.asList(VERIFIER_PACKAGE_NAME));
         // Set this app as the Verifier on the device
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 VERIFIER_PACKAGE_NAME)).thenReturn(PERMISSION_GRANTED);
 
-        assertThat(IntentCompat.areUnusedAppRestrictionsAvailable(mContext)).isTrue();
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                UNUSED_APP_RESTRICTION_STATUS_UNKNOWN);
     }
 
     @Test
     @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
-    public void areUnusedAppRestrictionsAvailable_preApi30_manyVerifierRevocationApps_throws() {
+    public void getUnusedAppRestrictionsStatus_preApi30_manyVerifierRevocationApps_doesNotThrow() {
         setupPermissionRevocationApps(Arrays.asList(VERIFIER_PACKAGE_NAME, VERIFIER_PACKAGE_NAME2));
-        // Set both apps as the Verifier on the device
+        // Set both apps as the Verifier on the device, but we should have a graceful failure.
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 VERIFIER_PACKAGE_NAME)).thenReturn(PERMISSION_GRANTED);
         when(mPackageManager.checkPermission("android.permission.PACKAGE_VERIFICATION_AGENT",
                 VERIFIER_PACKAGE_NAME2)).thenReturn(PERMISSION_GRANTED);
 
-        assertThrows(RuntimeException.class,
-                () -> IntentCompat.areUnusedAppRestrictionsAvailable(mContext));
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                UNUSED_APP_RESTRICTION_STATUS_UNKNOWN);
     }
 
     @Test
     @SdkSuppress(maxSdkVersion = LOLLIPOP)
-    public void areUnusedAppRestrictionsAvailable_preApi23_returnsFalse() {
-        assertThat(IntentCompat.areUnusedAppRestrictionsAvailable(mContext)).isFalse();
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = R)
-    public void areUnusedAppRestrictionsAllowlisted_api30Plus_returnsPackageManagerAllowlisted() {
-        when(mPackageManager.isAutoRevokeWhitelisted()).thenReturn(true);
-
-        assertThat(IntentCompat.areUnusedAppRestrictionsAllowlisted(mContext)).isTrue();
-    }
-
-    @Test
-    @SdkSuppress(minSdkVersion = M, maxSdkVersion = Q)
-    public void areUnusedAppRestrictionsAllowlisted_preApi30_returnsFalse() {
-        assertThat(IntentCompat.areUnusedAppRestrictionsAllowlisted(mContext)).isFalse();
-    }
-
-    @Test
-    @SdkSuppress(maxSdkVersion = LOLLIPOP)
-    public void areUnusedAppRestrictionsAllowlisted_preApi23_returnsFalse() {
-        assertThat(IntentCompat.areUnusedAppRestrictionsAllowlisted(mContext)).isFalse();
+    public void getUnusedAppRestrictionsStatus_preApi23_returnsFeatureNotAvailable() {
+        assertThat(IntentCompat.getUnusedAppRestrictionsStatus(mContext)).isEqualTo(
+                UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE);
     }
 
     /**
diff --git a/core/core/src/main/java/androidx/core/content/IntentCompat.java b/core/core/src/main/java/androidx/core/content/IntentCompat.java
index bc25a06..33a93db 100644
--- a/core/core/src/main/java/androidx/core/content/IntentCompat.java
+++ b/core/core/src/main/java/androidx/core/content/IntentCompat.java
@@ -18,8 +18,11 @@
 
 import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
 
+import static androidx.annotation.RestrictTo.Scope.LIBRARY;
 import static androidx.core.util.Preconditions.checkNotNull;
 
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
 import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.Intent;
@@ -28,10 +31,13 @@
 import android.net.Uri;
 import android.os.Build;
 
+import androidx.annotation.IntDef;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
+import androidx.annotation.RestrictTo;
 
+import java.lang.annotation.Retention;
 import java.util.List;
 
 /**
@@ -101,6 +107,55 @@
      */
     public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
 
+    /** The status of Unused App Restrictions features is unknown for this app. */
+    public static final int UNUSED_APP_RESTRICTION_STATUS_UNKNOWN = 0;
+
+    /** There are no available Unused App Restrictions features for this app. */
+    public static final int UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE = 1;
+
+    /**
+     * Permission revocation is enabled for this app (i.e. permissions will be automatically
+     * reset if the app is unused).
+     *
+     * Note: this also means that app hibernation is not available for this app.
+     */
+    public static final int PERMISSION_REVOCATION_ENABLED = 2;
+
+    /**
+     * Permission revocation is disabled for this app (i.e. this app is exempt from having
+     * its permissions automatically removed).
+     *
+     * Note: this also means that app hibernation is not available for this app.
+     */
+    public static final int PERMISSION_REVOCATION_DISABLED = 3;
+
+    /**
+     * App hibernation is enabled for this app (i.e. this app will be hibernated and have its
+     * permissions revoked if the app is unused).
+     *
+     * Note: this also means that permission revocation is enabled for this app.
+     */
+    public static final int APP_HIBERNATION_ENABLED = 4;
+
+    /**
+     * App hibernation is disabled for this app (i.e. this app is exempt from being hibernated).
+     *
+     * Note: this also means that permission revocation is disabled for this app.
+     */
+    public static final int APP_HIBERNATION_DISABLED = 5;
+
+    /**
+     * The status of Unused App Restrictions features for this app.
+     * @hide
+     */
+    @IntDef({UNUSED_APP_RESTRICTION_STATUS_UNKNOWN, UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE,
+            PERMISSION_REVOCATION_ENABLED, PERMISSION_REVOCATION_DISABLED,
+            APP_HIBERNATION_ENABLED, APP_HIBERNATION_DISABLED})
+    @Retention(SOURCE)
+    @RestrictTo(LIBRARY)
+    public @interface UnusedAppRestrictionsStatus {
+    }
+
     /**
      * Make an Intent for the main activity of an application, without
      * specifying a specific activity to run but giving a selector to find
@@ -140,9 +195,13 @@
      * Make an Intent to redirect the user to UI to manage their unused app restriction settings
      * for a particular app (e.g. permission revocation, app hibernation).
      *
-     * Note: developers must first call {@link #areUnusedAppRestrictionsAvailable} to make sure
-     * that unused app restriction features are available on the device before attempting to create
-     * an intent using this method.
+     * Note: developers must first call {@link #getUnusedAppRestrictionsStatus(Context)} to make
+     * sure that unused app restriction features are available on the device before attempting to
+     * create an intent using this method. Any return value of this method besides
+     * {@link #UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE} indicates that at least one
+     * unused app restriction feature is available on the device. If the return value _is_
+     * {@link #UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE}, this method will throw an
+     * {@link UnsupportedOperationException}.
      *
      * Compatibility behavior:
      * <ul>
@@ -150,11 +209,9 @@
      * .ACTION_APPLICATION_DETAILS_SETTINGS} and {@code packageName} as data.
      * <li>SDK 30, this method generates an intent with action {@code Intent
      * .ACTION_AUTO_REVOKE_PERMISSIONS} and {@code packageName} as data.
-     * <li>SDK 23 through 29, if {@link #areUnusedAppRestrictionsAvailable} returns true,
-     * this method will generate an intent with action {@code Intent
-     * .ACTION_AUTO_REVOKE_PERMISSIONS} and the package as the first system app that can
-     * resolve the intent. Otherwise, this method will throw an
-     * {@link UnsupportedOperationException}.
+     * <li>SDK 23 through 29, this method will generate an intent with action
+     * {@link Intent#ACTION_AUTO_REVOKE_PERMISSIONS} and the package as the app with the Verifier
+     * role that can resolve the intent.
      * <li>SDK 22 and below, this method will throw an {@link UnsupportedOperationException}
      * </ul>
      *
@@ -167,9 +224,10 @@
     @NonNull
     public static Intent createManageUnusedAppRestrictionsIntent(@NonNull Context context,
             @NonNull String packageName) {
-        if (!areUnusedAppRestrictionsAvailable(context)) {
+        if (getUnusedAppRestrictionsStatus(context)
+                == UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE) {
             throw new UnsupportedOperationException(
-                    "Unused App Restrictions are not available on this device");
+                    "Unused App Restriction features are not available on this device");
         }
 
         // If the OS version is S+, generate the intent using the Application Details Settings
@@ -177,77 +235,42 @@
         // TODO: replace with VERSION_CODES.S once it's defined
         if (Build.VERSION.SDK_INT >= 31) {
             return new Intent(ACTION_APPLICATION_DETAILS_SETTINGS)
-                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setData(Uri.parse(packageName));
+                    .setData(Uri.fromParts("package", packageName, /* fragment= */ null));
         }
 
         Intent unusedAppRestrictionsIntent =
-                new Intent(ACTION_UNUSED_APP_RESTRICTIONS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                new Intent(ACTION_UNUSED_APP_RESTRICTIONS)
+                        .setData(Uri.fromParts(
+                                "package", packageName, /* fragment= */ null));
 
-        // If the OS version is R, then just add the package name to the intent.
-        // No need to add any other data or flags, since we're relying on the Android R system
-        // feature.
+        // If the OS version is R, then no need to add any other data or flags, since we're
+        // relying on the Android R system feature.
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
-            return unusedAppRestrictionsIntent.setData(Uri.parse(packageName));
-        } else {
-            PackageManager packageManager = context.getPackageManager();
-            // Only allow apps with the Verifier role to resolve the intent.
-            String verifierPackageName = getVerifierPackageName(packageManager,
-                    packageManager.queryIntentActivities(
-                            unusedAppRestrictionsIntent, /* flags= */ 0));
-            // The package name shouldn't be null since we've already checked that there exists a
-            // single Verifier on the device, but nonetheless we double-check here.
-            unusedAppRestrictionsIntent.setPackage(checkNotNull(verifierPackageName));
             return unusedAppRestrictionsIntent;
+        } else {
+            // Only allow apps with the Verifier role to resolve the intent.
+            String verifierPackageName = getVerifierRolePackageName(context.getPackageManager());
+            // The Verifier package name shouldn't be null since we've already checked that there
+            // exists a Verifier on the device, but nonetheless we double-check here.
+            return unusedAppRestrictionsIntent
+                    .setPackage(checkNotNull(verifierPackageName));
         }
     }
 
     /**
-     * Checks to see whether unused app restrictions (e.g. permission revocation, app hibernation)
-     * are available on this device.
-     *
-     * Compatibility behavior:
-     * <ul>
-     * <li>SDK 30 and above, this method always returns {@code true} as unused app restrictions
-     * are built into the Android OS.
-     * <li>SDK 23 through 29, this method checks for a system app that can resolve the {@code
-     * Intent.ACTION_AUTO_REVOKE_PERMISSIONS} intent.
-     * <li>SDK 22 and below, this method always returns {@code false} as runtime permissions did
-     * not exist yet.
-     * </ul>
-     *
-     * @param context The {@link Context} of the calling application.
-     *
-     * @return Returns a boolean indicating whether permission auto-revocation is available on
-     * the device, whether through the Android Operating System or a system app.
-     */
-    public static boolean areUnusedAppRestrictionsAvailable(@NonNull Context context) {
-        // Return false if the Android OS version is before M, because Android M introduced runtime
-        // permissions
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return false;
-
-        // Check that the Android OS version is R+
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) return true;
-
-        // Else, check for an app with the verifier role that can resolve the intent
-        PackageManager packageManager = context.getPackageManager();
-        List<ResolveInfo> intentResolvers =
-                packageManager.queryIntentActivities(
-                        new Intent(ACTION_UNUSED_APP_RESTRICTIONS), /* flags= */ 0);
-
-        // Check that we were able to get the one Verifier's package name. If no Verifier or
-        // more than one Verifier exists on the device, unused app restrictions are not available
-        // on the device.
-        return getVerifierPackageName(packageManager, intentResolvers) != null;
-    }
-
-    /**
      * Returns the package name of the one and only Verifier on the device. If none exist, this
-     * will return {@code null}. Likewise, if multiple Verifiers exist, this method will throw a
-     * {@link RuntimeException} as there can only ever be one verifier.
+     * will return {@code null}. Likewise, if multiple Verifiers exist, this method will return
+     * the first Verifier's package name.
      */
     @Nullable
-    private static String getVerifierPackageName(PackageManager packageManager,
-            List<ResolveInfo> intentResolvers) {
+    private static String getVerifierRolePackageName(PackageManager packageManager) {
+        Intent unusedAppRestrictionsIntent =
+                new Intent(ACTION_UNUSED_APP_RESTRICTIONS)
+                        .setData(Uri.fromParts(
+                                "package", "com.example", /* fragment= */ null));
+        List<ResolveInfo> intentResolvers =
+                packageManager.queryIntentActivities(unusedAppRestrictionsIntent, /* flags= */ 0);
+
         String verifierPackageName = null;
 
         for (ResolveInfo intentResolver: intentResolvers) {
@@ -258,7 +281,10 @@
             }
 
             if (verifierPackageName != null) {
-                throw new RuntimeException("There can be only one required verifier");
+                // This shouldn't happen, but we fail gracefully nonetheless and avoid throwing an
+                // exception, instead returning the first package name with the Verifier role
+                // that we found.
+                return verifierPackageName;
             }
             verifierPackageName = packageName;
         }
@@ -267,29 +293,54 @@
     }
 
     /**
-     * Checks whether this application is exempt from unused app restrictions (e.g. permission
-     * revocation, app hibernation).
+     * Returns the status of Unused App Restriction features for the current application, i.e.
+     * whether the features are available and if so, enabled for the application.
      *
      * Compatibility behavior:
      * <ul>
-     * <li>SDK 30 and above, this method returns the value of
-     * {@link PackageManager#isAutoRevokeWhitelisted}
-     * <li>SDK 23 through 29, this method returns {@code false}.
-     * <li>SDK 22 and below, this method always returns {@code false} as runtime
-     * permissions did not exist yet.
+     * <li>SDK 31 and above, if {@link PackageManager#isAutoRevokeWhitelisted()} is true, this
+     * will return {@link #APP_HIBERNATION_ENABLED}. Else, it will return
+     * {@link #APP_HIBERNATION_DISABLED}.</li>
+     * <li>SDK 30, if {@link PackageManager#isAutoRevokeWhitelisted()} is true, this will return
+     * {@link #PERMISSION_REVOCATION_ENABLED}. Else, it will return
+     * {@link #PERMISSION_REVOCATION_DISABLED}.</li>
+     * <li>SDK 23 through 29, if there exists an app with the Verifier role that can resolve the
+     * {@code Intent.ACTION_AUTO_REVOKE_PERMISSIONS} action.
+     * <li>SDK 22 and below, this method always returns
+     * {@link #UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE} as runtime permissions did not exist
+     * yet.
      * </ul>
      */
-    public static boolean areUnusedAppRestrictionsAllowlisted(@NonNull Context context) {
+    public static @UnusedAppRestrictionsStatus int getUnusedAppRestrictionsStatus(
+            @NonNull Context context) {
         // Return false if the Android OS version is before M, because Android M introduced runtime
         // permissions
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return false;
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
-            return Api30Impl.areUnusedAppRestrictionsAllowlisted(context);
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+            return UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE;
         }
 
-        // TODO(b/177234481): Implement the backport behavior of this API
-        return false;
+        // TODO: replace with VERSION_CODES.S once it's defined
+        if (Build.VERSION.SDK_INT >= 31) {
+            return Api30Impl.areUnusedAppRestrictionsEnabled(context)
+                    ? APP_HIBERNATION_ENABLED
+                    : APP_HIBERNATION_DISABLED;
+        }
+
+        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.R) {
+            return Api30Impl.areUnusedAppRestrictionsEnabled(context)
+                    ? PERMISSION_REVOCATION_ENABLED
+                    : PERMISSION_REVOCATION_DISABLED;
+        }
+
+        // Else, check for an app with the verifier role that can resolve the intent
+        String verifierPackageName = getVerifierRolePackageName(context.getPackageManager());
+        // Check that we were able to get the one Verifier's package name. If no Verifier or
+        // more than one Verifier exists on the device, unused app restrictions are not available
+        // on the device.
+        return (verifierPackageName == null)
+                ? UNUSED_APP_RESTRICTION_FEATURE_NOT_AVAILABLE
+                // TODO(b/177234481): Implement the backport behavior of this API
+                : UNUSED_APP_RESTRICTION_STATUS_UNKNOWN;
     }
 
     /**
@@ -302,8 +353,10 @@
     @RequiresApi(Build.VERSION_CODES.R)
     private static class Api30Impl {
         private Api30Impl() {}
-        static boolean areUnusedAppRestrictionsAllowlisted(@NonNull Context context) {
-            return context.getPackageManager().isAutoRevokeWhitelisted();
+        static boolean areUnusedAppRestrictionsEnabled(@NonNull Context context) {
+            // If the app is allowlisted, that means that it is exempt from unused app restriction
+            // features, and thus the features are _disabled_.
+            return !context.getPackageManager().isAutoRevokeWhitelisted();
         }
     }
 }
diff --git a/cursoradapter/cursoradapter/lint-baseline.xml b/cursoradapter/cursoradapter/lint-baseline.xml
index 9850951..a31f3ea 100644
--- a/cursoradapter/cursoradapter/lint-baseline.xml
+++ b/cursoradapter/cursoradapter/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/customview/customview/lint-baseline.xml b/customview/customview/lint-baseline.xml
index cdb72ad..d95bc70 100644
--- a/customview/customview/lint-baseline.xml
+++ b/customview/customview/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/datastore/datastore-sampleapp/lint-baseline.xml b/datastore/datastore-sampleapp/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/datastore/datastore-sampleapp/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/documentfile/documentfile/lint-baseline.xml b/documentfile/documentfile/lint-baseline.xml
index 292e7cc..353f4d2 100644
--- a/documentfile/documentfile/lint-baseline.xml
+++ b/documentfile/documentfile/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/drawerlayout/drawerlayout/lint-baseline.xml b/drawerlayout/drawerlayout/lint-baseline.xml
index dbfb443..677aa59 100644
--- a/drawerlayout/drawerlayout/lint-baseline.xml
+++ b/drawerlayout/drawerlayout/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/dynamic-animation/dynamic-animation/lint-baseline.xml b/dynamic-animation/dynamic-animation/lint-baseline.xml
index dddc744..939c67c 100644
--- a/dynamic-animation/dynamic-animation/lint-baseline.xml
+++ b/dynamic-animation/dynamic-animation/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/emoji/appcompat/lint-baseline.xml b/emoji/appcompat/lint-baseline.xml
index 0d655a9..a85ccf9 100644
--- a/emoji/appcompat/lint-baseline.xml
+++ b/emoji/appcompat/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/emoji/core/lint-baseline.xml b/emoji/core/lint-baseline.xml
index 9751702..e1b1de4 100644
--- a/emoji/core/lint-baseline.xml
+++ b/emoji/core/lint-baseline.xml
@@ -1,5 +1,368 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `TypefaceEmojiSpan`"
+        errorLine1="        final EmojiSpan span = new TypefaceEmojiSpan(metadata);"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java"
+            line="65"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 15 (current min is 14): `android.view.View#hasOnClickListeners`"
+        errorLine1="        assertTrue(extractButton.hasOnClickListeners());"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java"
+            line="177"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 15 (current min is 14): `android.view.View#hasOnClickListeners`"
+        errorLine1="        assertFalse(extractButton.hasOnClickListeners());"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java"
+            line="199"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiInputFilter`"
+        errorLine1="        mInputFilter = new EmojiInputFilter(textView);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="58"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        assertNull(mInputFilter.filter(null, 0, 1, null, 0, 1));"
+        errorLine2="                                ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="63"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="73"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="85"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="98"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="111"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java"
+            line="123"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getId`"
+        errorLine1="                    if (mResId == spans[index].getId()) {"
+        errorLine2="                                               ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/util/EmojiMatcher.java"
+            line="233"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getId`"
+        errorLine1="                    if (mResId == -1 || mResId == spans[index].getId()) {"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/util/EmojiMatcher.java"
+            line="240"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiTextWatcher`"
+        errorLine1="        mTextWatcher = new EmojiTextWatcher(editText);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="54"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="62"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="74"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="86"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getEmojiReplaceStrategy`"
+        errorLine1="        assertEquals(EmojiCompat.REPLACE_STRATEGY_DEFAULT, mTextWatcher.getEmojiReplaceStrategy());"
+        errorLine2="                                                                        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="98"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="100"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `setEmojiReplaceStrategy`"
+        errorLine1="        mTextWatcher.setEmojiReplaceStrategy(EmojiCompat.REPLACE_STRATEGY_ALL);"
+        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="105"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="107"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `onTextChanged`"
+        errorLine1="        mTextWatcher.onTextChanged(testString, 0, 0, 1);"
+        errorLine2="                     ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java"
+            line="118"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiTransformationMethod`"
+        errorLine1="        mTransformationMethod = new EmojiTransformationMethod(mWrappedTransformationMethod);"
+        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="84"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        assertNull(mTransformationMethod.getTransformation(null, mView));"
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="89"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        mTransformationMethod.getTransformation(&quot;&quot;, null);"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="95"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiTransformationMethod`"
+        errorLine1="        mTransformationMethod = new EmojiTransformationMethod(null);"
+        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="100"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="102"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="110"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="124"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="137"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java"
+            line="150"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `MetadataRepo`"
+        errorLine1="                            loaderCallback.onLoaded(new MetadataRepo());"
+        errorLine2="                                                    ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java"
+            line="88"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="                            sMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
+        errorLine2="                                                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java"
+            line="119"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="                    mMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java"
+            line="144"
+            column="50"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
diff --git a/emoji2/emoji2-bundled/lint-baseline.xml b/emoji2/emoji2-bundled/lint-baseline.xml
new file mode 100644
index 0000000..ea23657
--- /dev/null
+++ b/emoji2/emoji2-bundled/lint-baseline.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getId`"
+        errorLine1="                    if (mResId == spans[index].getId()) {"
+        errorLine2="                                               ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"
+            line="233"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getId`"
+        errorLine1="                    if (mResId == -1 || mResId == spans[index].getId()) {"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"
+            line="240"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="                            loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class)));"
+        errorLine2="                                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"
+            line="92"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="                            sMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
+        errorLine2="                                                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"
+            line="123"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="                    mMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"
+            line="148"
+            column="50"/>
+    </issue>
+
+</issues>
diff --git a/emoji2/emoji2-views-helper/lint-baseline.xml b/emoji2/emoji2-views-helper/lint-baseline.xml
new file mode 100644
index 0000000..ebfe397
--- /dev/null
+++ b/emoji2/emoji2-views-helper/lint-baseline.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `TypefaceEmojiSpan`"
+        errorLine1="        final EmojiSpan span = new TypefaceEmojiSpan(metadata);"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiEditableFactoryTest.java"
+            line="66"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiInputFilter`"
+        errorLine1="        mInputFilter = new EmojiInputFilter(textView);"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="57"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        assertNull(mInputFilter.filter(null, 0, 1, null, 0, 1));"
+        errorLine2="                                ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="62"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="72"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="85"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="99"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="112"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `filter`"
+        errorLine1="        final CharSequence result = mInputFilter.filter(testString, 0, 1, null, 0, 1);"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiInputFilterTest.java"
+            line="124"
+            column="50"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiTransformationMethod`"
+        errorLine1="        mTransformationMethod = new EmojiTransformationMethod(mWrappedTransformationMethod);"
+        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="85"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        assertNull(mTransformationMethod.getTransformation(null, mView));"
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="90"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        mTransformationMethod.getTransformation(&quot;&quot;, null);"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="96"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `EmojiTransformationMethod`"
+        errorLine1="        mTransformationMethod = new EmojiTransformationMethod(null);"
+        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="101"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="103"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="111"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="125"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="138"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getTransformation`"
+        errorLine1="        final CharSequence result = mTransformationMethod.getTransformation(mTestString, mView);"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/viewsintegration/EmojiTransformationMethodTest.java"
+            line="151"
+            column="59"/>
+    </issue>
+
+</issues>
diff --git a/emoji2/emoji2-views/lint-baseline.xml b/emoji2/emoji2-views/lint-baseline.xml
new file mode 100644
index 0000000..06bb19f
--- /dev/null
+++ b/emoji2/emoji2-views/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 15 (current min is 14): `android.view.View#hasOnClickListeners`"
+        errorLine1="        assertTrue(extractButton.hasOnClickListeners());"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/widget/EmojiExtractTextLayoutTest.java"
+            line="178"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 15 (current min is 14): `android.view.View#hasOnClickListeners`"
+        errorLine1="        assertFalse(extractButton.hasOnClickListeners());"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/widget/EmojiExtractTextLayoutTest.java"
+            line="200"
+            column="35"/>
+    </issue>
+
+</issues>
diff --git a/emoji2/emoji2/lint-baseline.xml b/emoji2/emoji2/lint-baseline.xml
new file mode 100644
index 0000000..4d10805
--- /dev/null
+++ b/emoji2/emoji2/lint-baseline.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Collection#stream`"
+        errorLine1="        return result.stream().anyMatch((item) ->"
+        errorLine2="                      ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="77"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.stream.Stream#anyMatch`"
+        errorLine1="        return result.stream().anyMatch((item) ->"
+        errorLine2="                               ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="77"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="            when(helper.getProviderInfo(eq(info))).thenReturn(info.providerInfo);"
+        errorLine2="                                                              ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="217"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo = new ProviderInfo();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="246"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo.authority = authority;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="247"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo.packageName = packageName;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="248"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo.name = &quot;name to make toString happy :)&quot;;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="249"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo.applicationInfo = new ApplicationInfo();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="250"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.content.pm.ResolveInfo#providerInfo`"
+        errorLine1="        info.providerInfo.applicationInfo.flags = flags;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/DefaultEmojiCompatConfigTest.java"
+            line="251"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `create`"
+        errorLine1="            loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class)));"
+        errorLine2="                                                 ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java"
+            line="46"
+            column="50"/>
+    </issue>
+
+</issues>
diff --git a/emoji2/integration-tests/init-disabled-macrobenchmark/lint-baseline.xml b/emoji2/integration-tests/init-disabled-macrobenchmark/lint-baseline.xml
new file mode 100644
index 0000000..f67584d
--- /dev/null
+++ b/emoji2/integration-tests/init-disabled-macrobenchmark/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/integration/macrobenchmark/disabled/EmojiStartupBenchmark.kt"
+            line="33"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="        benchmarkRule.measureStartup("
+        errorLine2="                      ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/integration/macrobenchmark/disabled/EmojiStartupBenchmark.kt"
+            line="37"
+            column="23"/>
+    </issue>
+
+</issues>
diff --git a/emoji2/integration-tests/init-enabled-macrobenchmark/lint-baseline.xml b/emoji2/integration-tests/init-enabled-macrobenchmark/lint-baseline.xml
new file mode 100644
index 0000000..b49d89b
--- /dev/null
+++ b/emoji2/integration-tests/init-enabled-macrobenchmark/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/integration/macrobenchmark/enabled/EmojiStartupBenchmark.kt"
+            line="36"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="        benchmarkRule.measureStartup("
+        errorLine2="                      ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/emoji2/integration/macrobenchmark/enabled/EmojiStartupBenchmark.kt"
+            line="42"
+            column="23"/>
+    </issue>
+
+</issues>
diff --git a/enterprise/feedback/lint-baseline.xml b/enterprise/feedback/lint-baseline.xml
new file mode 100644
index 0000000..2575dd7
--- /dev/null
+++ b/enterprise/feedback/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.content.ServiceConnection#onBindingDied`"
+        errorLine1="        getServiceConnection().onBindingDied(mTestComponentName);"
+        errorLine2="                               ~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/enterprise/feedback/BufferedServiceConnectionTest.java"
+            line="453"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 21): `android.content.ServiceConnection#onBindingDied`"
+        errorLine1="        getServiceConnection().onBindingDied(mTestComponentName);"
+        errorLine2="                               ~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java"
+            line="601"
+            column="32"/>
+    </issue>
+
+</issues>
diff --git a/exifinterface/exifinterface/lint-baseline.xml b/exifinterface/exifinterface/lint-baseline.xml
index b78a5f8..60982c9 100644
--- a/exifinterface/exifinterface/lint-baseline.xml
+++ b/exifinterface/exifinterface/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.system.Os#close`"
+        errorLine1="                Os.close(fd);"
+        errorLine2="                   ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java"
+            line="1364"
+            column="20"/>
+    </issue>
 
     <issue
         id="UnknownNullness"
diff --git a/fragment/fragment/lint-baseline.xml b/fragment/fragment/lint-baseline.xml
new file mode 100644
index 0000000..e394c82
--- /dev/null
+++ b/fragment/fragment/lint-baseline.xml
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition()`"
+        errorLine1="class TrackingTransition : Transition(), TargetTracking {"
+        errorLine2="                           ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="36"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 19 (current min is 14): `android.transition.Transition`"
+        errorLine1="class TrackingTransition : Transition(), TargetTracking {"
+        errorLine2="                           ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="36"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#values`"
+        errorLine1="        transitionValues.values[PROP] = 0"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="46"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#values`"
+        errorLine1="        transitionValues.values[PROP] = 1"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="50"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.TransitionValues#equals`"
+        errorLine1="        if (startValues != null) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="58"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#view`"
+        errorLine1="            exitingTargets.add(startValues.view)"
+        errorLine2="                               ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="59"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.TransitionValues#equals`"
+        errorLine1="        if (endValues != null) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="61"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#view`"
+        errorLine1="            enteringTargets.add(endValues.view)"
+        errorLine2="                                ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="62"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.transition.Transition#getEpicenter`"
+        errorLine1="        if (epicenter != null) {"
+        errorLine2="            ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="64"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.transition.Transition#getEpicenter`"
+        errorLine1="            capturedEpicenter.set(Rect(epicenter))"
+        errorLine2="                                       ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingTransition.kt"
+            line="65"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 19 (current min is 14): `android.transition.Visibility`"
+        errorLine1="public class TrackingVisibility extends Visibility implements TargetTracking {"
+        errorLine2="                                        ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingVisibility.java"
+            line="37"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#view`"
+        errorLine1="        mEnteringTargets.add(endValues.view);"
+        errorLine2="                             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingVisibility.java"
+            line="51"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.transition.Transition#getEpicenter`"
+        errorLine1="        Rect epicenter = getEpicenter();"
+        errorLine2="                         ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingVisibility.java"
+            line="52"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 19 (current min is 14): `android.transition.TransitionValues#view`"
+        errorLine1="        mExitingTargets.add(startValues.view);"
+        errorLine2="                            ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingVisibility.java"
+            line="64"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `android.transition.Transition#getEpicenter`"
+        errorLine1="        Rect epicenter = getEpicenter();"
+        errorLine2="                         ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TrackingVisibility.java"
+            line="65"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        enterTransition.addListener(listener)"
+        errorLine2="                        ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="56"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        enterTransition.addListener(listener)"
+        errorLine2="                        ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="56"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        sharedElementEnter.addListener(listener)"
+        errorLine2="                           ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="57"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        sharedElementEnter.addListener(listener)"
+        errorLine2="                           ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="57"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        reenterTransition.addListener(listener)"
+        errorLine2="                          ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="58"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        reenterTransition.addListener(listener)"
+        errorLine2="                          ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="58"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        exitTransition.addListener(listener)"
+        errorLine2="                       ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="59"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        exitTransition.addListener(listener)"
+        errorLine2="                       ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="59"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        returnTransition.addListener(listener)"
+        errorLine2="                         ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="60"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        returnTransition.addListener(listener)"
+        errorLine2="                         ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="60"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        sharedElementReturn.addListener(listener)"
+        errorLine2="                            ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="61"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `android.transition.Transition#addListener`"
+        errorLine1="        sharedElementReturn.addListener(listener)"
+        errorLine2="                            ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="61"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 19 (current min is 14): `android.transition.Transition.TransitionListener`"
+        errorLine1=") : Transition.TransitionListener {"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/fragment/app/TransitionFragment.kt"
+            line="80"
+            column="5"/>
+    </issue>
+
+</issues>
diff --git a/gridlayout/gridlayout/lint-baseline.xml b/gridlayout/gridlayout/lint-baseline.xml
index 6d404cc..7e84c1a 100644
--- a/gridlayout/gridlayout/lint-baseline.xml
+++ b/gridlayout/gridlayout/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `new android.widget.FrameLayout`"
+        errorLine1="        super(context, attrs, defStyleAttr, defStyleRes);"
+        errorLine2="        ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/gridlayout/widget/TestContentView.java"
+            line="53"
+            column="9"/>
+    </issue>
 
     <issue
         id="UnknownNullness"
diff --git a/health/health-services-client/lint-baseline.xml b/health/health-services-client/lint-baseline.xml
index b83c18e..2569c46 100644
--- a/health/health-services-client/lint-baseline.xml
+++ b/health/health-services-client/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanKeepAnnotation"
diff --git a/heifwriter/heifwriter/lint-baseline.xml b/heifwriter/heifwriter/lint-baseline.xml
index 9b1eb37..2f2db270a 100644
--- a/heifwriter/heifwriter/lint-baseline.xml
+++ b/heifwriter/heifwriter/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/inspection/inspection/lint-baseline.xml b/inspection/inspection/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/inspection/inspection/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/leanback/leanback-preference/lint-baseline.xml b/leanback/leanback-preference/lint-baseline.xml
index 9a1dcc3..5a42702 100644
--- a/leanback/leanback-preference/lint-baseline.xml
+++ b/leanback/leanback-preference/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="MissingLeanbackLauncher"
diff --git a/leanback/leanback/lint-baseline.xml b/leanback/leanback/lint-baseline.xml
index c62f6c6..4f85890 100644
--- a/leanback/leanback/lint-baseline.xml
+++ b/leanback/leanback/lint-baseline.xml
@@ -1,5 +1,93 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 17): `android.view.ViewGroup#setLayoutMode`"
+        errorLine1="            mGridView.setLayoutMode(ViewGroup.LAYOUT_MODE_OPTICAL_BOUNDS);"
+        errorLine2="                      ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/widget/GridActivity.java"
+            line="130"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 17): `android.view.ViewGroup#setLayoutMode`"
+        errorLine1="                viewGroup.setLayoutMode(ViewGroup.LAYOUT_MODE_OPTICAL_BOUNDS);"
+        errorLine2="                          ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/widget/GridActivity.java"
+            line="461"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 17): `android.app.Activity#enterPictureInPictureMode`"
+        errorLine1="                    getActivity().enterPictureInPictureMode();"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/PlaybackTestFragment.java"
+            line="104"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 17): `android.app.Activity#enterPictureInPictureMode`"
+        errorLine1="                    getActivity().enterPictureInPictureMode();"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/PlaybackTestSupportFragment.java"
+            line="101"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 17): `java.util.Objects#equals`"
+        errorLine1="            if (!Objects.equals(mPreviousQuery, newQuery)) {"
+        errorLine2="                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/SearchFragmentTest.java"
+            line="245"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 17): `java.util.Objects#equals`"
+        errorLine1="            if (!Objects.equals(mPreviousQuery, query)) {"
+        errorLine2="                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/SearchFragmentTest.java"
+            line="256"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 17): `java.util.Objects#equals`"
+        errorLine1="            if (!Objects.equals(mPreviousQuery, newQuery)) {"
+        errorLine2="                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/SearchSupportFragmentTest.java"
+            line="242"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 17): `java.util.Objects#equals`"
+        errorLine1="            if (!Objects.equals(mPreviousQuery, query)) {"
+        errorLine2="                         ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/leanback/app/SearchSupportFragmentTest.java"
+            line="253"
+            column="26"/>
+    </issue>
 
     <issue
         id="WrongConstant"
@@ -5199,7 +5287,7 @@
         errorLine2="              ~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="542"
+            line="541"
             column="15"/>
     </issue>
 
@@ -5210,7 +5298,7 @@
         errorLine2="                                ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="542"
+            line="541"
             column="33"/>
     </issue>
 
@@ -5221,7 +5309,7 @@
         errorLine2="                                                         ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="542"
+            line="541"
             column="58"/>
     </issue>
 
@@ -5232,7 +5320,7 @@
         errorLine2="            ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="543"
+            line="542"
             column="13"/>
     </issue>
 
@@ -5243,7 +5331,7 @@
         errorLine2="           ~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="548"
+            line="547"
             column="12"/>
     </issue>
 
@@ -5254,7 +5342,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="548"
+            line="547"
             column="36"/>
     </issue>
 
@@ -5265,7 +5353,7 @@
         errorLine2="                                                            ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="548"
+            line="547"
             column="61"/>
     </issue>
 
@@ -5276,7 +5364,7 @@
         errorLine2="                                   ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="549"
+            line="548"
             column="36"/>
     </issue>
 
@@ -5287,7 +5375,7 @@
         errorLine2="                                  ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="569"
+            line="568"
             column="35"/>
     </issue>
 
@@ -5298,7 +5386,7 @@
         errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="580"
+            line="579"
             column="53"/>
     </issue>
 
@@ -5309,7 +5397,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="610"
+            line="609"
             column="12"/>
     </issue>
 
@@ -5320,7 +5408,7 @@
         errorLine2="                                  ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="772"
+            line="771"
             column="35"/>
     </issue>
 
@@ -5331,7 +5419,7 @@
         errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="772"
+            line="771"
             column="59"/>
     </issue>
 
@@ -5342,7 +5430,7 @@
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="797"
+            line="796"
             column="50"/>
     </issue>
 
@@ -5353,7 +5441,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="798"
+            line="797"
             column="13"/>
     </issue>
 
@@ -5364,7 +5452,7 @@
         errorLine2="              ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="829"
+            line="828"
             column="15"/>
     </issue>
 
@@ -5375,7 +5463,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="835"
+            line="834"
             column="42"/>
     </issue>
 
@@ -5386,7 +5474,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsFragment.java"
-            line="862"
+            line="861"
             column="12"/>
     </issue>
 
@@ -6343,7 +6431,7 @@
         errorLine2="              ~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="537"
+            line="536"
             column="15"/>
     </issue>
 
@@ -6354,7 +6442,7 @@
         errorLine2="                                ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="537"
+            line="536"
             column="33"/>
     </issue>
 
@@ -6365,7 +6453,7 @@
         errorLine2="                                                         ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="537"
+            line="536"
             column="58"/>
     </issue>
 
@@ -6376,7 +6464,7 @@
         errorLine2="            ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="538"
+            line="537"
             column="13"/>
     </issue>
 
@@ -6387,7 +6475,7 @@
         errorLine2="           ~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="543"
+            line="542"
             column="12"/>
     </issue>
 
@@ -6398,7 +6486,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="543"
+            line="542"
             column="36"/>
     </issue>
 
@@ -6409,7 +6497,7 @@
         errorLine2="                                                            ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="543"
+            line="542"
             column="61"/>
     </issue>
 
@@ -6420,7 +6508,7 @@
         errorLine2="                                   ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="544"
+            line="543"
             column="36"/>
     </issue>
 
@@ -6431,7 +6519,7 @@
         errorLine2="                                  ~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="564"
+            line="563"
             column="35"/>
     </issue>
 
@@ -6442,7 +6530,7 @@
         errorLine2="                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="575"
+            line="574"
             column="53"/>
     </issue>
 
@@ -6453,7 +6541,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="605"
+            line="604"
             column="12"/>
     </issue>
 
@@ -6464,7 +6552,7 @@
         errorLine2="                                  ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="767"
+            line="766"
             column="35"/>
     </issue>
 
@@ -6475,7 +6563,7 @@
         errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="767"
+            line="766"
             column="59"/>
     </issue>
 
@@ -6486,7 +6574,7 @@
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="792"
+            line="791"
             column="50"/>
     </issue>
 
@@ -6497,7 +6585,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="793"
+            line="792"
             column="13"/>
     </issue>
 
@@ -6508,7 +6596,7 @@
         errorLine2="              ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="824"
+            line="823"
             column="15"/>
     </issue>
 
@@ -6519,7 +6607,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="830"
+            line="829"
             column="42"/>
     </issue>
 
@@ -6530,7 +6618,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/DetailsSupportFragment.java"
-            line="857"
+            line="856"
             column="12"/>
     </issue>
 
@@ -19807,7 +19895,7 @@
         errorLine2="           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="461"
+            line="460"
             column="12"/>
     </issue>
 
@@ -19818,7 +19906,7 @@
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="492"
+            line="491"
             column="41"/>
     </issue>
 
@@ -19829,7 +19917,7 @@
         errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="505"
+            line="504"
             column="47"/>
     </issue>
 
@@ -19840,7 +19928,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="515"
+            line="514"
             column="46"/>
     </issue>
 
@@ -19851,7 +19939,7 @@
         errorLine2="                         ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="529"
+            line="528"
             column="26"/>
     </issue>
 
@@ -19862,7 +19950,7 @@
         errorLine2="           ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="539"
+            line="538"
             column="12"/>
     </issue>
 
@@ -19873,7 +19961,7 @@
         errorLine2="                                 ~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="550"
+            line="549"
             column="34"/>
     </issue>
 
@@ -19884,7 +19972,7 @@
         errorLine2="           ~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="560"
+            line="559"
             column="12"/>
     </issue>
 
@@ -19895,7 +19983,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="572"
+            line="571"
             column="43"/>
     </issue>
 
@@ -19906,7 +19994,7 @@
         errorLine2="                                                     ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="583"
+            line="582"
             column="54"/>
     </issue>
 
@@ -19917,7 +20005,7 @@
         errorLine2="                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="596"
+            line="595"
             column="36"/>
     </issue>
 
@@ -19928,7 +20016,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="607"
+            line="606"
             column="36"/>
     </issue>
 
@@ -19939,7 +20027,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="618"
+            line="617"
             column="46"/>
     </issue>
 
@@ -19950,7 +20038,7 @@
         errorLine2="                               ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="637"
+            line="636"
             column="32"/>
     </issue>
 
@@ -19961,7 +20049,7 @@
         errorLine2="                               ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="658"
+            line="657"
             column="32"/>
     </issue>
 
@@ -19972,7 +20060,7 @@
         errorLine2="           ~~~~~~">
         <location
             file="src/main/java/androidx/leanback/app/SearchFragment.java"
-            line="680"
+            line="679"
             column="12"/>
     </issue>
 
diff --git a/legacy/core-utils/lint-baseline.xml b/legacy/core-utils/lint-baseline.xml
index e679463..7a92d66 100644
--- a/legacy/core-utils/lint-baseline.xml
+++ b/legacy/core-utils/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/lifecycle/integration-tests/testapp/lint-baseline.xml b/lifecycle/integration-tests/testapp/lint-baseline.xml
index 43ce3f8..f14a772 100644
--- a/lifecycle/integration-tests/testapp/lint-baseline.xml
+++ b/lifecycle/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/lifecycle/lifecycle-common/lint-baseline.xml b/lifecycle/lifecycle-common/lint-baseline.xml
index 19217a6..3d410e5 100644
--- a/lifecycle/lifecycle-common/lint-baseline.xml
+++ b/lifecycle/lifecycle-common/lint-baseline.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        mMethod.invoke(target);"
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -14,7 +14,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        mMethod.invoke(target, source);"
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -25,7 +25,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        mMethod.invoke(target, source, event);"
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/lifecycle/lifecycle-extensions/lint-baseline.xml b/lifecycle/lifecycle-extensions/lint-baseline.xml
index 0e44e2a..a605164 100644
--- a/lifecycle/lifecycle-extensions/lint-baseline.xml
+++ b/lifecycle/lifecycle-extensions/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="PrivateConstructorForUtilityClass"
diff --git a/lifecycle/lifecycle-livedata-core/lint-baseline.xml b/lifecycle/lifecycle-livedata-core/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/lifecycle/lifecycle-livedata-core/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml b/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
index c7fbfe9..7fcfb02 100644
--- a/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
+++ b/lifecycle/lifecycle-livedata-ktx/lint-baseline.xml
@@ -1,5 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.time.Duration#ofSeconds`"
+        errorLine1="        val ld = liveData(timeout = Duration.ofSeconds(5)) {"
+        errorLine2="                                             ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/lifecycle/BuildLiveDataTest.kt"
+            line="105"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `liveData`"
+        errorLine1="        val ld = liveData(timeout = Duration.ofSeconds(5)) {"
+        errorLine2="                 ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/lifecycle/BuildLiveDataTest.kt"
+            line="105"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `asLiveData`"
+        errorLine1="        }.asLiveData(timeout = Duration.ofSeconds(5))"
+        errorLine2="          ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/lifecycle/FlowAsLiveDataTest.kt"
+            line="150"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.time.Duration#ofSeconds`"
+        errorLine1="        }.asLiveData(timeout = Duration.ofSeconds(5))"
+        errorLine2="                                        ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/lifecycle/FlowAsLiveDataTest.kt"
+            line="150"
+            column="41"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
@@ -19,7 +63,7 @@
         errorLine2="                                             ~~~~~~~~">
         <location
             file="src/main/java/androidx/lifecycle/FlowLiveData.kt"
-            line="148"
+            line="150"
             column="46"/>
     </issue>
 
diff --git a/lifecycle/lifecycle-livedata/lint-baseline.xml b/lifecycle/lifecycle-livedata/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/lifecycle/lifecycle-livedata/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/lifecycle/lifecycle-process/lint-baseline.xml b/lifecycle/lifecycle-process/lint-baseline.xml
index 12b9fa8..8195350 100644
--- a/lifecycle/lifecycle-process/lint-baseline.xml
+++ b/lifecycle/lifecycle-process/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/lifecycle/lifecycle-reactivestreams/lint-baseline.xml b/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
index f07a798..4cd059f 100644
--- a/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
+++ b/lifecycle/lifecycle-reactivestreams/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
diff --git a/lifecycle/lifecycle-runtime/lint-baseline.xml b/lifecycle/lifecycle-runtime/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/lifecycle/lifecycle-runtime/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml b/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
index 6511368..d2c3608 100644
--- a/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
+++ b/lifecycle/lifecycle-viewmodel-savedstate/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
diff --git a/lint-checks/integration-tests/lint-baseline.xml b/lint-checks/integration-tests/lint-baseline.xml
deleted file mode 100644
index bc3b76a..0000000
--- a/lint-checks/integration-tests/lint-baseline.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.2.0-beta04" client="gradle" variant="debug" version="4.2.0-beta04">
-
-    <issue
-        id="UnknownIssueId"
-        message="Unknown issue id &quot;ComposableLambdaParameterNaming&quot;">
-        <location
-            file="build.gradle"/>
-    </issue>
-
-    <issue
-        id="UnknownIssueId"
-        message="Unknown issue id &quot;ComposableLambdaParameterPosition&quot;">
-        <location
-            file="build.gradle"/>
-    </issue>
-
-    <issue
-        id="UnknownIssueId"
-        message="Unknown issue id &quot;ComposableNaming&quot;">
-        <location
-            file="build.gradle"/>
-    </issue>
-
-    <issue
-        id="UnknownIssueId"
-        message="Unknown issue id &quot;CompositionLocalNaming&quot;">
-        <location
-            file="build.gradle"/>
-    </issue>
-
-</issues>
diff --git a/lint-checks/lint-baseline.xml b/lint-checks/lint-baseline.xml
new file mode 100644
index 0000000..78bd597
--- /dev/null
+++ b/lint-checks/lint-baseline.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="BanConcurrentHashMap"
+        message="Detected ConcurrentHashMap usage."
+        errorLine1="import java.util.concurrent.ConcurrentHashMap;"
+        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/ConcurrentHashMapUsageJava.java"
+            line="22"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="BanConcurrentHashMap"
+        message="Detected ConcurrentHashMap usage."
+        errorLine1="import java.util.concurrent.ConcurrentHashMap;"
+        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/Sample.java"
+            line="19"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="BanSynchronizedMethods"
+        message="Use of synchronized methods is not recommended"
+        errorLine1="    public synchronized void someMethod() {"
+        errorLine2="    ^">
+        <location
+            file="integration-tests/src/main/java/androidx/SynchronizedMethodJava.java"
+            line="22"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="IdeaSuppression"
+        message="Uses IntelliJ-specific suppression, should use `@SuppressWarnings(&quot;deprecation&quot;)`"
+        errorLine1="        //noinspection deprecation"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/IdeaSuppressionJava.java"
+            line="29"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="PrivateConstructorForUtilityClass"
+        message="Utility class is missing private constructor"
+        errorLine1="    static class DefaultInnerClass {"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/PrivateConstructorForUtilityClassJava.java"
+            line="37"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="PrivateConstructorForUtilityClass"
+        message="Utility class is missing private constructor"
+        errorLine1="    protected static class ProtectedInnerClass {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/PrivateConstructorForUtilityClassJava.java"
+            line="46"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="PrivateConstructorForUtilityClass"
+        message="Utility class is missing private constructor"
+        errorLine1="    public static class PublicInnerClass {"
+        errorLine2="                        ~~~~~~~~~~~~~~~~">
+        <location
+            file="integration-tests/src/main/java/androidx/PrivateConstructorForUtilityClassJava.java"
+            line="55"
+            column="25"/>
+    </issue>
+
+</issues>
diff --git a/lint-demos/lint-demo-appcompat/lint-baseline.xml b/lint-demos/lint-demo-appcompat/lint-baseline.xml
index 9445a67..bdc3acc 100644
--- a/lint-demos/lint-demo-appcompat/lint-baseline.xml
+++ b/lint-demos/lint-demo-appcompat/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/media/media/lint-baseline.xml b/media/media/lint-baseline.xml
index 2386b46..c38d6d6 100644
--- a/media/media/lint-baseline.xml
+++ b/media/media/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
@@ -96,7 +96,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/media/AudioAttributesImplApi21.java"
-            line="42"
+            line="41"
             column="12"/>
     </issue>
 
@@ -1768,7 +1768,7 @@
         errorLine2="                            ~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="619"
+            line="621"
             column="29"/>
     </issue>
 
@@ -1779,7 +1779,7 @@
         errorLine2="                            ~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="635"
+            line="637"
             column="29"/>
     </issue>
 
@@ -1790,7 +1790,7 @@
         errorLine2="                                               ~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="635"
+            line="637"
             column="48"/>
     </issue>
 
@@ -1801,7 +1801,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="651"
+            line="653"
             column="36"/>
     </issue>
 
@@ -1812,7 +1812,7 @@
         errorLine2="                                       ~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="668"
+            line="670"
             column="40"/>
     </issue>
 
@@ -1823,7 +1823,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="710"
+            line="712"
             column="37"/>
     </issue>
 
@@ -1834,7 +1834,7 @@
         errorLine2="                                 ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="754"
+            line="756"
             column="34"/>
     </issue>
 
@@ -1845,7 +1845,7 @@
         errorLine2="                                               ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="754"
+            line="756"
             column="48"/>
     </issue>
 
@@ -1856,7 +1856,7 @@
         errorLine2="           ~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="784"
+            line="786"
             column="12"/>
     </issue>
 
@@ -1867,7 +1867,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="794"
+            line="796"
             column="12"/>
     </issue>
 
@@ -1878,7 +1878,7 @@
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="803"
+            line="805"
             column="34"/>
     </issue>
 
@@ -1889,7 +1889,7 @@
         errorLine2="                            ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="815"
+            line="817"
             column="29"/>
     </issue>
 
@@ -1900,7 +1900,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="831"
+            line="833"
             column="26"/>
     </issue>
 
@@ -1911,7 +1911,7 @@
         errorLine2="                              ~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="855"
+            line="857"
             column="31"/>
     </issue>
 
@@ -1922,7 +1922,7 @@
         errorLine2="                          ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="924"
+            line="926"
             column="27"/>
     </issue>
 
@@ -1933,7 +1933,7 @@
         errorLine2="           ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="938"
+            line="940"
             column="12"/>
     </issue>
 
@@ -1944,7 +1944,7 @@
         errorLine2="           ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="952"
+            line="954"
             column="12"/>
     </issue>
 
@@ -1955,7 +1955,7 @@
         errorLine2="           ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="988"
+            line="990"
             column="12"/>
     </issue>
 
@@ -1966,7 +1966,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="999"
+            line="1001"
             column="43"/>
     </issue>
 
@@ -1977,7 +1977,7 @@
         errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1012"
+            line="1014"
             column="46"/>
     </issue>
 
@@ -1988,7 +1988,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1035"
+            line="1037"
             column="19"/>
     </issue>
 
@@ -1999,7 +1999,7 @@
         errorLine2="                                                      ~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1035"
+            line="1037"
             column="55"/>
     </issue>
 
@@ -2010,7 +2010,7 @@
         errorLine2="                                                                       ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1035"
+            line="1037"
             column="72"/>
     </issue>
 
@@ -2021,7 +2021,7 @@
         errorLine2="                              ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1168"
+            line="1170"
             column="31"/>
     </issue>
 
@@ -2032,7 +2032,7 @@
         errorLine2="                                              ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1168"
+            line="1170"
             column="47"/>
     </issue>
 
@@ -2043,7 +2043,7 @@
         errorLine2="                                                             ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1168"
+            line="1170"
             column="62"/>
     </issue>
 
@@ -2054,7 +2054,7 @@
         errorLine2="                                          ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1182"
+            line="1184"
             column="43"/>
     </issue>
 
@@ -2065,7 +2065,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1275"
+            line="1277"
             column="42"/>
     </issue>
 
@@ -2076,7 +2076,7 @@
         errorLine2="                                                         ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1275"
+            line="1277"
             column="58"/>
     </issue>
 
@@ -2087,7 +2087,7 @@
         errorLine2="                                        ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1285"
+            line="1287"
             column="41"/>
     </issue>
 
@@ -2098,7 +2098,7 @@
         errorLine2="                                                      ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1285"
+            line="1287"
             column="55"/>
     </issue>
 
@@ -2109,7 +2109,7 @@
         errorLine2="                                     ~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1293"
+            line="1295"
             column="38"/>
     </issue>
 
@@ -2120,7 +2120,7 @@
         errorLine2="                                              ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1293"
+            line="1295"
             column="47"/>
     </issue>
 
@@ -2131,7 +2131,7 @@
         errorLine2="                                      ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1306"
+            line="1308"
             column="39"/>
     </issue>
 
@@ -2142,7 +2142,7 @@
         errorLine2="                                                      ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1306"
+            line="1308"
             column="55"/>
     </issue>
 
@@ -2153,7 +2153,7 @@
         errorLine2="                                     ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1315"
+            line="1317"
             column="38"/>
     </issue>
 
@@ -2164,7 +2164,7 @@
         errorLine2="                                                   ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1315"
+            line="1317"
             column="52"/>
     </issue>
 
@@ -2175,7 +2175,7 @@
         errorLine2="                                  ~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1321"
+            line="1323"
             column="35"/>
     </issue>
 
@@ -2186,7 +2186,7 @@
         errorLine2="                                           ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1321"
+            line="1323"
             column="44"/>
     </issue>
 
@@ -2197,7 +2197,7 @@
         errorLine2="                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1380"
+            line="1382"
             column="33"/>
     </issue>
 
@@ -2208,7 +2208,7 @@
         errorLine2="                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1389"
+            line="1391"
             column="33"/>
     </issue>
 
@@ -2219,7 +2219,7 @@
         errorLine2="                                                     ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1389"
+            line="1391"
             column="54"/>
     </issue>
 
@@ -2230,7 +2230,7 @@
         errorLine2="                                   ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1460"
+            line="1462"
             column="36"/>
     </issue>
 
@@ -2241,7 +2241,7 @@
         errorLine2="                                                  ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1460"
+            line="1462"
             column="51"/>
     </issue>
 
@@ -2252,7 +2252,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1470"
+            line="1472"
             column="36"/>
     </issue>
 
@@ -2263,7 +2263,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1482"
+            line="1484"
             column="36"/>
     </issue>
 
@@ -2274,7 +2274,7 @@
         errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1493"
+            line="1495"
             column="39"/>
     </issue>
 
@@ -2285,7 +2285,7 @@
         errorLine2="                      ~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1954"
+            line="1956"
             column="23"/>
     </issue>
 
@@ -2296,7 +2296,7 @@
         errorLine2="                                      ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1954"
+            line="1956"
             column="39"/>
     </issue>
 
@@ -2307,7 +2307,7 @@
         errorLine2="                      ~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1972"
+            line="1974"
             column="23"/>
     </issue>
 
@@ -2318,7 +2318,7 @@
         errorLine2="                                      ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1972"
+            line="1974"
             column="39"/>
     </issue>
 
@@ -2329,7 +2329,7 @@
         errorLine2="                                                    ~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1972"
+            line="1974"
             column="53"/>
     </issue>
 
@@ -2340,7 +2340,7 @@
         errorLine2="                                  ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="1989"
+            line="1991"
             column="35"/>
     </issue>
 
@@ -2351,7 +2351,7 @@
         errorLine2="               ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2033"
+            line="2035"
             column="16"/>
     </issue>
 
@@ -2362,7 +2362,7 @@
         errorLine2="               ~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2041"
+            line="2043"
             column="16"/>
     </issue>
 
@@ -2373,7 +2373,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2051"
+            line="2053"
             column="36"/>
     </issue>
 
@@ -2384,7 +2384,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2061"
+            line="2063"
             column="16"/>
     </issue>
 
@@ -2395,7 +2395,7 @@
         errorLine2="                                     ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2071"
+            line="2073"
             column="38"/>
     </issue>
 
@@ -2406,7 +2406,7 @@
         errorLine2="               ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2081"
+            line="2083"
             column="16"/>
     </issue>
 
@@ -2417,7 +2417,7 @@
         errorLine2="                      ~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2103"
+            line="2105"
             column="23"/>
     </issue>
 
@@ -2428,7 +2428,7 @@
         errorLine2="                                       ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2103"
+            line="2105"
             column="40"/>
     </issue>
 
@@ -2439,7 +2439,7 @@
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2158"
+            line="2160"
             column="26"/>
     </issue>
 
@@ -2450,7 +2450,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2185"
+            line="2187"
             column="16"/>
     </issue>
 
@@ -2461,7 +2461,7 @@
         errorLine2="                                  ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2197"
+            line="2199"
             column="35"/>
     </issue>
 
@@ -2472,7 +2472,7 @@
         errorLine2="               ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2217"
+            line="2219"
             column="16"/>
     </issue>
 
@@ -2483,7 +2483,7 @@
         errorLine2="                      ~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2237"
+            line="2239"
             column="23"/>
     </issue>
 
@@ -2494,7 +2494,7 @@
         errorLine2="                                              ~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2237"
+            line="2239"
             column="47"/>
     </issue>
 
@@ -2505,7 +2505,7 @@
         errorLine2="                      ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2259"
+            line="2261"
             column="23"/>
     </issue>
 
@@ -2516,7 +2516,7 @@
         errorLine2="                                                        ~~~~~~~">
         <location
             file="src/main/java/android/support/v4/media/session/MediaSessionCompat.java"
-            line="2259"
+            line="2261"
             column="57"/>
     </issue>
 
diff --git a/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java b/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
index 5f0fe6b..4466deb 100644
--- a/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
+++ b/media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
@@ -2106,6 +2106,7 @@
             if (tokenBundle == null) {
                 return null;
             }
+            tokenBundle.setClassLoader(Token.class.getClassLoader());
             IMediaSession extraSession = IMediaSession.Stub.asInterface(
                     BundleCompat.getBinder(tokenBundle, KEY_EXTRA_BINDER));
             VersionedParcelable session2Token = ParcelUtils.getVersionedParcelable(tokenBundle,
diff --git a/media/version-compat-tests/lib/lint-baseline.xml b/media/version-compat-tests/lib/lint-baseline.xml
index 2c98d21..8c8180a 100644
--- a/media/version-compat-tests/lib/lint-baseline.xml
+++ b/media/version-compat-tests/lib/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/media2/integration-tests/testapp/lint-baseline.xml b/media2/integration-tests/testapp/lint-baseline.xml
index cfeacea..30c28ce 100644
--- a/media2/integration-tests/testapp/lint-baseline.xml
+++ b/media2/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/media2/media2-common/lint-baseline.xml b/media2/media2-common/lint-baseline.xml
index ec087a8..9156dc3 100644
--- a/media2/media2-common/lint-baseline.xml
+++ b/media2/media2-common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/media2/media2-player/lint-baseline.xml b/media2/media2-player/lint-baseline.xml
index 04da466..83e88ea 100644
--- a/media2/media2-player/lint-baseline.xml
+++ b/media2/media2-player/lint-baseline.xml
@@ -1,5 +1,93 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 16): `android.app.Activity#setTurnScreenOn`"
+        errorLine1="                mActivity.setTurnScreenOn(true);"
+        errorLine2="                          ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"
+            line="111"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 16): `android.app.Activity#setShowWhenLocked`"
+        errorLine1="                mActivity.setShowWhenLocked(true);"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"
+            line="112"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 16): `android.app.KeyguardManager#requestDismissKeyguard`"
+        errorLine1="                mKeyguardManager.requestDismissKeyguard(mActivity, null);"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"
+            line="113"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.media.MediaDrm.KeyRequest#getData`"
+        errorLine1="        if (0 == getKeyIds(keyRequest.getData(), keyIds)) {"
+        errorLine2="                                      ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"
+            line="874"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 16): `android.app.Activity#setTurnScreenOn`"
+        errorLine1="                mActivity.setTurnScreenOn(true);"
+        errorLine2="                          ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"
+            line="129"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 16): `android.app.Activity#setShowWhenLocked`"
+        errorLine1="                mActivity.setShowWhenLocked(true);"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"
+            line="130"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 16): `android.app.KeyguardManager#requestDismissKeyguard`"
+        errorLine1="                mKeyguardManager.requestDismissKeyguard(mActivity, null);"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"
+            line="131"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 16): `android.media.MediaDrm.KeyRequest#getData`"
+        errorLine1="        if (0 == getKeyIds(keyRequest.getData(), keyIds)) {"
+        errorLine2="                                      ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"
+            line="955"
+            column="39"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -47,7 +135,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            return (FileDescriptor) method.invoke(object, fileDescriptor);"
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -58,7 +146,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            method.invoke(object, fileDescriptor, position, /* whence= */ SEEK_SET);"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -69,7 +157,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            return (FileDescriptor) method.invoke(object, fileDescriptor);"
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/media2/media2-player/src/main/java/androidx/media2/player/AudioFocusHandler.java b/media2/media2-player/src/main/java/androidx/media2/player/AudioFocusHandler.java
index 8679ed1..c33b952 100644
--- a/media2/media2-player/src/main/java/androidx/media2/player/AudioFocusHandler.java
+++ b/media2/media2-player/src/main/java/androidx/media2/player/AudioFocusHandler.java
@@ -337,7 +337,6 @@
             }
 
             // Note: This is always the main thread, except for the test.
-            // TODO(b/138091975) Do not ignore returned Futures if feasible.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void onReceive(Context context, Intent intent) {
@@ -382,7 +381,6 @@
 
             // This is the thread where the AudioManager was originally instantiated.
             // see: b/78617702
-            // TODO(b/138091975) Do not ignore returned Futures if feasible.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void onAudioFocusChange(int focusGain) {
diff --git a/media2/media2-session/lint-baseline.xml b/media2/media2-session/lint-baseline.xml
index a781bd7..82fa1c7 100644
--- a/media2/media2-session/lint-baseline.xml
+++ b/media2/media2-session/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java b/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java
index 0ebda7a..175835b 100644
--- a/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java
+++ b/media2/media2-session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java
@@ -171,7 +171,6 @@
     @Override
     public void onPrepare() {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_PREPARE, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -205,7 +204,6 @@
     @Override
     public void onPrepareFromUri(final Uri mediaUri, final Bundle extras) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_SESSION_SET_MEDIA_URI, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -220,7 +218,6 @@
     @Override
     public void onPlay() {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_PLAY, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -254,7 +251,6 @@
     @Override
     public void onPlayFromUri(final Uri mediaUri, final Bundle extras) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_SESSION_SET_MEDIA_URI, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -269,7 +265,6 @@
     @Override
     public void onPause() {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_PAUSE, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -288,7 +283,6 @@
             public void run(ControllerInfo controller) throws RemoteException {
                 handleTaskOnExecutor(controller, null,
                         SessionCommand.COMMAND_CODE_PLAYER_SEEK_TO, new SessionTask() {
-                            // TODO(b/138091975) Do not ignore the returned Future.
                             @SuppressWarnings("FutureReturnValueIgnored")
                             @Override
                             public void run(ControllerInfo controller) throws RemoteException {
@@ -303,7 +297,6 @@
     @Override
     public void onSeekTo(final long pos) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SEEK_TO, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -316,7 +309,6 @@
     public void onSkipToNext() {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_NEXT_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -329,7 +321,6 @@
     public void onSkipToPrevious() {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_PREVIOUS_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -341,7 +332,6 @@
     @Override
     public void onSetPlaybackSpeed(final float speed) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SET_SPEED, new SessionTask() {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void run(ControllerInfo controller) throws RemoteException {
@@ -354,7 +344,6 @@
     public void onSkipToQueueItem(final long queueId) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -432,7 +421,6 @@
     public void onSetRepeatMode(final int repeatMode) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SET_REPEAT_MODE,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -445,7 +433,6 @@
     public void onSetShuffleMode(final int shuffleMode) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_SET_SHUFFLE_MODE,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -466,7 +453,6 @@
         }
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_ADD_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -489,7 +475,6 @@
         }
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_REMOVE_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -514,7 +499,6 @@
     public void onRemoveQueueItemAt(final int index) {
         dispatchSessionTask(SessionCommand.COMMAND_CODE_PLAYER_REMOVE_PLAYLIST_ITEM,
                 new SessionTask() {
-                    // TODO(b/138091975) Do not ignore the returned Future.
                     @SuppressWarnings("FutureReturnValueIgnored")
                     @Override
                     public void run(ControllerInfo controller) throws RemoteException {
@@ -645,14 +629,12 @@
             @NonNull RemoteSessionPlayer player) {
         return new VolumeProviderCompat(player.getVolumeControlType(), player.getMaxVolume(),
                 player.getVolume()) {
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void onSetVolumeTo(int volume) {
                 player.setVolume(volume);
             }
 
-            // TODO(b/138091975) Do not ignore the returned Future.
             @SuppressWarnings("FutureReturnValueIgnored")
             @Override
             public void onAdjustVolume(int direction) {
diff --git a/media2/media2-session/version-compat-tests/common/lint-baseline.xml b/media2/media2-session/version-compat-tests/common/lint-baseline.xml
index e82d8f6..c001098 100644
--- a/media2/media2-session/version-compat-tests/common/lint-baseline.xml
+++ b/media2/media2-session/version-compat-tests/common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/media2/media2-session/version-compat-tests/current/service/lint-baseline.xml b/media2/media2-session/version-compat-tests/current/service/lint-baseline.xml
new file mode 100644
index 0000000..ef32285
--- /dev/null
+++ b/media2/media2-session/version-compat-tests/current/service/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 16): `java.util.Objects#equals`"
+        errorLine1="                    if (Objects.equals(mediaId, list.get(i))) {"
+        errorLine2="                                ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCallbackTest.java"
+            line="166"
+            column="33"/>
+    </issue>
+
+</issues>
diff --git a/media2/media2-session/version-compat-tests/previous/service/lint-baseline.xml b/media2/media2-session/version-compat-tests/previous/service/lint-baseline.xml
new file mode 100644
index 0000000..f350fcf
--- /dev/null
+++ b/media2/media2-session/version-compat-tests/previous/service/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 19): `getInstance`"
+        errorLine1="        MediaSessionManager sessionManager = MediaSessionManager.getInstance(mContext);"
+        errorLine2="                                                                 ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java"
+            line="63"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 19): `getSessionServiceTokens`"
+        errorLine1="        Set&lt;SessionToken> serviceTokens = sessionManager.getSessionServiceTokens();"
+        errorLine2="                                                         ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java"
+            line="64"
+            column="58"/>
+    </issue>
+
+</issues>
diff --git a/media2/media2-widget/lint-baseline.xml b/media2/media2-widget/lint-baseline.xml
index 314a6af..ac04ba9 100644
--- a/media2/media2-widget/lint-baseline.xml
+++ b/media2/media2-widget/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 24 (current min is 16): `android.view.PixelCopy.OnPixelCopyFinishedListener`"
+        errorLine1="                    PixelCopy.request(source, dest, new PixelCopy.OnPixelCopyFinishedListener() {"
+        errorLine2="                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/media2/widget/VideoView_WithPlayerTest.java"
+            line="478"
+            column="57"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/media2/media2-widget/src/androidTest/java/androidx/media2/widget/MediaWidgetTestBase.java b/media2/media2-widget/src/androidTest/java/androidx/media2/widget/MediaWidgetTestBase.java
index ba998cf..232b8e1 100644
--- a/media2/media2-widget/src/androidTest/java/androidx/media2/widget/MediaWidgetTestBase.java
+++ b/media2/media2-widget/src/androidTest/java/androidx/media2/widget/MediaWidgetTestBase.java
@@ -124,7 +124,6 @@
         return Uri.parse("android.resource://" + mContext.getPackageName() + "/" + resId);
     }
 
-    // TODO(b/138091975) Do not ignore returned Futures if feasible.
     @SuppressWarnings("FutureReturnValueIgnored")
     PlayerWrapper createPlayerWrapperOfController(@NonNull PlayerWrapper.PlayerCallback callback,
             @Nullable MediaItem item, @Nullable List<MediaItem> playlist) {
@@ -153,7 +152,6 @@
         return wrapper;
     }
 
-    // TODO(b/138091975) Do not ignore returned Futures if feasible.
     @SuppressWarnings("FutureReturnValueIgnored")
     PlayerWrapper createPlayerWrapperOfPlayer(@NonNull PlayerWrapper.PlayerCallback callback,
             @Nullable MediaItem item, @Nullable List<MediaItem> playlist) {
diff --git a/media2/media2-widget/src/main/java/androidx/media2/widget/PlayerWrapper.java b/media2/media2-widget/src/main/java/androidx/media2/widget/PlayerWrapper.java
index 21f7278..fdbbced 100644
--- a/media2/media2-widget/src/main/java/androidx/media2/widget/PlayerWrapper.java
+++ b/media2/media2-widget/src/main/java/androidx/media2/widget/PlayerWrapper.java
@@ -200,7 +200,6 @@
                 && mAllowedCommands.hasCommand(SessionCommand.COMMAND_CODE_PLAYER_DESELECT_TRACK);
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void pause() {
         if (mController != null) {
@@ -210,7 +209,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void play() {
         if (mController != null) {
@@ -220,7 +218,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void seekTo(long posMs) {
         if (mController != null) {
@@ -230,7 +227,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void skipToNextItem() {
         if (mController != null) {
@@ -240,7 +236,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void skipToPreviousItem() {
         if (mController != null) {
@@ -259,7 +254,6 @@
         return 1f;
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void setPlaybackSpeed(float speed) {
         if (mController != null) {
@@ -269,7 +263,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void selectTrack(TrackInfo trackInfo) {
         if (mController != null) {
@@ -279,7 +272,6 @@
         }
     }
 
-    // TODO(b/138091975) Do not ignore the returned Future.
     @SuppressWarnings("FutureReturnValueIgnored")
     void deselectTrack(TrackInfo trackInfo) {
         if (mController != null) {
diff --git a/mediarouter/mediarouter/lint-baseline.xml b/mediarouter/mediarouter/lint-baseline.xml
index 7aa92ae..da2befa 100644
--- a/mediarouter/mediarouter/lint-baseline.xml
+++ b/mediarouter/mediarouter/lint-baseline.xml
@@ -1,9 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 14): `android.app.Activity#setTurnScreenOn`"
+        errorLine1="        setTurnScreenOn(true);"
+        errorLine2="        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/mediarouter/media/MediaRouter2TestActivity.java"
+            line="47"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 14): `android.app.Activity#setShowWhenLocked`"
+        errorLine1="        setShowWhenLocked(true);"
+        errorLine2="        ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/mediarouter/media/MediaRouter2TestActivity.java"
+            line="48"
+            column="9"/>
+    </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        mSelectRouteIntMethod.invoke(router, types, route);"
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -14,7 +36,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    return mGetSystemAudioRouteMethod.invoke(router);"
         errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -25,7 +47,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mScanWifiDisplaysMethod.invoke(mDisplayManager);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -36,7 +58,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    int statusCode = (Integer)mGetStatusCodeMethod.invoke(route);"
         errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -52,7 +74,7 @@
         errorLine2="                                               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="377"
+            line="383"
             column="48"/>
     </issue>
 
@@ -63,7 +85,7 @@
         errorLine2="                                                                     ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="380"
+            line="386"
             column="70"/>
     </issue>
 
@@ -74,7 +96,7 @@
         errorLine2="                                                       ~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="386"
+            line="392"
             column="56"/>
     </issue>
 
@@ -85,7 +107,7 @@
         errorLine2="                               ~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="482"
+            line="488"
             column="32"/>
     </issue>
 
@@ -96,7 +118,7 @@
         errorLine2="                                                                          ~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="492"
+            line="498"
             column="75"/>
     </issue>
 
@@ -107,7 +129,7 @@
         errorLine2="                                       ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="495"
+            line="501"
             column="40"/>
     </issue>
 
@@ -118,7 +140,7 @@
         errorLine2="                               ~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="496"
+            line="502"
             column="32"/>
     </issue>
 
@@ -129,7 +151,7 @@
         errorLine2="                                                                 ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="502"
+            line="508"
             column="66"/>
     </issue>
 
@@ -140,7 +162,7 @@
         errorLine2="                               ~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="530"
+            line="536"
             column="32"/>
     </issue>
 
@@ -151,7 +173,7 @@
         errorLine2="                          ~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="548"
+            line="554"
             column="27"/>
     </issue>
 
@@ -162,7 +184,7 @@
         errorLine2="                               ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="564"
+            line="570"
             column="32"/>
     </issue>
 
@@ -173,7 +195,7 @@
         errorLine2="                               ~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java"
-            line="580"
+            line="586"
             column="32"/>
     </issue>
 
diff --git a/navigation/integration-tests/testapp/lint-baseline.xml b/navigation/integration-tests/testapp/lint-baseline.xml
index d11926b..5142aa3 100644
--- a/navigation/integration-tests/testapp/lint-baseline.xml
+++ b/navigation/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/navigation/navigation-common/api/current.txt b/navigation/navigation-common/api/current.txt
index 186cf0c..d8e1649 100644
--- a/navigation/navigation-common/api/current.txt
+++ b/navigation/navigation-common/api/current.txt
@@ -485,13 +485,13 @@
 
   public abstract class NavigatorState {
     ctor public NavigatorState();
-    method public void add(androidx.navigation.NavBackStackEntry backStackEntry);
-    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener addWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
     method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
     method public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> getTransitionsInProgress();
     method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
     method public androidx.navigation.NavigatorState.OnTransitionCompleteListener popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+    method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
     property public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> transitionsInProgress;
   }
diff --git a/navigation/navigation-common/api/public_plus_experimental_current.txt b/navigation/navigation-common/api/public_plus_experimental_current.txt
index 186cf0c..d8e1649 100644
--- a/navigation/navigation-common/api/public_plus_experimental_current.txt
+++ b/navigation/navigation-common/api/public_plus_experimental_current.txt
@@ -485,13 +485,13 @@
 
   public abstract class NavigatorState {
     ctor public NavigatorState();
-    method public void add(androidx.navigation.NavBackStackEntry backStackEntry);
-    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener addWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
     method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
     method public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> getTransitionsInProgress();
     method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
     method public androidx.navigation.NavigatorState.OnTransitionCompleteListener popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+    method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
     property public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> transitionsInProgress;
   }
diff --git a/navigation/navigation-common/api/restricted_current.txt b/navigation/navigation-common/api/restricted_current.txt
index 186cf0c..d8e1649 100644
--- a/navigation/navigation-common/api/restricted_current.txt
+++ b/navigation/navigation-common/api/restricted_current.txt
@@ -485,13 +485,13 @@
 
   public abstract class NavigatorState {
     ctor public NavigatorState();
-    method public void add(androidx.navigation.NavBackStackEntry backStackEntry);
-    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener addWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
     method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
     method public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> getTransitionsInProgress();
     method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
     method public androidx.navigation.NavigatorState.OnTransitionCompleteListener popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+    method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+    method public androidx.navigation.NavigatorState.OnTransitionCompleteListener pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
     property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
     property public final kotlinx.coroutines.flow.StateFlow<java.util.Map<androidx.navigation.NavBackStackEntry,androidx.navigation.NavigatorState.OnTransitionCompleteListener>> transitionsInProgress;
   }
diff --git a/navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationAndroidTest.kt b/navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationAndroidTest.kt
index 8ab7f8e..7d4f7a3 100644
--- a/navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationAndroidTest.kt
+++ b/navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationAndroidTest.kt
@@ -109,7 +109,7 @@
 
         destination.addDeepLink("www.example.com/users/index.html")
 
-        destination.addArgument("id", stringArgument())
+        destination.addArgument("name", stringArgument())
         destination.addDeepLink("www.example.com/users/{name}")
 
         val match = destination.matchDeepLink(
@@ -125,6 +125,31 @@
     }
 
     @Test
+    fun matchDeepLinkBestMatchExactWithQuery() {
+        val destination = NoOpNavigator().createDestination()
+
+        destination.addArgument("tab", stringArgument())
+        destination.addDeepLink("www.example.com/users/anonymous?tab={tab}")
+
+        destination.addArgument("name", stringArgument())
+        destination.addDeepLink("www.example.com/users/{name}?tab={tab}")
+
+        val match = destination.matchDeepLink(
+            Uri.parse("https://www.example.com/users/anonymous?tab=favorite")
+        )
+
+        assertWithMessage("Deep link should match")
+            .that(match)
+            .isNotNull()
+        assertWithMessage("Deep link should pick the exact match with query")
+            .that(match?.matchingArgs?.size())
+            .isEqualTo(1)
+        assertWithMessage("Deep link should extract tab argument correctly")
+            .that(match?.matchingArgs?.getString("tab"))
+            .isEqualTo("favorite")
+    }
+
+    @Test
     fun matchDotStar() {
         val destination = NoOpNavigator().createDestination()
 
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavDeepLink.kt b/navigation/navigation-common/src/main/java/androidx/navigation/NavDeepLink.kt
index 13ec744..45f051f 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/NavDeepLink.kt
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavDeepLink.kt
@@ -386,13 +386,12 @@
             if (isParameterizedQuery) {
                 var matcher = Pattern.compile("(\\?)").matcher(uriPattern)
                 if (matcher.find()) {
-                    buildPathRegex(
+                    isExactDeepLink = buildPathRegex(
                         uriPattern.substring(0, matcher.start()),
                         uriRegex,
                         fillInPattern
                     )
                 }
-                isExactDeepLink = false
                 for (paramName in parameterizedUri.queryParameterNames) {
                     val argRegex = StringBuilder()
                     val queryParam = parameterizedUri.getQueryParameter(paramName) as String
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/Navigator.kt b/navigation/navigation-common/src/main/java/androidx/navigation/Navigator.kt
index 21e06b4..aa769b6 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/Navigator.kt
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/Navigator.kt
@@ -58,7 +58,7 @@
      * The state of the Navigator is the communication conduit between the Navigator
      * and the [NavController] that has called [onAttach].
      *
-     * It is the responsibility of the Navigator to call [NavigatorState.add]
+     * It is the responsibility of the Navigator to call [NavigatorState.push]
      * and [NavigatorState.pop] to in order to update the [NavigatorState.backStack] at
      * the appropriate times.
      *
@@ -129,7 +129,7 @@
                 }
             }
         }.filterNotNull().forEach { backStackEntry ->
-            state.add(backStackEntry)
+            state.push(backStackEntry)
         }
     }
 
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorState.kt b/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorState.kt
index 3b59ba9..eef5128 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorState.kt
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorState.kt
@@ -47,7 +47,7 @@
      * Navigators, this back stack is specifically the set of destinations associated
      * with this Navigator.
      *
-     * Changing the back stack must be done via [add] and [pop].
+     * Changing the back stack must be done via [push] and [pop].
      */
     public val backStack: StateFlow<List<NavBackStackEntry>> = _backStack.asStateFlow()
 
@@ -63,7 +63,7 @@
     /**
      * Adds the given [backStackEntry] to the [backStack].
      */
-    public open fun add(backStackEntry: NavBackStackEntry) {
+    public open fun push(backStackEntry: NavBackStackEntry) {
         backStackLock.withLock {
             _backStack.value = _backStack.value + backStackEntry
         }
@@ -72,10 +72,10 @@
     /**
      * Provides listener that once activated, adds the given [backStackEntry] to the [backStack].
      */
-    public open fun addWithTransition(
+    public open fun pushWithTransition(
         backStackEntry: NavBackStackEntry
     ): OnTransitionCompleteListener {
-        add(backStackEntry)
+        push(backStackEntry)
         return OnTransitionCompleteListener {
             removeInProgressTransition(backStackEntry)
         }
diff --git a/navigation/navigation-compose/src/main/java/androidx/navigation/compose/ComposeNavigator.kt b/navigation/navigation-compose/src/main/java/androidx/navigation/compose/ComposeNavigator.kt
index 1d90b08..e44a9a6 100644
--- a/navigation/navigation-compose/src/main/java/androidx/navigation/compose/ComposeNavigator.kt
+++ b/navigation/navigation-compose/src/main/java/androidx/navigation/compose/ComposeNavigator.kt
@@ -61,7 +61,7 @@
         navigatorExtras: Extras?
     ) {
         entries.forEach { entry ->
-            state.add(entry)
+            state.push(entry)
         }
     }
 
diff --git a/navigation/navigation-dynamic-features-fragment/lint-baseline.xml b/navigation/navigation-dynamic-features-fragment/lint-baseline.xml
deleted file mode 100644
index 236c5d8..0000000
--- a/navigation/navigation-dynamic-features-fragment/lint-baseline.xml
+++ /dev/null
@@ -1,312 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.1.0-alpha01" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha01">
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="InvalidFragmentVersionForActivityResult"
-        message="Upgrade Fragment version to at least 1.3.0."
-        errorLine1="    private val intentSenderLauncher = registerForActivityResult("
-        errorLine2="                                       ^">
-        <location
-            file="src/main/java/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment.kt"
-            line="70"
-            column="40"/>
-    </issue>
-
-</issues>
diff --git a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/DialogFragmentNavigator.kt b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/DialogFragmentNavigator.kt
index 9bd11441..29a3c42 100644
--- a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/DialogFragmentNavigator.kt
+++ b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/DialogFragmentNavigator.kt
@@ -116,7 +116,7 @@
         dialogFragment.arguments = entry.arguments
         dialogFragment.lifecycle.addObserver(observer)
         dialogFragment.show(fragmentManager, entry.id)
-        state.add(entry)
+        state.push(entry)
     }
 
     override fun onAttach(state: NavigatorState) {
diff --git a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.kt b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.kt
index a54a7bf..3e0d7d6 100644
--- a/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.kt
+++ b/navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.kt
@@ -178,7 +178,7 @@
         if (restoreState) {
             // Restore back stack does all the work to restore the entry
             fragmentManager.restoreBackStack(entry.id)
-            state.add(entry)
+            state.push(entry)
             return
         }
         val destination = entry.destination as Destination
@@ -243,7 +243,7 @@
         ft.commit()
         // The commit succeeded, update our view of the world
         if (isAdded) {
-            state.add(entry)
+            state.push(entry)
         }
     }
 
diff --git a/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt b/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt
index 58345df..e569d4b 100644
--- a/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt
+++ b/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt
@@ -177,7 +177,7 @@
 
     /**
      * Call [Navigator.navigate] while setting up a [handler] that receives callbacks
-     * when [NavigatorState.add] is called.
+     * when [NavigatorState.push] is called.
      */
     private fun Navigator<out NavDestination>.navigateInternal(
         entries: List<NavBackStackEntry>,
@@ -207,7 +207,7 @@
     private inner class NavControllerNavigatorState(
         val navigator: Navigator<out NavDestination>
     ) : NavigatorState() {
-        override fun add(backStackEntry: NavBackStackEntry) {
+        override fun push(backStackEntry: NavBackStackEntry) {
             val destinationNavigator: Navigator<out NavDestination> =
                 _navigatorProvider[backStackEntry.destination.navigatorName]
             if (destinationNavigator == navigator) {
@@ -228,12 +228,12 @@
                     "NavigatorBackStack for ${backStackEntry.destination.navigatorName} should " +
                         "already be created"
                 }
-                navigatorBackStack.add(backStackEntry)
+                navigatorBackStack.push(backStackEntry)
             }
         }
 
         fun addInternal(backStackEntry: NavBackStackEntry) {
-            super.add(backStackEntry)
+            super.push(backStackEntry)
         }
 
         override fun createBackStackEntry(
@@ -262,10 +262,10 @@
             }
         }
 
-        override fun addWithTransition(
+        override fun pushWithTransition(
             backStackEntry: NavBackStackEntry
         ): OnTransitionCompleteListener {
-            val innerListener = super.addWithTransition(backStackEntry)
+            val innerListener = super.pushWithTransition(backStackEntry)
             val listener = OnTransitionCompleteListener {
                 innerListener.onTransitionComplete()
                 if (!this@NavControllerNavigatorState.isNavigating) {
diff --git a/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorStateTest.kt b/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorStateTest.kt
index b30f489..95ca300 100644
--- a/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorStateTest.kt
+++ b/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorStateTest.kt
@@ -142,7 +142,7 @@
             navigatorExtras: Extras?
         ) {
             entries.forEach { entry ->
-                state.addWithTransition(entry)
+                state.pushWithTransition(entry)
             }
         }
 
diff --git a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorState.kt b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorState.kt
index d9f9f53..c317091 100644
--- a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorState.kt
+++ b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorState.kt
@@ -91,15 +91,15 @@
         )
     }
 
-    override fun add(backStackEntry: NavBackStackEntry) {
-        super.add(backStackEntry)
+    override fun push(backStackEntry: NavBackStackEntry) {
+        super.push(backStackEntry)
         updateMaxLifecycle()
     }
 
-    override fun addWithTransition(
+    override fun pushWithTransition(
         backStackEntry: NavBackStackEntry
     ): OnTransitionCompleteListener {
-        val innerListener = super.addWithTransition(backStackEntry)
+        val innerListener = super.pushWithTransition(backStackEntry)
         val listener = OnTransitionCompleteListener {
             innerListener.onTransitionComplete()
             updateMaxLifecycle()
diff --git a/paging/common/src/test/kotlin/androidx/paging/PagingDataDifferTest.kt b/paging/common/src/test/kotlin/androidx/paging/PagingDataDifferTest.kt
index 5aae1a0..fa7152d 100644
--- a/paging/common/src/test/kotlin/androidx/paging/PagingDataDifferTest.kt
+++ b/paging/common/src/test/kotlin/androidx/paging/PagingDataDifferTest.kt
@@ -661,6 +661,103 @@
 
         job.cancel()
     }
+
+    @Test
+    fun loadStateFlowSynchronouslyUpdates() = testScope.runBlockingTest {
+        val differ = SimpleDiffer(dummyDifferCallback)
+        var combinedLoadStates: CombinedLoadStates? = null
+        var itemCount = -1
+        val loadStateJob = launch {
+            differ.loadStateFlow.collect {
+                combinedLoadStates = it
+                itemCount = differ.size
+            }
+        }
+
+        val pager = Pager(
+            config = PagingConfig(
+                pageSize = 10,
+                enablePlaceholders = false,
+                initialLoadSize = 10,
+                prefetchDistance = 1
+            ),
+            initialKey = 50
+        ) { TestPagingSource() }
+        val job = launch {
+            pager.flow.collectLatest { differ.collectFrom(it) }
+        }
+
+        // Initial refresh
+        advanceUntilIdle()
+        assertEquals(localLoadStatesOf(), combinedLoadStates)
+        assertEquals(10, itemCount)
+        assertEquals(10, differ.size)
+
+        // Append
+        differ[9]
+        advanceUntilIdle()
+        assertEquals(localLoadStatesOf(), combinedLoadStates)
+        assertEquals(20, itemCount)
+        assertEquals(20, differ.size)
+
+        // Prepend
+        differ[0]
+        advanceUntilIdle()
+        assertEquals(localLoadStatesOf(), combinedLoadStates)
+        assertEquals(30, itemCount)
+        assertEquals(30, differ.size)
+
+        job.cancel()
+        loadStateJob.cancel()
+    }
+
+    @Test
+    fun loadStateListenerSynchronouslyUpdates() = testScope.runBlockingTest {
+        val differ = SimpleDiffer(dummyDifferCallback)
+        pauseDispatcher {
+            var combinedLoadStates: CombinedLoadStates? = null
+            var itemCount = -1
+            differ.addLoadStateListener {
+                combinedLoadStates = it
+                itemCount = differ.size
+            }
+
+            val pager = Pager(
+                config = PagingConfig(
+                    pageSize = 10,
+                    enablePlaceholders = false,
+                    initialLoadSize = 10,
+                    prefetchDistance = 1
+                ),
+                initialKey = 50
+            ) { TestPagingSource() }
+            val job = launch {
+                pager.flow.collectLatest { differ.collectFrom(it) }
+            }
+
+            // Initial refresh
+            advanceUntilIdle()
+            assertEquals(localLoadStatesOf(), combinedLoadStates)
+            assertEquals(10, itemCount)
+            assertEquals(10, differ.size)
+
+            // Append
+            differ[9]
+            advanceUntilIdle()
+            assertEquals(localLoadStatesOf(), combinedLoadStates)
+            assertEquals(20, itemCount)
+            assertEquals(20, differ.size)
+
+            // Prepend
+            differ[0]
+            advanceUntilIdle()
+            assertEquals(localLoadStatesOf(), combinedLoadStates)
+            assertEquals(30, itemCount)
+            assertEquals(30, differ.size)
+
+            job.cancel()
+        }
+    }
 }
 
 private fun infinitelySuspendingPagingData(receiver: UiReceiver = dummyReceiver) = PagingData(
diff --git a/paging/integration-tests/testapp/lint-baseline.xml b/paging/integration-tests/testapp/lint-baseline.xml
index 647083f..3fc83c7 100644
--- a/paging/integration-tests/testapp/lint-baseline.xml
+++ b/paging/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/paging/runtime/lint-baseline.xml b/paging/runtime/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/paging/runtime/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/paging/runtime/src/main/java/androidx/paging/AsyncPagingDataDiffer.kt b/paging/runtime/src/main/java/androidx/paging/AsyncPagingDataDiffer.kt
index 18a7c6a6..43c6c6a 100644
--- a/paging/runtime/src/main/java/androidx/paging/AsyncPagingDataDiffer.kt
+++ b/paging/runtime/src/main/java/androidx/paging/AsyncPagingDataDiffer.kt
@@ -126,10 +126,6 @@
      * Present a [PagingData] until it is invalidated by a call to [refresh] or
      * [PagingSource.invalidate].
      *
-     * [submitData] should be called on the same [CoroutineDispatcher] where updates will be
-     * dispatched to UI, typically [Dispatchers.Main]. (this is done for you if you use
-     * `lifecycleScope.launch {}`).
-     *
      * This method is typically used when collecting from a [Flow][kotlinx.coroutines.flow.Flow]
      * produced by [Pager]. For RxJava or LiveData support, use the non-suspending overload of
      * [submitData], which accepts a [Lifecycle].
@@ -140,7 +136,6 @@
      * up-to-date representation of your backing dataset should typically be done using
      * [collectLatest][kotlinx.coroutines.flow.collectLatest].
      *
-     *
      * @see [Pager]
      */
     suspend fun submitData(pagingData: PagingData<T>) {
diff --git a/paging/runtime/src/main/java/androidx/paging/PagingDataAdapter.kt b/paging/runtime/src/main/java/androidx/paging/PagingDataAdapter.kt
index 1541f6b..50e53e1 100644
--- a/paging/runtime/src/main/java/androidx/paging/PagingDataAdapter.kt
+++ b/paging/runtime/src/main/java/androidx/paging/PagingDataAdapter.kt
@@ -150,10 +150,6 @@
      * Present a [PagingData] until it is invalidated by a call to [refresh] or
      * [PagingSource.invalidate].
      *
-     * [submitData] should be called on the same [CoroutineDispatcher] where updates will be
-     * dispatched to UI, typically [Dispatchers.Main] (this is done for you if you use
-     * `lifecycleScope.launch {}`).
-     *
      * This method is typically used when collecting from a [Flow] produced by [Pager]. For RxJava
      * or LiveData support, use the non-suspending overload of [submitData], which accepts a
      * [Lifecycle].
diff --git a/percentlayout/percentlayout/lint-baseline.xml b/percentlayout/percentlayout/lint-baseline.xml
index e39961e..b80b520 100644
--- a/percentlayout/percentlayout/lint-baseline.xml
+++ b/percentlayout/percentlayout/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/preference/preference/lint-baseline.xml b/preference/preference/lint-baseline.xml
index df5ab01..d324f8d 100644
--- a/preference/preference/lint-baseline.xml
+++ b/preference/preference/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/print/print/lint-baseline.xml b/print/print/lint-baseline.xml
index e0ec659..f71eab4 100644
--- a/print/print/lint-baseline.xml
+++ b/print/print/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/profileinstaller/integration-tests/init-macrobenchmark/lint-baseline.xml b/profileinstaller/integration-tests/init-macrobenchmark/lint-baseline.xml
new file mode 100644
index 0000000..ac749c4
--- /dev/null
+++ b/profileinstaller/integration-tests/init-macrobenchmark/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `MacrobenchmarkRule`"
+        errorLine1="    val benchmarkRule = MacrobenchmarkRule()"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/profileinstaller/integration/macrobenchmark/ProfileinstallerStartupBenchmark.kt"
+            line="37"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 28): `measureStartup`"
+        errorLine1="    fun startup() = benchmarkRule.measureStartup("
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/profileinstaller/integration/macrobenchmark/ProfileinstallerStartupBenchmark.kt"
+            line="40"
+            column="35"/>
+    </issue>
+
+</issues>
diff --git a/profileinstaller/profileinstaller/lint-baseline.xml b/profileinstaller/profileinstaller/lint-baseline.xml
new file mode 100644
index 0000000..01be5fb
--- /dev/null
+++ b/profileinstaller/profileinstaller/lint-baseline.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `MAGIC`"
+        errorLine1="            expectBytes(is, MAGIC);"
+        errorLine2="                            ~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="46"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `readProfile`"
+        errorLine1="            Map&lt;String, DexProfileData> data = ProfileTranscoder.readProfile(is, version);"
+        errorLine2="                                                                 ~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="48"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `readHeader`"
+        errorLine1="            byte[] version = ProfileTranscoder.readHeader(is);"
+        errorLine2="                                               ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="97"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `writeHeader`"
+        errorLine1="            ProfileTranscoder.writeHeader(os, desiredVersion);"
+        errorLine2="                              ~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="98"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `readProfile`"
+        errorLine1="                Map&lt;String, DexProfileData> data = ProfileTranscoder.readProfile("
+        errorLine2="                                                                     ~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="100"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `transcodeAndWriteBody`"
+        errorLine1="                ProfileTranscoder.transcodeAndWriteBody(os, desiredVersion, data);"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="104"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `writeAll`"
+        errorLine1="                Encoding.writeAll(is, os);"
+        errorLine2="                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="106"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.io.File#toPath`"
+        errorLine1="            byte[] goldenBytes = Files.readAllBytes(golden.toPath());"
+        errorLine2="                                                           ~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="108"
+            column="60"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.nio.file.Files#readAllBytes`"
+        errorLine1="            byte[] goldenBytes = Files.readAllBytes(golden.toPath());"
+        errorLine2="                                       ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="108"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `read`"
+        errorLine1="        byte[] actual = Encoding.read(is, bytes.length);"
+        errorLine2="                                 ~~~~">
+        <location
+            file="src/test/java/androidx/profileinstaller/ProfileTranscoderTests.java"
+            line="116"
+            column="34"/>
+    </issue>
+
+</issues>
diff --git a/recommendation/recommendation/lint-baseline.xml b/recommendation/recommendation/lint-baseline.xml
index 3d898bf..0cb64d6 100644
--- a/recommendation/recommendation/lint-baseline.xml
+++ b/recommendation/recommendation/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/recyclerview/recyclerview-selection/lint-baseline.xml b/recyclerview/recyclerview-selection/lint-baseline.xml
index b706440..17a04c0 100644
--- a/recyclerview/recyclerview-selection/lint-baseline.xml
+++ b/recyclerview/recyclerview-selection/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/recyclerview/recyclerview/lint-baseline.xml b/recyclerview/recyclerview/lint-baseline.xml
index 3f8be2c..2499392 100644
--- a/recyclerview/recyclerview/lint-baseline.xml
+++ b/recyclerview/recyclerview/lint-baseline.xml
@@ -1,5 +1,115 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `new android.view.View`"
+        errorLine1="            super(context, attrs, defStyleAttr, defStyleRes);"
+        errorLine2="            ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/BaseWrapContentWithAspectRatioTest.java"
+            line="75"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Map#getOrDefault`"
+        errorLine1="            } else if (duplicateDiffs.getOrDefault(after[index].id, 0) > 0 &amp;&amp; item.newItem) {"
+        errorLine2="                                      ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/recyclerview/widget/DiffUtilTest.kt"
+            line="503"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Map#getOrDefault`"
+        errorLine1="            duplicateDiffs[it.id] = 1 + duplicateDiffs.getOrDefault(it.id, 1)"
+        errorLine2="                                                       ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/recyclerview/widget/DiffUtilTest.kt"
+            line="549"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Map#getOrDefault`"
+        errorLine1="            duplicateDiffs[it.id] = -1 + duplicateDiffs.getOrDefault(it.id, 0)"
+        errorLine2="                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/recyclerview/widget/DiffUtilTest.kt"
+            line="552"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.view.View#isScrollContainer`"
+        errorLine1="                + &quot;handle it properly&quot;, true, mRecyclerView.isScrollContainer());"
+        errorLine2="                                                            ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java"
+            line="105"
+            column="61"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#setLayoutDirection`"
+        errorLine1="            mRecyclerView.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFocusTest.java"
+            line="239"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `new android.widget.FrameLayout`"
+        errorLine1="        super(context, attrs, defStyleAttr, defStyleRes);"
+        errorLine2="        ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/TestContentView.java"
+            line="53"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.view.View#getMinimumWidth`"
+        errorLine1="                            getMinimumWidth()),"
+        errorLine2="                            ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/TestedFrameLayout.java"
+            line="108"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.view.View#getMinimumHeight`"
+        errorLine1="                            getMinimumHeight()));"
+        errorLine2="                            ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/TestedFrameLayout.java"
+            line="111"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `new android.widget.FrameLayout.LayoutParams`"
+        errorLine1="            super(source);"
+        errorLine2="            ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/recyclerview/widget/TestedFrameLayout.java"
+            line="283"
+            column="13"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/remotecallback/processor/lint-baseline.xml b/remotecallback/processor/lint-baseline.xml
index 3b674ab..c191b4f 100644
--- a/remotecallback/processor/lint-baseline.xml
+++ b/remotecallback/processor/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/remotecallback/remotecallback/lint-baseline.xml b/remotecallback/remotecallback/lint-baseline.xml
index 7c9f849..bbc44f4 100644
--- a/remotecallback/remotecallback/lint-baseline.xml
+++ b/remotecallback/remotecallback/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
diff --git a/room/integration-tests/testapp/build.gradle b/room/integration-tests/testapp/build.gradle
index 34e790d..864deb5 100644
--- a/room/integration-tests/testapp/build.gradle
+++ b/room/integration-tests/testapp/build.gradle
@@ -80,6 +80,9 @@
     implementation(projectOrArtifact(":lifecycle:lifecycle-runtime"))
     implementation(libs.multidex)
 
+    // Workaround for b/191286558.
+    implementation(project(":annotation:annotation-experimental"))
+
     // libs.findbugs dependency resolves an app/testapp version conflict.
     implementation(libs.findbugs)
     implementation("androidx.recyclerview:recyclerview:1.0.0")
diff --git a/room/integration-tests/testapp/lint-baseline.xml b/room/integration-tests/testapp/lint-baseline.xml
index 297ad6c..e8b30d0 100644
--- a/room/integration-tests/testapp/lint-baseline.xml
+++ b/room/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,203 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `LOCALIZED`"
+        errorLine1="        @ColumnInfo(collate = ColumnInfo.LOCALIZED)"
+        errorLine2="                                         ~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java"
+            line="120"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `UNICODE`"
+        errorLine1="        @ColumnInfo(collate = ColumnInfo.UNICODE)"
+        errorLine2="                                         ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java"
+            line="122"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#hash`"
+        errorLine1="            return Objects.hash(id, name);"
+        errorLine2="                           ~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTrackerTest.java"
+            line="241"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.lang.Long#hashCode`"
+        errorLine1="        int result = Long.hashCode(id);"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/vo/Product.java"
+            line="49"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#hash`"
+        errorLine1="            return Objects.hash(mId, mUsername);"
+        errorLine2="                           ~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/ProvidedTypeConverterTest.java"
+            line="229"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#hash`"
+        errorLine1="            return Objects.hash(mName, mLastName);"
+        errorLine2="                           ~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/ProvidedTypeConverterTest.java"
+            line="280"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `new java.lang.AssertionError`"
+        errorLine1="            throw new AssertionError(&quot;interrupted&quot;, e);"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java"
+            line="290"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `new java.lang.AssertionError`"
+        errorLine1="            throw new AssertionError(&quot;drain timed out&quot;, e);"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java"
+            line="292"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `new java.lang.AssertionError`"
+        errorLine1="            throw new AssertionError(&quot;interrupted&quot;, e);"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java"
+            line="327"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `new java.lang.AssertionError`"
+        errorLine1="            throw new AssertionError(&quot;execution error&quot;, e);"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java"
+            line="329"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().insert(new TestEntity(&quot;1&quot;, List.of(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;)));"
+        errorLine2="                                                     ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="62"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().insert(new TestEntity(&quot;2&quot;, List.of(&quot;d&quot;, &quot;e&quot;, &quot;f&quot;)));"
+        errorLine2="                                                     ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="63"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().insert(new TestEntity(&quot;3&quot;, List.of(&quot;g&quot;, &quot;h&quot;, &quot;i&quot;)));"
+        errorLine2="                                                     ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="64"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().delete(List.of(&quot;2&quot;, &quot;3&quot;));"
+        errorLine2="                                 ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="65"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().insert(new TestEntity(&quot;1&quot;, List.of(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;)));"
+        errorLine2="                                                     ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="71"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        mDB.getDao().update(&quot;1&quot;, List.of(&quot;d&quot;, &quot;e&quot;, &quot;f&quot;));"
+        errorLine2="                                      ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="72"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 24): `java.util.List#of`"
+        errorLine1="        assertThat(mDB.getDao().getAll().get(0).data).isEqualTo(List.of(&quot;d&quot;, &quot;e&quot;, &quot;f&quot;));"
+        errorLine2="                                                                     ~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="74"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 24): `java.lang.String#join`"
+        errorLine1="            return String.join(&quot;,&quot;, list);"
+        errorLine2="                          ~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/integration/testapp/test/TypeConverterPriorityTest.java"
+            line="114"
+            column="27"/>
+    </issue>
 
     <issue
         id="SyntheticAccessor"
diff --git a/room/room-common/lint-baseline.xml b/room/room-common/lint-baseline.xml
index 5e43b57..0a8c684 100644
--- a/room/room-common/lint-baseline.xml
+++ b/room/room-common/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/room/room-guava/lint-baseline.xml b/room/room-guava/lint-baseline.xml
index 0f84c67..c15105a 100644
--- a/room/room-guava/lint-baseline.xml
+++ b/room/room-guava/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
@@ -8,7 +8,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="58"
+            line="59"
             column="13"/>
     </issue>
 
@@ -19,7 +19,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="75"
+            line="76"
             column="13"/>
     </issue>
 
@@ -30,7 +30,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="106"
+            line="107"
             column="13"/>
     </issue>
 
@@ -41,7 +41,7 @@
         errorLine2="                      ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="55"
+            line="56"
             column="23"/>
     </issue>
 
@@ -52,17 +52,6 @@
         errorLine2="                  ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="56"
-            column="19"/>
-    </issue>
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="            final RoomSQLiteQuery query,"
-        errorLine2="                  ~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/room/guava/GuavaRoom.java"
             line="57"
             column="19"/>
     </issue>
@@ -70,11 +59,22 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
+        errorLine1="            final RoomSQLiteQuery query,"
+        errorLine2="                  ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/androidx/room/guava/GuavaRoom.java"
+            line="58"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="UnknownNullness"
+        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
         errorLine1="    public static &lt;T> ListenableFuture&lt;T> createListenableFuture("
         errorLine2="                      ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="71"
+            line="72"
             column="23"/>
     </issue>
 
@@ -85,17 +85,6 @@
         errorLine2="                  ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="72"
-            column="19"/>
-    </issue>
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="            final Callable&lt;T> callable,"
-        errorLine2="                  ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/room/guava/GuavaRoom.java"
             line="73"
             column="19"/>
     </issue>
@@ -103,11 +92,22 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
+        errorLine1="            final Callable&lt;T> callable,"
+        errorLine2="                  ~~~~~~~~~~~">
+        <location
+            file="src/main/java/androidx/room/guava/GuavaRoom.java"
+            line="74"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="UnknownNullness"
+        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
         errorLine1="            final RoomSQLiteQuery query,"
         errorLine2="                  ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="74"
+            line="75"
             column="19"/>
     </issue>
 
@@ -118,7 +118,7 @@
         errorLine2="                      ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="85"
+            line="86"
             column="23"/>
     </issue>
 
@@ -129,7 +129,7 @@
         errorLine2="                  ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="86"
+            line="87"
             column="19"/>
     </issue>
 
@@ -140,7 +140,7 @@
         errorLine2="                  ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="88"
+            line="89"
             column="19"/>
     </issue>
 
@@ -151,7 +151,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/guava/GuavaRoom.java"
-            line="89"
+            line="90"
             column="19"/>
     </issue>
 
diff --git a/room/room-ktx/lint-baseline.xml b/room/room-ktx/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/room/room-ktx/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/room/room-migration/lint-baseline.xml b/room/room-migration/lint-baseline.xml
index 32a2637..9e11b3a 100644
--- a/room/room-migration/lint-baseline.xml
+++ b/room/room-migration/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/room/room-runtime/lint-baseline.xml b/room/room-runtime/lint-baseline.xml
index cd534ae..601763a 100644
--- a/room/room-runtime/lint-baseline.xml
+++ b/room/room-runtime/lint-baseline.xml
@@ -1,5 +1,269 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperFactoryTest.kt"
+            line="85"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperFactoryTest.kt"
+            line="98"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        val db = autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperFactoryTest.kt"
+            line="144"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="                .writableDatabase.query(&quot;select * from nonexistanttable&quot;)"
+        errorLine2="                 ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="88"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase.execSQL(&quot;create table user (idk int)&quot;)"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="97"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="            autoClosingRoomOpenHelper.writableDatabase.query(&quot;select * from user&quot;)"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="100"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase.beginTransaction()"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="109"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase.endTransaction()"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="111"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 16): `getWritableDatabase`"
+        errorLine1="        assertThat(autoClosingRoomOpenHelper.writableDatabase.isWriteAheadLoggingEnabled).isTrue()"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="121"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 16): `getWritableDatabase`"
+        errorLine1="        assertThat(autoClosingRoomOpenHelper.writableDatabase.isWriteAheadLoggingEnabled).isTrue()"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="125"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="            autoClosingRoomOpenHelper.writableDatabase.enableWriteAheadLogging()"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="133"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `disableWriteAheadLogging`"
+        errorLine1="            autoClosingRoomOpenHelper.writableDatabase.disableWriteAheadLogging()"
+        errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="137"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="            autoClosingRoomOpenHelper.writableDatabase.disableWriteAheadLogging()"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="137"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="161"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="166"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        val db = autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="175"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        val db = autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="189"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getWritableDatabase`"
+        errorLine1="        val db = autoClosingRoomOpenHelper.writableDatabase"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/room/AutoClosingRoomOpenHelperTest.kt"
+            line="209"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `WRITE_AHEAD_LOGGING`"
+        errorLine1="                .setJournalMode(RoomDatabase.JournalMode.WRITE_AHEAD_LOGGING).build();"
+        errorLine2="                                                         ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/BuilderTest.java"
+            line="411"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `WRITE_AHEAD_LOGGING`"
+        errorLine1="        assertThat(config.journalMode, is(RoomDatabase.JournalMode.WRITE_AHEAD_LOGGING));"
+        errorLine2="                                                                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/BuilderTest.java"
+            line="414"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): `java.util.Locale#forLanguageTag`"
+        errorLine1="        Locale.setDefault(Locale.forLanguageTag(&quot;tr-TR&quot;));"
+        errorLine2="                                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/InvalidationTrackerTest.java"
+            line="119"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.lang.Process#waitFor`"
+        errorLine1="                val exited = it.waitFor(5, TimeUnit.SECONDS)"
+        errorLine2="                                ~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/SQLiteCopyOpenHelperTest.kt"
+            line="130"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 14): `java.lang.ProcessBuilder#redirectOutput`"
+        errorLine1="            .redirectOutput(ProcessBuilder.Redirect.INHERIT)"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/SQLiteCopyOpenHelperTest.kt"
+            line="264"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Field requires API level 26 (current min is 14): `java.lang.ProcessBuilder.Redirect#INHERIT`"
+        errorLine1="            .redirectOutput(ProcessBuilder.Redirect.INHERIT)"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/room/SQLiteCopyOpenHelperTest.kt"
+            line="264"
+            column="29"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -63,7 +327,7 @@
         errorLine2="             ~~~~">
         <location
             file="src/main/java/androidx/room/Room.java"
-            line="27"
+            line="28"
             column="14"/>
     </issue>
 
@@ -107,7 +371,7 @@
         errorLine2="                               ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/util/DBUtil.java"
-            line="63"
+            line="64"
             column="32"/>
     </issue>
 
@@ -118,7 +382,7 @@
         errorLine2="                                                ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/util/DBUtil.java"
-            line="63"
+            line="64"
             column="49"/>
     </issue>
 
@@ -129,7 +393,7 @@
         errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/util/DBUtil.java"
-            line="109"
+            line="110"
             column="44"/>
     </issue>
 
@@ -679,7 +943,7 @@
         errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/RoomDatabase.java"
-            line="87"
+            line="88"
             column="24"/>
     </issue>
 
@@ -690,7 +954,7 @@
         errorLine2="                                                                ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/RoomDatabase.java"
-            line="392"
+            line="366"
             column="65"/>
     </issue>
 
@@ -701,7 +965,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/RoomDatabase.java"
-            line="565"
+            line="539"
             column="12"/>
     </issue>
 
@@ -712,7 +976,7 @@
         errorLine2="                                                             ~~~~~~">
         <location
             file="src/main/java/androidx/room/RoomDatabase.java"
-            line="1269"
+            line="1242"
             column="62"/>
     </issue>
 
diff --git a/room/room-rxjava2/lint-baseline.xml b/room/room-rxjava2/lint-baseline.xml
index 6eb516e..4f6c3a1 100644
--- a/room/room-rxjava2/lint-baseline.xml
+++ b/room/room-rxjava2/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="PrivateConstructorForUtilityClass"
diff --git a/room/room-rxjava3/lint-baseline.xml b/room/room-rxjava3/lint-baseline.xml
new file mode 100644
index 0000000..b4eb77e
--- /dev/null
+++ b/room/room-rxjava3/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                throwable -> Objects.equals(throwable.getMessage(), &quot;i want exception&quot;));"
+        errorLine2="                                     ~~~~~~">
+        <location
+            file="src/test/java/androidx/room/rxjava3/RxRoomTest.java"
+            line="235"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `java.util.Objects#equals`"
+        errorLine1="                throwable -> Objects.equals(throwable.getMessage(), &quot;i want exception&quot;));"
+        errorLine2="                                     ~~~~~~">
+        <location
+            file="src/test/java/androidx/room/rxjava3/RxRoomTest.java"
+            line="251"
+            column="38"/>
+    </issue>
+
+</issues>
diff --git a/room/room-testing/lint-baseline.xml b/room/room-testing/lint-baseline.xml
index 62d06ec..4884c7f 100644
--- a/room/room-testing/lint-baseline.xml
+++ b/room/room-testing/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
@@ -8,7 +8,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="102"
+            line="118"
             column="32"/>
     </issue>
 
@@ -19,7 +19,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="102"
+            line="118"
             column="65"/>
     </issue>
 
@@ -30,7 +30,7 @@
         errorLine2="                               ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="114"
+            line="139"
             column="32"/>
     </issue>
 
@@ -41,7 +41,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="114"
+            line="139"
             column="65"/>
     </issue>
 
@@ -52,7 +52,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="115"
+            line="140"
             column="13"/>
     </issue>
 
@@ -63,7 +63,7 @@
         errorLine2="                            ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="125"
+            line="211"
             column="29"/>
     </issue>
 
@@ -74,7 +74,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="142"
+            line="228"
             column="12"/>
     </issue>
 
@@ -85,7 +85,7 @@
         errorLine2="                                                ~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="142"
+            line="228"
             column="49"/>
     </issue>
 
@@ -96,7 +96,7 @@
         errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="207"
+            line="293"
             column="12"/>
     </issue>
 
@@ -107,7 +107,7 @@
         errorLine2="                                                          ~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="207"
+            line="293"
             column="59"/>
     </issue>
 
@@ -118,7 +118,7 @@
         errorLine2="                                           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="208"
+            line="294"
             column="44"/>
     </issue>
 
@@ -129,7 +129,7 @@
         errorLine2="                            ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="260"
+            line="416"
             column="29"/>
     </issue>
 
@@ -140,7 +140,7 @@
         errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="287"
+            line="443"
             column="35"/>
     </issue>
 
@@ -151,7 +151,7 @@
         errorLine2="                                  ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/room/testing/MigrationTestHelper.java"
-            line="304"
+            line="460"
             column="35"/>
     </issue>
 
diff --git a/samples/Support4Demos/lint-baseline.xml b/samples/Support4Demos/lint-baseline.xml
index f606642..4c42104 100644
--- a/samples/Support4Demos/lint-baseline.xml
+++ b/samples/Support4Demos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="WifiManagerLeak"
@@ -107,7 +107,7 @@
         errorLine2="                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java"
-            line="205"
+            line="203"
             column="54"/>
     </issue>
 
diff --git a/samples/Support7Demos/lint-baseline.xml b/samples/Support7Demos/lint-baseline.xml
index c682887..c175f48 100644
--- a/samples/Support7Demos/lint-baseline.xml
+++ b/samples/Support7Demos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.1.0-alpha01" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha01">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="OnClick"
@@ -3078,7 +3078,7 @@
         errorLine2="                ~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
-            line="354"
+            line="355"
             column="17"/>
     </issue>
 
@@ -3089,7 +3089,7 @@
         errorLine2="                ~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/supportv7/view/SystemUIModes.java"
-            line="355"
+            line="356"
             column="17"/>
     </issue>
 
diff --git a/samples/SupportAnimationDemos/lint-baseline.xml b/samples/SupportAnimationDemos/lint-baseline.xml
index e6cca97..3038af7 100644
--- a/samples/SupportAnimationDemos/lint-baseline.xml
+++ b/samples/SupportAnimationDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/samples/SupportContentDemos/lint-baseline.xml b/samples/SupportContentDemos/lint-baseline.xml
index e027914..b0fbc1b 100644
--- a/samples/SupportContentDemos/lint-baseline.xml
+++ b/samples/SupportContentDemos/lint-baseline.xml
@@ -1,38 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="AppCompatResource"
-        message="Should use `android:showAsAction` when not using the appcompat library"
-        errorLine1="          app:showAsAction=&quot;always&quot;/>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/res/menu/menu_demo.xml"
-            line="25"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="AppCompatResource"
-        message="Should use `android:showAsAction` when not using the appcompat library"
-        errorLine1="          app:showAsAction=&quot;always&quot;/>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/res/menu/menu_demo.xml"
-            line="31"
-            column="11"/>
-    </issue>
-
-    <issue
-        id="AppCompatResource"
-        message="Should use `android:showAsAction` when not using the appcompat library"
-        errorLine1="          app:showAsAction=&quot;always&quot;/>"
-        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/res/menu/menu_demo.xml"
-            line="37"
-            column="11"/>
-    </issue>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/samples/SupportEmojiDemos/lint-baseline.xml b/samples/SupportEmojiDemos/lint-baseline.xml
index 8e58669..1790305 100644
--- a/samples/SupportEmojiDemos/lint-baseline.xml
+++ b/samples/SupportEmojiDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/samples/SupportLeanbackDemos/lint-baseline.xml b/samples/SupportLeanbackDemos/lint-baseline.xml
index e82a85f..c80f814 100644
--- a/samples/SupportLeanbackDemos/lint-baseline.xml
+++ b/samples/SupportLeanbackDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="MissingSuperCall"
@@ -706,17 +706,6 @@
     </issue>
 
     <issue
-        id="UnsupportedChromeOsHardware"
-        message="Expecting `android:required=&quot;false&quot;` for this hardware feature that may not be supported by all Chrome OS devices"
-        errorLine1="        android:required=&quot;true&quot;/>"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/AndroidManifest.xml"
-            line="9"
-            column="9"/>
-    </issue>
-
-    <issue
         id="SyntheticAccessor"
         message="Access to `private` member of class `ItemViewClickedListener` requires synthetic accessor"
         errorLine1="        setOnItemViewClickedListener(new ItemViewClickedListener());"
@@ -1273,7 +1262,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="291"
+            line="292"
             column="13"/>
     </issue>
 
@@ -1284,7 +1273,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="294"
+            line="295"
             column="13"/>
     </issue>
 
@@ -1295,7 +1284,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="419"
+            line="420"
             column="13"/>
     </issue>
 
@@ -1306,7 +1295,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="420"
+            line="421"
             column="13"/>
     </issue>
 
@@ -1317,7 +1306,7 @@
         errorLine2="                                ~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="422"
+            line="423"
             column="33"/>
     </issue>
 
@@ -1328,7 +1317,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="423"
+            line="424"
             column="13"/>
     </issue>
 
@@ -1339,7 +1328,7 @@
         errorLine2="                ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="448"
+            line="449"
             column="17"/>
     </issue>
 
@@ -1350,7 +1339,7 @@
         errorLine2="            ~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="454"
+            line="455"
             column="13"/>
     </issue>
 
@@ -1361,7 +1350,7 @@
         errorLine2="                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="569"
+            line="570"
             column="33"/>
     </issue>
 
@@ -1372,7 +1361,7 @@
         errorLine2="                                                             ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="570"
+            line="571"
             column="62"/>
     </issue>
 
@@ -1383,7 +1372,7 @@
         errorLine2="                ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="570"
+            line="571"
             column="17"/>
     </issue>
 
@@ -1394,7 +1383,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="571"
+            line="572"
             column="25"/>
     </issue>
 
@@ -1405,7 +1394,7 @@
         errorLine2="                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="576"
+            line="577"
             column="33"/>
     </issue>
 
@@ -1416,7 +1405,7 @@
         errorLine2="                                                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="577"
+            line="578"
             column="65"/>
     </issue>
 
@@ -1427,7 +1416,7 @@
         errorLine2="                ~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="577"
+            line="578"
             column="17"/>
     </issue>
 
@@ -1438,7 +1427,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="578"
+            line="579"
             column="25"/>
     </issue>
 
@@ -1449,7 +1438,7 @@
         errorLine2="                                                 ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="621"
+            line="622"
             column="50"/>
     </issue>
 
@@ -1460,7 +1449,7 @@
         errorLine2="            ~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="634"
+            line="635"
             column="13"/>
     </issue>
 
@@ -4804,7 +4793,7 @@
         errorLine2="                                       ~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="83"
+            line="84"
             column="40"/>
     </issue>
 
@@ -4815,7 +4804,7 @@
         errorLine2="                                       ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="89"
+            line="90"
             column="40"/>
     </issue>
 
@@ -4826,7 +4815,7 @@
         errorLine2="                                          ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="95"
+            line="96"
             column="43"/>
     </issue>
 
@@ -4837,7 +4826,7 @@
         errorLine2="               ~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="196"
+            line="197"
             column="16"/>
     </issue>
 
@@ -4848,7 +4837,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="196"
+            line="197"
             column="42"/>
     </issue>
 
@@ -4859,7 +4848,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="207"
+            line="208"
             column="37"/>
     </issue>
 
@@ -4870,7 +4859,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="207"
+            line="208"
             column="65"/>
     </issue>
 
@@ -4881,7 +4870,7 @@
         errorLine2="                                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="224"
+            line="225"
             column="43"/>
     </issue>
 
@@ -4892,7 +4881,7 @@
         errorLine2="                             ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="269"
+            line="270"
             column="30"/>
     </issue>
 
@@ -4903,7 +4892,7 @@
         errorLine2="               ~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="279"
+            line="280"
             column="16"/>
     </issue>
 
@@ -4914,7 +4903,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="279"
+            line="280"
             column="42"/>
     </issue>
 
@@ -4925,7 +4914,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="290"
+            line="291"
             column="37"/>
     </issue>
 
@@ -4936,7 +4925,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="290"
+            line="291"
             column="65"/>
     </issue>
 
@@ -4947,7 +4936,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="298"
+            line="299"
             column="43"/>
     </issue>
 
@@ -4958,7 +4947,7 @@
         errorLine2="                                                                      ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="298"
+            line="299"
             column="71"/>
     </issue>
 
@@ -4969,7 +4958,7 @@
         errorLine2="                                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="306"
+            line="307"
             column="43"/>
     </issue>
 
@@ -4980,7 +4969,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="327"
+            line="328"
             column="52"/>
     </issue>
 
@@ -4991,7 +4980,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="391"
+            line="392"
             column="16"/>
     </issue>
 
@@ -5002,7 +4991,7 @@
         errorLine2="               ~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="407"
+            line="408"
             column="16"/>
     </issue>
 
@@ -5013,7 +5002,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="407"
+            line="408"
             column="42"/>
     </issue>
 
@@ -5024,7 +5013,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="418"
+            line="419"
             column="37"/>
     </issue>
 
@@ -5035,7 +5024,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="418"
+            line="419"
             column="65"/>
     </issue>
 
@@ -5046,7 +5035,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="428"
+            line="429"
             column="43"/>
     </issue>
 
@@ -5057,7 +5046,7 @@
         errorLine2="                                                                      ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="428"
+            line="429"
             column="71"/>
     </issue>
 
@@ -5068,7 +5057,7 @@
         errorLine2="                                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="437"
+            line="438"
             column="43"/>
     </issue>
 
@@ -5079,7 +5068,7 @@
         errorLine2="                                                   ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="459"
+            line="460"
             column="52"/>
     </issue>
 
@@ -5090,7 +5079,7 @@
         errorLine2="                                                ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="479"
+            line="480"
             column="49"/>
     </issue>
 
@@ -5101,7 +5090,7 @@
         errorLine2="               ~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="502"
+            line="503"
             column="16"/>
     </issue>
 
@@ -5112,7 +5101,7 @@
         errorLine2="                                 ~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="502"
+            line="503"
             column="34"/>
     </issue>
 
@@ -5123,7 +5112,7 @@
         errorLine2="                                                          ~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="502"
+            line="503"
             column="59"/>
     </issue>
 
@@ -5134,7 +5123,7 @@
         errorLine2="                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="503"
+            line="504"
             column="17"/>
     </issue>
 
@@ -5145,7 +5134,7 @@
         errorLine2="               ~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="535"
+            line="536"
             column="16"/>
     </issue>
 
@@ -5156,7 +5145,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="535"
+            line="536"
             column="42"/>
     </issue>
 
@@ -5167,7 +5156,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="546"
+            line="547"
             column="16"/>
     </issue>
 
@@ -5178,7 +5167,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="556"
+            line="557"
             column="37"/>
     </issue>
 
@@ -5189,7 +5178,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="556"
+            line="557"
             column="65"/>
     </issue>
 
@@ -5200,7 +5189,7 @@
         errorLine2="                                          ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="583"
+            line="584"
             column="43"/>
     </issue>
 
@@ -5211,7 +5200,7 @@
         errorLine2="                                                                      ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="583"
+            line="584"
             column="71"/>
     </issue>
 
@@ -5222,7 +5211,7 @@
         errorLine2="                                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="590"
+            line="591"
             column="43"/>
     </issue>
 
@@ -5233,7 +5222,7 @@
         errorLine2="               ~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="618"
+            line="619"
             column="16"/>
     </issue>
 
@@ -5244,7 +5233,7 @@
         errorLine2="                                         ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="618"
+            line="619"
             column="42"/>
     </issue>
 
@@ -5255,7 +5244,7 @@
         errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="629"
+            line="630"
             column="37"/>
     </issue>
 
@@ -5266,7 +5255,7 @@
         errorLine2="                                                                ~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="629"
+            line="630"
             column="65"/>
     </issue>
 
@@ -5277,7 +5266,7 @@
         errorLine2="                                          ~~~~~~~~~~~~">
         <location
             file="src/main/java/com/example/android/leanback/GuidedStepActivity.java"
-            line="638"
+            line="639"
             column="43"/>
     </issue>
 
diff --git a/samples/SupportPreferenceDemos/lint-baseline.xml b/samples/SupportPreferenceDemos/lint-baseline.xml
index 1f9c3bd..03a3611 100644
--- a/samples/SupportPreferenceDemos/lint-baseline.xml
+++ b/samples/SupportPreferenceDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="MissingTvBanner"
diff --git a/samples/SupportRemoteCallbackDemos/lint-baseline.xml b/samples/SupportRemoteCallbackDemos/lint-baseline.xml
index 7fea55a..5ff028e 100644
--- a/samples/SupportRemoteCallbackDemos/lint-baseline.xml
+++ b/samples/SupportRemoteCallbackDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/samples/SupportSliceDemos/lint-baseline.xml b/samples/SupportSliceDemos/lint-baseline.xml
index 5f5225d..9eafe6a 100644
--- a/samples/SupportSliceDemos/lint-baseline.xml
+++ b/samples/SupportSliceDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/samples/SupportTransitionDemos/lint-baseline.xml b/samples/SupportTransitionDemos/lint-baseline.xml
index 7a2c909..9f60414 100644
--- a/samples/SupportTransitionDemos/lint-baseline.xml
+++ b/samples/SupportTransitionDemos/lint-baseline.xml
@@ -1,16 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="AppCompatResource"
-        message="Should use `android:showAsAction` when not using the appcompat library"
-        errorLine1="            app:showAsAction=&quot;ifRoom&quot;/>"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/res/menu/basic_usage.xml"
-            line="22"
-            column="13"/>
-    </issue>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/samples/SupportWearDemos/lint-baseline.xml b/samples/SupportWearDemos/lint-baseline.xml
index 50d9261..177b48d 100644
--- a/samples/SupportWearDemos/lint-baseline.xml
+++ b/samples/SupportWearDemos/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/security/crypto/lint-baseline.xml b/security/crypto/lint-baseline.xml
index 50222a8..20f6391 100644
--- a/security/crypto/lint-baseline.xml
+++ b/security/crypto/lint-baseline.xml
@@ -1,5 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `new android.util.ArraySet`"
+        errorLine1="        Set&lt;String> stringSetValue = new ArraySet&lt;>();"
+        errorLine2="                                     ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java"
+            line="144"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Cast from `ArraySet` to `Set` requires API level 23 (current min is 21)"
+        errorLine1="        Set&lt;String> stringSetValue = new ArraySet&lt;>();"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java"
+            line="144"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.util.ArraySet#valueAt`"
+        errorLine1="                ((ArraySet&lt;String>) stringSetValue).valueAt(0),"
+        errorLine2="                                                    ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java"
+            line="189"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 23 (current min is 21): `android.util.ArraySet`"
+        errorLine1="                ((ArraySet&lt;String>) stringSetValue).valueAt(0),"
+        errorLine2="                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java"
+            line="189"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.content.Context#getSystemService`"
+        errorLine1="        KeyguardManager keyguardManager = context.getSystemService(KeyguardManager.class);"
+        errorLine2="                                                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/MasterKeySecureTest.java"
+            line="57"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 21): `android.app.KeyguardManager#isDeviceSecure`"
+        errorLine1="        Assume.assumeTrue(keyguardManager != null &amp;&amp; keyguardManager.isDeviceSecure());"
+        errorLine2="                                                                     ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/security/crypto/MasterKeySecureTest.java"
+            line="58"
+            column="70"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/security/security-app-authenticator-testing/lint-baseline.xml b/security/security-app-authenticator-testing/lint-baseline.xml
new file mode 100644
index 0000000..4ec6f47
--- /dev/null
+++ b/security/security-app-authenticator-testing/lint-baseline.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="        Set&lt;String> newPackageCertDigests = Set.of("
+        errorLine2="                                                ~~">
+        <location
+            file="src/androidTest/java/androidx/security/app/authenticator/TestAppSignatureVerifierTest.java"
+            line="139"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="        Set&lt;String> newAllPackagesCertDigests = Set.of("
+        errorLine2="                                                    ~~">
+        <location
+            file="src/androidTest/java/androidx/security/app/authenticator/TestAppSignatureVerifierTest.java"
+            line="141"
+            column="53"/>
+    </issue>
+
+</issues>
diff --git a/security/security-app-authenticator/lint-baseline.xml b/security/security-app-authenticator/lint-baseline.xml
new file mode 100644
index 0000000..6a0c5d4
--- /dev/null
+++ b/security/security-app-authenticator/lint-baseline.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="91"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setAllPackagesCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST),"
+        errorLine2="                                                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="102"
+            column="61"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="114"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setAllPackagesCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST),"
+        errorLine2="                                                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="125"
+            column="61"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST, SIGNATURE1_DIGEST),"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="139"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE2_DIGEST, SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="155"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="167"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="169"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="192"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="216"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="232"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="249"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="264"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="279"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="295"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE2_DIGEST, SIGNATURE1_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="309"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE2_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="320"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                        Set.of(SIGNATURE1_DIGEST, SIGNATURE2_DIGEST, SIGNATURE3_DIGEST))"
+        errorLine2="                            ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="333"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE1_DIGEST, SIGNATURE3_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="346"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE1_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="358"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE2_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="372"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE2_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="387"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setExpectedIdentities(Set.of(SIGNATURE2_DIGEST))"
+        errorLine2="                                           ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="402"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE1_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="426"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="447"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `java.util.Set#of`"
+        errorLine1="                .setPackageCertDigestsForPermission(Set.of(SIGNATURE2_DIGEST), TEST_PERMISSION_NAME)"
+        errorLine2="                                                        ~~">
+        <location
+            file="src/test/java/androidx/security/app/authenticator/AppSignatureVerifierTest.java"
+            line="465"
+            column="57"/>
+    </issue>
+
+</issues>
diff --git a/settings.gradle b/settings.gradle
index 8e095e4..0ab046f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -363,6 +363,7 @@
 includeProject(":compose:ui:ui-text:ui-text-samples", "compose/ui/ui-text/samples", [BuildType.COMPOSE])
 includeProject(":compose:ui:ui-tooling", "compose/ui/ui-tooling", [BuildType.COMPOSE])
 includeProject(":compose:ui:ui-tooling-data", "compose/ui/ui-tooling-data", [BuildType.COMPOSE])
+includeProject(":compose:ui:ui-tooling-preview", "compose/ui/ui-tooling-preview", [BuildType.COMPOSE])
 includeProject(":compose:ui:ui-unit", "compose/ui/ui-unit", [BuildType.COMPOSE])
 includeProject(":compose:ui:ui-unit:ui-unit-samples", "compose/ui/ui-unit/samples", [BuildType.COMPOSE])
 includeProject(":compose:ui:ui-util", "compose/ui/ui-util", [BuildType.COMPOSE])
diff --git a/sharetarget/OWNERS b/sharetarget/OWNERS
index bbad121..e5d1f0f 100644
--- a/sharetarget/OWNERS
+++ b/sharetarget/OWNERS
@@ -1,2 +1,2 @@
-mett@google.com
 sunnygoyal@google.com
+pinyaoting@google.com
diff --git a/sharetarget/integration-tests/testapp/lint-baseline.xml b/sharetarget/integration-tests/testapp/lint-baseline.xml
index a692025..e8eb413 100644
--- a/sharetarget/integration-tests/testapp/lint-baseline.xml
+++ b/sharetarget/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/sharetarget/sharetarget/lint-baseline.xml b/sharetarget/sharetarget/lint-baseline.xml
index 841949b..d9a42bd 100644
--- a/sharetarget/sharetarget/lint-baseline.xml
+++ b/sharetarget/sharetarget/lint-baseline.xml
@@ -1,5 +1,434 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcutIcon`"
+        errorLine1="        when(mShortcutSaver.getShortcutIcon(any())).thenReturn(mTestIcon);"
+        errorLine2="                            ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ChooserTargetServiceCompatTest.java"
+            line="63"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `createExecutorService`"
+        errorLine1="        mCacheUpdateService = ShortcutInfoCompatSaverImpl.createExecutorService();"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="80"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `createExecutorService`"
+        errorLine1="        mDiskIoService = ShortcutInfoCompatSaverImpl.createExecutorService();"
+        errorLine2="                                                     ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="81"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `ShortcutInfoCompatSaverImpl`"
+        errorLine1="        mShortcutInfoSaver = new ShortcutInfoCompatSaverImpl(mContext, mCacheUpdateService,"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="82"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `removeAllShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.removeAllShortcuts());"
+        errorLine2="                                                ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="84"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `removeAllShortcuts`"
+        errorLine1="            mShortcutInfoSaver.removeAllShortcuts().get();"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="156"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getInstance`"
+        errorLine1="                ShortcutInfoCompatSaverImpl.getInstance(mContext);"
+        errorLine2="                                            ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="239"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getInstance`"
+        errorLine1="        assertEquals(saver, ShortcutInfoCompatSaverImpl.getInstance(mContext));"
+        errorLine2="                                                        ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="241"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        List&lt;ShortcutInfoCompat> shortcuts = mShortcutInfoSaver.getShortcuts();"
+        errorLine2="                                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="246"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(mTestShortcuts));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="254"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(testShortcutsWithCategories(), mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                                    ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="255"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        ListenableFuture&lt;?> future = mShortcutInfoSaver.addShortcuts(mTestShortcuts);"
+        errorLine2="                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="260"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(testShortcutsWithCategories(), mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                                    ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="264"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(firstBatch));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="280"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        ListenableFuture&lt;Void> future = mShortcutInfoSaver.addShortcuts(secondBatch);"
+        errorLine2="                                                           ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="281"
+            column="60"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(allShortcuts, mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                   ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="283"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(allShortcuts, mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                   ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="286"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(mTestShortcuts));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="291"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `removeShortcuts`"
+        errorLine1="        ListenableFuture&lt;?> future = mShortcutInfoSaver.removeShortcuts(removeIds);"
+        errorLine2="                                                        ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="296"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(testShortcutsWithCategories(), mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                                    ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="301"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(testShortcutsWithCategories(), mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                                    ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="304"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(mTestShortcuts));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="309"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertShortcutsListEquals(testShortcutsWithCategories(), mShortcutInfoSaver.getShortcuts());"
+        errorLine2="                                                                                    ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="310"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `removeAllShortcuts`"
+        errorLine1="        ListenableFuture&lt;?> future = mShortcutInfoSaver.removeAllShortcuts();"
+        errorLine2="                                                        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="312"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertTrue(mShortcutInfoSaver.getShortcuts().isEmpty());"
+        errorLine2="                                      ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="314"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        assertTrue(mShortcutInfoSaver.getShortcuts().isEmpty());"
+        errorLine2="                                      ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="317"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        ListenableFuture&lt;?> future = mShortcutInfoSaver.addShortcuts(mTestShortcuts);"
+        errorLine2="                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="322"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        List&lt;ShortcutInfoCompat> shortcuts = mShortcutInfoSaver.getShortcuts();"
+        errorLine2="                                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="326"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(mTestShortcuts));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="334"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        List&lt;ShortcutInfoCompat> shortcuts = mShortcutInfoSaver.getShortcuts();"
+        errorLine2="                                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="336"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcutIcon`"
+        errorLine1="            verifyCorrectIconLoaded(item.getId(), mShortcutInfoSaver.getShortcutIcon(item.getId()));"
+        errorLine2="                                                                     ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="338"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        ListenableFuture&lt;?> future = mShortcutInfoSaver.addShortcuts(mTestShortcuts);"
+        errorLine2="                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="344"
+            column="57"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcuts`"
+        errorLine1="        List&lt;ShortcutInfoCompat> shortcuts = mShortcutInfoSaver.getShortcuts();"
+        errorLine2="                                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="348"
+            column="65"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcutIcon`"
+        errorLine1="            verifyCorrectIconLoaded(item.getId(), mShortcutInfoSaver.getShortcutIcon(item.getId()));"
+        errorLine2="                                                                     ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="350"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `addShortcuts`"
+        errorLine1="        catchAsyncExceptions(mShortcutInfoSaver.addShortcuts(mTestShortcuts));"
+        errorLine2="                                                ~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="356"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `getShortcutIcon`"
+        errorLine1="        assertNull(mShortcutInfoSaver.getShortcutIcon(&quot;unknown-id&quot;));"
+        errorLine2="                                      ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="358"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `createExecutorService`"
+        errorLine1="        mCacheUpdateService = ShortcutInfoCompatSaverImpl.createExecutorService();"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="400"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `createExecutorService`"
+        errorLine1="        mDiskIoService = ShortcutInfoCompatSaverImpl.createExecutorService();"
+        errorLine2="                                                     ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="401"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 19 (current min is 14): `ShortcutInfoCompatSaverImpl`"
+        errorLine1="        mShortcutInfoSaver = new ShortcutInfoCompatSaverImpl(mContext, mCacheUpdateService,"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java"
+            line="402"
+            column="30"/>
+    </issue>
 
     <issue
         id="UnknownNullness"
diff --git a/sharetarget/sharetarget/src/main/AndroidManifest.xml b/sharetarget/sharetarget/src/main/AndroidManifest.xml
index 5173fa2..044e38f 100644
--- a/sharetarget/sharetarget/src/main/AndroidManifest.xml
+++ b/sharetarget/sharetarget/src/main/AndroidManifest.xml
@@ -19,7 +19,8 @@
 
     <application>
         <service android:name=".ChooserTargetServiceCompat"
-                 android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
+                 android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"
+                 android:exported="true">
             <intent-filter>
                 <action android:name="android.service.chooser.ChooserTargetService"/>
             </intent-filter>
diff --git a/slices/builders/lint-baseline.xml b/slices/builders/lint-baseline.xml
index d679f37..e619929 100644
--- a/slices/builders/lint-baseline.xml
+++ b/slices/builders/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/slices/core/lint-baseline.xml b/slices/core/lint-baseline.xml
index 2861f41..41e354c 100644
--- a/slices/core/lint-baseline.xml
+++ b/slices/core/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 19): `android.content.pm.PackageManager#getPackageUid`"
+        errorLine1="        mTestUid = mContext.getPackageManager().getPackageUid(mTestPkg, 0);"
+        errorLine2="                                                ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/slice/SlicePermissionTest.java"
+            line="58"
+            column="49"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -47,7 +58,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            return (int) h.getClass().getDeclaredMethod(&quot;getIdentifier&quot;).invoke(h);"
         errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/slices/test/lint-baseline.xml b/slices/test/lint-baseline.xml
index e6ba8b8..11b0024 100644
--- a/slices/test/lint-baseline.xml
+++ b/slices/test/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/slices/view/lint-baseline.xml b/slices/view/lint-baseline.xml
index 113cd8b..58f5cb5 100644
--- a/slices/view/lint-baseline.xml
+++ b/slices/view/lint-baseline.xml
@@ -1,5 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 20 (current min is 19): `android.app.RemoteInput.Builder#build`"
+        errorLine1="        RemoteInput remoteInput = new RemoteInput.Builder(&quot;&quot;).build();"
+        errorLine2="                                                              ~~~~~">
+        <location
+            file="src/androidTest/java/androidx/slice/SliceXmlTest.java"
+            line="80"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 20 (current min is 19): `new android.app.RemoteInput.Builder`"
+        errorLine1="        RemoteInput remoteInput = new RemoteInput.Builder(&quot;&quot;).build();"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/slice/SliceXmlTest.java"
+            line="80"
+            column="35"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/slidingpanelayout/slidingpanelayout/lint-baseline.xml b/slidingpanelayout/slidingpanelayout/lint-baseline.xml
index 5529aaa..cd1e2f1 100644
--- a/slidingpanelayout/slidingpanelayout/lint-baseline.xml
+++ b/slidingpanelayout/slidingpanelayout/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml b/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml
deleted file mode 100644
index fe92ca3..0000000
--- a/sqlite/integration-tests/inspection-room-testapp/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="MissingTestSizeAnnotation"
-        message="Missing test size annotation"
-        errorLine1="    fun invalidationHook() = runBlocking&lt;Unit>(testJob) {"
-        errorLine2="        ~~~~~~~~~~~~~~~~">
-        <location
-            file="src/androidTest/java/androidx/sqlite/inspection/RoomInvalidationHookTest.kt"
-            line="80"
-            column="9"/>
-    </issue>
-
-</issues>
diff --git a/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml b/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml
deleted file mode 100644
index c5d00a5..0000000
--- a/sqlite/integration-tests/inspection-sqldelight-testapp/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="MissingTestSizeAnnotation"
-        message="Missing test size annotation"
-        errorLine1="    fun test() {"
-        errorLine2="        ~~~~">
-        <location
-            file="src/androidTest/java/androidx/sqlite/inspection/SqlDelightInvalidationTest.kt"
-            line="73"
-            column="9"/>
-    </issue>
-
-</issues>
diff --git a/sqlite/sqlite-framework/lint-baseline.xml b/sqlite/sqlite-framework/lint-baseline.xml
index 6603aec..6e6c458 100644
--- a/sqlite/sqlite-framework/lint-baseline.xml
+++ b/sqlite/sqlite-framework/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
@@ -8,7 +8,7 @@
         errorLine2="        ^">
         <location
             file="src/main/java/androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper.java"
-            line="143"
+            line="149"
             column="9"/>
     </issue>
 
@@ -19,7 +19,7 @@
         errorLine2="        ^">
         <location
             file="src/main/java/androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper.java"
-            line="154"
+            line="160"
             column="9"/>
     </issue>
 
@@ -30,7 +30,7 @@
         errorLine2="        ^">
         <location
             file="src/main/java/androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper.java"
-            line="199"
+            line="205"
             column="9"/>
     </issue>
 
diff --git a/sqlite/sqlite-inspection/lint-baseline.xml b/sqlite/sqlite-inspection/lint-baseline.xml
index d57b4aa..3dabb13 100644
--- a/sqlite/sqlite-inspection/lint-baseline.xml
+++ b/sqlite/sqlite-inspection/lint-baseline.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    mRefreshMethod.invoke(instance);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -14,7 +14,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            mNotifyDataChangeMethod.invoke(query);"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/sqlite/sqlite/lint-baseline.xml b/sqlite/sqlite/lint-baseline.xml
index 1c02a16..3aab667 100644
--- a/sqlite/sqlite/lint-baseline.xml
+++ b/sqlite/sqlite/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml b/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
index 98a416e..510e9e2c 100644
--- a/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
+++ b/swiperefreshlayout/swiperefreshlayout/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="KotlinPropertyAccess"
@@ -277,7 +277,7 @@
         errorLine2="                                     ~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1014"
+            line="1016"
             column="38"/>
     </issue>
 
@@ -288,7 +288,7 @@
         errorLine2="                                    ~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1021"
+            line="1023"
             column="37"/>
     </issue>
 
@@ -299,7 +299,7 @@
         errorLine2="                                 ~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1027"
+            line="1029"
             column="34"/>
     </issue>
 
@@ -310,7 +310,7 @@
         errorLine2="                              ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1065"
+            line="1067"
             column="31"/>
     </issue>
 
@@ -321,7 +321,7 @@
         errorLine2="                                                           ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1071"
+            line="1073"
             column="60"/>
     </issue>
 
@@ -332,7 +332,7 @@
         errorLine2="                                                                           ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1071"
+            line="1073"
             column="76"/>
     </issue>
 
@@ -343,7 +343,7 @@
         errorLine2="                              ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1106"
+            line="1108"
             column="31"/>
     </issue>
 
@@ -354,7 +354,7 @@
         errorLine2="                                                           ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1112"
+            line="1114"
             column="60"/>
     </issue>
 
@@ -365,7 +365,7 @@
         errorLine2="                                                                           ~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1112"
+            line="1114"
             column="76"/>
     </issue>
 
@@ -376,7 +376,7 @@
         errorLine2="                                ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayout.java"
-            line="1217"
+            line="1219"
             column="33"/>
     </issue>
 
diff --git a/testutils/testutils-espresso/lint-baseline.xml b/testutils/testutils-espresso/lint-baseline.xml
index b4cf80d..6955bb6 100644
--- a/testutils/testutils-espresso/lint-baseline.xml
+++ b/testutils/testutils-espresso/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="UnknownNullness"
diff --git a/testutils/testutils-runtime/lint-baseline.xml b/testutils/testutils-runtime/lint-baseline.xml
index 7d270a3..4144abb 100644
--- a/testutils/testutils-runtime/lint-baseline.xml
+++ b/testutils/testutils-runtime/lint-baseline.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            durationSetter.invoke(null, 1.0f)"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -14,7 +14,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="    private val originalDurationScale = durationGetter.invoke(null) as Float"
         errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -25,7 +25,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="        durationSetter.invoke(null, animationDurationScale)"
         errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -36,7 +36,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="        durationSetter.invoke(null, originalDurationScale)"
         errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/textclassifier/integration-tests/testapp/lint-baseline.xml b/textclassifier/integration-tests/testapp/lint-baseline.xml
index f33cca5..d36e58b 100644
--- a/textclassifier/integration-tests/testapp/lint-baseline.xml
+++ b/textclassifier/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="SyntheticAccessor"
diff --git a/textclassifier/textclassifier/lint-baseline.xml b/textclassifier/textclassifier/lint-baseline.xml
index 63494c0..340568b 100644
--- a/textclassifier/textclassifier/lint-baseline.xml
+++ b/textclassifier/textclassifier/lint-baseline.xml
@@ -1,5 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `FLOATING_TOOLBAR_TAG`"
+        errorLine1="        final Object tag = FloatingToolbar.FLOATING_TOOLBAR_TAG;"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarEspressoUtils.java"
+            line="45"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `MAIN_PANEL_TAG`"
+        errorLine1="        final Object tag = FloatingToolbar.MAIN_PANEL_TAG;"
+        errorLine2="                                           ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarEspressoUtils.java"
+            line="61"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `OVERFLOW_PANEL_TAG`"
+        errorLine1="        final Object tag = FloatingToolbar.OVERFLOW_PANEL_TAG;"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarEspressoUtils.java"
+            line="66"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 23 (current min is 14): `FLOATING_TOOLBAR_TAG`"
+        errorLine1="        final Object tag = FloatingToolbar.FLOATING_TOOLBAR_TAG;"
+        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarEspressoUtils.java"
+            line="71"
+            column="44"/>
+    </issue>
 
     <issue
         id="WrongConstant"
diff --git a/tracing/tracing/lint-baseline.xml b/tracing/tracing/lint-baseline.xml
deleted file mode 100644
index ca00e4a..0000000
--- a/tracing/tracing/lint-baseline.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-</issues>
diff --git a/transition/transition/lint-baseline.xml b/transition/transition/lint-baseline.xml
index 1d9f07a..a9da805 100644
--- a/transition/transition/lint-baseline.xml
+++ b/transition/transition/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ResourceType"
@@ -168,7 +168,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                        (View) sAddGhostMethod.invoke(null, view, viewGroup, matrix));"
         errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -179,7 +179,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                sRemoveGhostMethod.invoke(null, view);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -190,7 +190,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                sCancelMethod.invoke(t);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -201,7 +201,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                    sInvalidateChildInParentFastMethod.invoke(mHostView, left, top, dirty);"
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -212,7 +212,7 @@
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="                sSetFrameMethod.invoke(v, left, top, right, bottom);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/tv-provider/tv-provider/lint-baseline.xml b/tv-provider/tv-provider/lint-baseline.xml
index f9b1035..0196d88 100644
--- a/tv-provider/tv-provider/lint-baseline.xml
+++ b/tv-provider/tv-provider/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/vectordrawable/integration-tests/testapp/lint-baseline.xml b/vectordrawable/integration-tests/testapp/lint-baseline.xml
index 610f5d7..b8cad8e 100644
--- a/vectordrawable/integration-tests/testapp/lint-baseline.xml
+++ b/vectordrawable/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="NewApi"
diff --git a/vectordrawable/vectordrawable-animated/lint-baseline.xml b/vectordrawable/vectordrawable-animated/lint-baseline.xml
index 01cd1086..9ec2eb3 100644
--- a/vectordrawable/vectordrawable-animated/lint-baseline.xml
+++ b/vectordrawable/vectordrawable-animated/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/vectordrawable/vectordrawable/lint-baseline.xml b/vectordrawable/vectordrawable/lint-baseline.xml
index 3a9ced8..2a90505 100644
--- a/vectordrawable/vectordrawable/lint-baseline.xml
+++ b/vectordrawable/vectordrawable/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ResourceType"
diff --git a/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml b/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
index d4598db..dc618a7 100644
--- a/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
+++ b/versionedparcelable/versionedparcelable-compiler/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/versionedparcelable/versionedparcelable/lint-baseline.xml b/versionedparcelable/versionedparcelable/lint-baseline.xml
index 949938fb..6235886 100644
--- a/versionedparcelable/versionedparcelable/lint-baseline.xml
+++ b/versionedparcelable/versionedparcelable/lint-baseline.xml
@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            return (T) m.invoke(null, versionedParcel);"
         errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/versionedparcelable/VersionedParcel.java"
-            line="1615"
+            line="1598"
             column="24"/>
     </issue>
 
     <issue
         id="BanUncheckedReflection"
-        message="Calling Method.invoke without an SDK check"
+        message="Calling `Method.invoke` without an SDK check"
         errorLine1="            m.invoke(null, val, versionedParcel);"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/versionedparcelable/VersionedParcel.java"
-            line="1642"
+            line="1625"
             column="13"/>
     </issue>
 
@@ -30,7 +30,7 @@
         errorLine2="                                                               ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/versionedparcelable/VersionedParcel.java"
-            line="290"
+            line="291"
             column="64"/>
     </issue>
 
diff --git a/viewpager/viewpager/lint-baseline.xml b/viewpager/viewpager/lint-baseline.xml
index d331d83..25cc6cd 100644
--- a/viewpager/viewpager/lint-baseline.xml
+++ b/viewpager/viewpager/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="LambdaLast"
diff --git a/viewpager2/integration-tests/testapp/lint-baseline.xml b/viewpager2/integration-tests/testapp/lint-baseline.xml
index a8c267e..7b63883 100644
--- a/viewpager2/integration-tests/testapp/lint-baseline.xml
+++ b/viewpager2/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/viewpager2/viewpager2/lint-baseline.xml b/viewpager2/viewpager2/lint-baseline.xml
index 8c446ed..12c5d61 100644
--- a/viewpager2/viewpager2/lint-baseline.xml
+++ b/viewpager2/viewpager2/lint-baseline.xml
@@ -1,5 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 16 (current min is 14): `android.view.View#setHasTransientState`"
+        errorLine1="                v.setHasTransientState(true)"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/viewpager2/widget/TransientStateFragmentTest.kt"
+            line="76"
+            column="19"/>
+    </issue>
 
     <issue
         id="ClassVerificationFailure"
diff --git a/wear/compose/material/lint-baseline.xml b/wear/compose/material/lint-baseline.xml
new file mode 100644
index 0000000..25fd2c5
--- /dev/null
+++ b/wear/compose/material/lint-baseline.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="588"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="608"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="628"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="648"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="807"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="        .captureToImage()"
+        errorLine2="         ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ButtonTest.kt"
+            line="887"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt"
+            line="528"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt"
+            line="549"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt"
+            line="724"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt"
+            line="799"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="        .captureToImage()"
+        errorLine2="         ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt"
+            line="888"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="56"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="75"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="90"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="214"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="219"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="372"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/MaterialThemeTest.kt"
+            line="377"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="387"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="436"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="483"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="            .captureToImage()"
+        errorLine2="             ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="532"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="                .captureToImage()"
+        errorLine2="                 ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="597"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `captureToImage`"
+        errorLine1="        .captureToImage()"
+        errorLine2="         ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidAndroidTest/kotlin/androidx/wear/compose/material/ToggleButtonTest.kt"
+            line="636"
+            column="10"/>
+    </issue>
+
+</issues>
diff --git a/wear/compose/material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt b/wear/compose/material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
index a8173af..db8fd6e 100644
--- a/wear/compose/material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
+++ b/wear/compose/material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ChipTest.kt
@@ -392,7 +392,7 @@
         verifyGradientBackgroundColors(
             TestChipColors.PrimaryGradient,
             ChipStatus.Enabled,
-            { MaterialTheme.colors.onPrimary },
+            { MaterialTheme.colors.onSurface },
         )
 
     @Test
diff --git a/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt b/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
index 4766454..f4fc47e 100644
--- a/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
+++ b/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
@@ -430,9 +430,9 @@
      */
     @Composable
     public fun gradientBackgroundChipColors(
-        startBackgroundColor: Color = MaterialTheme.colors.primary,
+        startBackgroundColor: Color = MaterialTheme.colors.primary.copy(alpha = 0.5f),
         endBackgroundColor: Color = MaterialTheme.colors.surface,
-        contentColor: Color = contentColorFor(startBackgroundColor),
+        contentColor: Color = contentColorFor(endBackgroundColor),
         secondaryContentColor: Color = contentColor,
         iconTintColor: Color = contentColor,
         gradientDirection: LayoutDirection = LocalLayoutDirection.current
@@ -467,8 +467,9 @@
                 Brush.linearGradient(disabledBackgroundColors)
             ),
             disabledContentColor = contentColor.copy(alpha = ContentAlpha.disabled),
-            disabledSecondaryContentColor =
-                secondaryContentColor.copy(alpha = ContentAlpha.disabled),
+            disabledSecondaryContentColor = secondaryContentColor.copy(
+                alpha = ContentAlpha.disabled
+            ),
             disabledIconTintColor = iconTintColor.copy(alpha = ContentAlpha.disabled),
         )
     }
@@ -527,7 +528,7 @@
         )
     }
 
-    private val ChipHorizontalPadding = 16.dp
+    private val ChipHorizontalPadding = 14.dp
     private val ChipWithIconHorizontalPadding = 12.dp
     private val ChipVerticalPadding = 6.dp
 
diff --git a/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Colors.kt b/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Colors.kt
index b01d38e..fad4fe3 100644
--- a/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Colors.kt
+++ b/wear/compose/material/src/commonMain/kotlin/androidx/wear/compose/material/Colors.kt
@@ -33,6 +33,9 @@
     secondary: Color = Color(0xFFFDE293),
     secondaryVariant: Color = Color(0xFF594F33),
     error: Color = Color(0xFFEE675C),
+    onPrimary: Color = Color(0xFF202124),
+    onSecondary: Color = Color(0xFF202124),
+    onError: Color = Color(0xFF202124)
 ) {
     public var primary: Color by mutableStateOf(primary, structuralEqualityPolicy())
         internal set
@@ -49,13 +52,16 @@
     public val surface: Color = Color(0xFF202124)
     public var error: Color by mutableStateOf(error, structuralEqualityPolicy())
         internal set
-    public val onPrimary: Color = Color(0xFF202124)
-    public val onSecondary: Color = Color(0xFF202124)
+    public var onPrimary: Color by mutableStateOf(onPrimary, structuralEqualityPolicy())
+        internal set
+    public var onSecondary: Color by mutableStateOf(onSecondary, structuralEqualityPolicy())
+        internal set
     public val onBackground: Color = Color.White
     public val onSurface: Color = Color.White
     public val onSurfaceVariant: Color = Color(0xFFDADCE0)
     public val onSurfaceVariant2: Color = Color(0xFFBDC1C6)
-    public val onError: Color = Color(0xFF202124)
+    public var onError: Color by mutableStateOf(onError, structuralEqualityPolicy())
+        internal set
 
     /**
      * Returns a copy of this Colors, optionally overriding some of the values.
@@ -66,12 +72,18 @@
         secondary: Color = this.secondary,
         secondaryVariant: Color = this.secondaryVariant,
         error: Color = this.error,
+        onPrimary: Color = this.onPrimary,
+        onSecondary: Color = this.onSecondary,
+        onError: Color = this.onError
     ): Colors = Colors(
-        primary,
-        primaryVariant,
-        secondary,
-        secondaryVariant,
-        error,
+        primary = primary,
+        primaryVariant = primaryVariant,
+        secondary = secondary,
+        secondaryVariant = secondaryVariant,
+        error = error,
+        onPrimary = onPrimary,
+        onSecondary = onSecondary,
+        onError = onError
     )
 
     override fun toString(): String {
@@ -165,6 +177,9 @@
     secondary = other.secondary
     secondaryVariant = other.secondaryVariant
     error = other.error
+    onPrimary = other.onPrimary
+    onSecondary = other.onSecondary
+    onError = other.onError
 }
 
 internal val LocalColors = staticCompositionLocalOf<Colors> { Colors() }
diff --git a/wear/tiles/tiles-renderer/lint-baseline.xml b/wear/tiles/tiles-renderer/lint-baseline.xml
deleted file mode 100644
index e161273..0000000
--- a/wear/tiles/tiles-renderer/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="ObsoleteSdkInt"
-        message="Unnecessary; SDK_INT is always >= 26"
-        errorLine1="        if (Build.VERSION.SDK_INT >= 26 &amp;&amp; attributes.mFontVariationSettings != null) {"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/wear/tiles/renderer/internal/WearCurvedTextView.java"
-            line="569"
-            column="13"/>
-    </issue>
-
-</issues>
diff --git a/wear/tiles/tiles/lint-baseline.xml b/wear/tiles/tiles/lint-baseline.xml
new file mode 100644
index 0000000..143fe06
--- /dev/null
+++ b/wear/tiles/tiles/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `java.util.List#of`"
+        errorLine1="                        List.of(mFakeUpdateRequester1, mFakeUpdateRequester2));"
+        errorLine2="                             ~~">
+        <location
+            file="src/test/java/androidx/wear/tiles/CompositeTileUpdateRequesterTest.java"
+            line="53"
+            column="30"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-complications-data/lint-baseline.xml b/wear/wear-complications-data/lint-baseline.xml
index 30ac451..ea1f0bf 100644
--- a/wear/wear-complications-data/lint-baseline.xml
+++ b/wear/wear-complications-data/lint-baseline.xml
@@ -1,5 +1,181 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `retrievePreviewComplicationData`"
+        errorLine1="                providerInfoRetriever.retrievePreviewComplicationData(component, type)!!"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/ProviderInfoRetrieverTest.kt"
+            line="86"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `retrievePreviewComplicationData`"
+        errorLine1="            assertThat(providerInfoRetriever.retrievePreviewComplicationData(component, type))"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/ProviderInfoRetrieverTest.kt"
+            line="114"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `retrievePreviewComplicationData`"
+        errorLine1="            assertThat(providerInfoRetriever.retrievePreviewComplicationData(component, type))"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/ProviderInfoRetrieverTest.kt"
+            line="127"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `retrievePreviewComplicationData`"
+        errorLine1="            assertThat(providerInfoRetriever.retrievePreviewComplicationData(component, type))"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/ProviderInfoRetrieverTest.kt"
+            line="147"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                      ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="52"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="52"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                      ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="81"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="81"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val startPointMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                       ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="145"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val startPointMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                                                         ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="145"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val dateTimeMillis = Instant.parse(&quot;2020-12-30T10:15:20.00Z&quot;).toEpochMilli()"
+        errorLine2="                                     ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="171"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val dateTimeMillis = Instant.parse(&quot;2020-12-30T10:15:20.00Z&quot;).toEpochMilli()"
+        errorLine2="                                                                      ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="171"
+            column="71"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                      ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="194"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="194"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#parse`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                      ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="207"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.time.Instant#toEpochMilli`"
+        errorLine1="        val referenceMillis = Instant.parse(&quot;2020-12-30T10:15:30.001Z&quot;).toEpochMilli()"
+        errorLine2="                                                                        ~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/complications/data/TextTest.kt"
+            line="207"
+            column="73"/>
+    </issue>
 
     <issue
         id="MissingQuantity"
@@ -8,7 +184,7 @@
         errorLine2="    ^">
         <location
             file="src/main/res/values-fr-rCA/complication_strings.xml"
-            line="60"
+            line="4"
             column="5"/>
     </issue>
 
diff --git a/wear/wear-ongoing/lint-baseline.xml b/wear/wear-ongoing/lint-baseline.xml
new file mode 100644
index 0000000..f5983a5
--- /dev/null
+++ b/wear/wear-ongoing/lint-baseline.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="64"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(AnimatedIconResourceId, received.animatedIcon!!.resId)"
+        errorLine2="                                                                     ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="90"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="91"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(AnimatedIconResourceId, received.animatedIcon!!.resId)"
+        errorLine2="                                                                     ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="127"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="128"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(AnimatedIconResourceId, received.animatedIcon!!.resId)"
+        errorLine2="                                                                     ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="212"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="213"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(AnimatedIconResourceId, received.animatedIcon!!.resId)"
+        errorLine2="                                                                     ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="248"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="249"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(StaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                               ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="276"
+            column="64"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(newAnimatedIconResourceId, received.animatedIcon!!.resId)"
+        errorLine2="                                                                        ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="309"
+            column="73"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getResId`"
+        errorLine1="        assertEquals(newStaticIconResourceId, received.staticIcon.resId)"
+        errorLine2="                                                                  ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/ongoing/OngoingActivityTest.kt"
+            line="310"
+            column="67"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-phone-interactions/lint-baseline.xml b/wear/wear-phone-interactions/lint-baseline.xml
new file mode 100644
index 0000000..6a5a99f
--- /dev/null
+++ b/wear/wear-phone-interactions/lint-baseline.xml
@@ -0,0 +1,906 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val verifier = CodeVerifier()"
+        errorLine2="                       ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="29"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="        assertEquals(43, verifier.getValue().length)"
+        errorLine2="                                  ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="30"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val verifier = CodeVerifier(96)"
+        errorLine2="                       ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="35"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="        assertEquals(128, verifier.getValue().length)"
+        errorLine2="                                   ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="36"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            CodeVerifier(100)"
+        errorLine2="            ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="42"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val verifier = CodeVerifier()"
+        errorLine2="                       ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="51"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertTrue(verifier.equals(CodeVerifier(verifier.getValue())))"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="52"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertTrue(verifier.equals(CodeVerifier(verifier.getValue())))"
+        errorLine2="                            ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="52"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="        assertTrue(verifier.equals(CodeVerifier(verifier.getValue())))"
+        errorLine2="                                                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="52"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeVerifier().equals(CodeVerifier()))"
+        errorLine2="                    ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="57"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeVerifier().equals(CodeVerifier()))"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="57"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertFalse(CodeVerifier().equals(CodeVerifier()))"
+        errorLine2="                                   ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="57"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeVerifier(50).equals(CodeVerifier(50)))"
+        errorLine2="                    ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="58"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeVerifier(50).equals(CodeVerifier(50)))"
+        errorLine2="                                            ~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="58"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertFalse(CodeVerifier(50).equals(CodeVerifier(50)))"
+        errorLine2="                                     ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="58"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeVerifier().equals(null))"
+        errorLine2="                    ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="59"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertFalse(CodeVerifier().equals(null))"
+        errorLine2="                                   ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="59"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val verifier = CodeVerifier(&quot;dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk&quot;)"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="65"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val challenge = CodeChallenge(verifier)"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="66"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="        assertEquals(&quot;E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&quot;, challenge.getValue())"
+        errorLine2="                                                                              ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="67"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            CodeChallenge(CodeVerifier(verifierValue)).equals("
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="74"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            CodeChallenge(CodeVerifier(verifierValue)).equals("
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="74"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="            CodeChallenge(CodeVerifier(verifierValue)).equals("
+        errorLine2="                                                       ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="74"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="                CodeChallenge(CodeVerifier(verifierValue))"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="75"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="                CodeChallenge(CodeVerifier(verifierValue))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="75"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(CodeChallenge(CodeVerifier())))"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="82"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(CodeChallenge(CodeVerifier())))"
+        errorLine2="                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="82"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(CodeChallenge(CodeVerifier())))"
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="82"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(CodeChallenge(CodeVerifier())))"
+        errorLine2="                                                                       ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="82"
+            column="72"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(CodeChallenge(CodeVerifier())))"
+        errorLine2="                                                  ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="82"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(null))"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="83"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(null))"
+        errorLine2="                                  ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="83"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `equals`"
+        errorLine1="        assertFalse(CodeChallenge(CodeVerifier()).equals(null))"
+        errorLine2="                                                  ~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/CodeVerifierCodeChallengeTest.kt"
+            line="83"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `build`"
+        errorLine1="            request = builder.build()"
+        errorLine2="                              ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="51"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `build`"
+        errorLine1="            builder.build()"
+        errorLine2="                    ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="67"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="76"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="76"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="87"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="93"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="93"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="105"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="111"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="111"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="                        &quot;&amp;code_challenge=${codeChallenge.getValue()}&quot; +"
+        errorLine2="                                                         ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="118"
+            column="58"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="128"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="136"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                            ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="136"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="148"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                            ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="148"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="164"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                            ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="164"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="177"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="177"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="190"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="209"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="209"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="                &quot;expect to have the value of &apos;${codeChallenge.getValue()}&apos;, but &quot; +"
+        errorLine2="                                                              ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="220"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="228"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="228"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="                Uri.parse(&quot;$authProviderUrl?code_challenge=${codeChallenge.getValue()}&quot;)"
+        errorLine2="                                                                           ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="231"
+            column="76"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="241"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="252"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                            ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="252"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="265"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="265"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="278"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="289"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="            .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                            ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="289"
+            column="45"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="302"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="302"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `getValue`"
+        errorLine1="            codeChallenge.getValue()"
+        errorLine2="                          ~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="315"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="321"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="        val codeChallenge = CodeChallenge(CodeVerifier())"
+        errorLine2="                                          ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/OAuthRequestResponseTest.kt"
+            line="321"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="50"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                                ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="50"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `build`"
+        errorLine1="                .build()"
+        errorLine2="                 ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="51"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="55"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                                ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="55"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `build`"
+        errorLine1="                .build()"
+        errorLine2="                 ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="56"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeChallenge`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="87"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `CodeVerifier`"
+        errorLine1="                .setCodeChallenge(CodeChallenge(CodeVerifier()))"
+        errorLine2="                                                ~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="87"
+            column="49"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `build`"
+        errorLine1="                .build(),"
+        errorLine2="                 ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/phone/interactions/authentication/RemoteAuthTest.kt"
+            line="88"
+            column="18"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-remote-interactions/lint-baseline.xml b/wear/wear-remote-interactions/lint-baseline.xml
new file mode 100644
index 0000000..c7d664e
--- /dev/null
+++ b/wear/wear-remote-interactions/lint-baseline.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `SETTINGS_AUTHORITY_URI`"
+        errorLine1="            PlayStoreAvailability.SETTINGS_AUTHORITY_URI,"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="51"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `SYSTEM_FEATURE_WATCH`"
+        errorLine1="        shadowPackageManager?.setSystemFeature(PlayStoreAvailability.SYSTEM_FEATURE_WATCH, true)"
+        errorLine2="                                                                     ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="57"
+            column="70"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `PLAY_STORE_AVAILABLE`"
+        errorLine1="        createFakePlayStoreAvailabilityQuery(PlayStoreAvailability.PLAY_STORE_AVAILABLE)"
+        errorLine2="                                                                   ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="63"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `PLAY_STORE_AVAILABLE`"
+        errorLine1="            PlayStoreAvailability.PLAY_STORE_AVAILABLE"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="68"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `PLAY_STORE_UNAVAILABLE`"
+        errorLine1="        createFakePlayStoreAvailabilityQuery(PlayStoreAvailability.PLAY_STORE_UNAVAILABLE)"
+        errorLine2="                                                                   ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="75"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `PLAY_STORE_UNAVAILABLE`"
+        errorLine1="            PlayStoreAvailability.PLAY_STORE_UNAVAILABLE"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="80"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `PLAY_STORE_ERROR_UNKNOWN`"
+        errorLine1="            PlayStoreAvailability.PLAY_STORE_ERROR_UNKNOWN"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="91"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `KEY_PLAY_STORE_AVAILABILITY`"
+        errorLine1="                arrayOf&lt;Any>(PlayStoreAvailability.KEY_PLAY_STORE_AVAILABILITY, availability)"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/remote/interactions/PlayStoreAvailabilityTest.kt"
+            line="104"
+            column="52"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-watchface-client/lint-baseline.xml b/wear/wear-watchface-client/lint-baseline.xml
new file mode 100644
index 0000000..5bbd3e0
--- /dev/null
+++ b/wear/wear-watchface-client/lint-baseline.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.util.Base64#getDecoder`"
+        errorLine1="        val bytes = Base64.getDecoder().decode(String(resource.readBytes()))"
+        errorLine2="                           ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/SerializationTest.kt"
+            line="59"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `java.util.Base64.Decoder#decode`"
+        errorLine1="        val bytes = Base64.getDecoder().decode(String(resource.readBytes()))"
+        errorLine2="                                        ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/SerializationTest.kt"
+            line="59"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = headlessInstance.renderWatchFaceToBitmap("
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="216"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = headlessInstance.renderWatchFaceToBitmap("
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="245"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = headlessInstance.renderWatchFaceToBitmap("
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="278"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = interactiveInstance.renderWatchFaceToBitmap("
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="411"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = interactiveInstance.renderWatchFaceToBitmap("
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="453"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `renderWatchFaceToBitmap`"
+        errorLine1="        val bitmap = interactiveInstance.renderWatchFaceToBitmap("
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlClientTest.kt"
+            line="804"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `getApiVersion`"
+        errorLine1="                override fun getApiVersion(): Int = apiVersionOverride ?: super.getApiVersion()"
+        errorLine2="                                                                                ~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/client/test/WatchFaceControlTestService.kt"
+            line="44"
+            column="81"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-watchface-data/lint-baseline.xml b/wear/wear-watchface-data/lint-baseline.xml
deleted file mode 100644
index 70aa352..0000000
--- a/wear/wear-watchface-data/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-    <issue
-        id="BanTargetApiAnnotation"
-        message="Uses @TargetApi annotation"
-        errorLine1="@TargetApi(VERSION_CODES.KITKAT)"
-        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/android/support/wearable/watchface/accessibility/ContentDescriptionLabel.java"
-            line="46"
-            column="1"/>
-    </issue>
-
-</issues>
diff --git a/wear/wear-watchface-editor/lint-baseline.xml b/wear/wear-watchface-editor/lint-baseline.xml
new file mode 100644
index 0000000..b47a5fd
--- /dev/null
+++ b/wear/wear-watchface-editor/lint-baseline.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `EditorRequest`"
+        errorLine1="                EditorRequest(testComponentName, testEditorPackageName, null, watchFaceId)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="462"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `watchFaceId`"
+        errorLine1="        assertThat(result.watchFaceId.id).isEqualTo(testInstanceId.id)"
+        errorLine2="                          ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1164"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `watchFaceId`"
+        errorLine1="        assertThat(result.watchFaceId.id).isEmpty()"
+        errorLine2="                          ~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1219"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `EditorRequest`"
+        errorLine1="                EditorRequest(testComponentName, testEditorPackageName, null, testInstanceId)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1346"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `EditorRequest`"
+        errorLine1="                EditorRequest("
+        errorLine2="                ^">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1399"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `EditorRequest`"
+        errorLine1="                EditorRequest(testComponentName, testEditorPackageName, null, watchFaceId)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1545"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getType`"
+        errorLine1="            assertThat(actual.icon.type).isEqualTo(expected.icon.type)"
+        errorLine2="                                   ~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1624"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getType`"
+        errorLine1="            assertThat(actual.icon.type).isEqualTo(expected.icon.type)"
+        errorLine2="                                                                 ~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditingSessionTest.kt"
+            line="1624"
+            column="66"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `EditorRequest`"
+        errorLine1="                EditorRequest(testComponentName, testEditorPackageName, null, watchFaceId)"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/editor/EditorSessionGuavaTest.kt"
+            line="137"
+            column="17"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-watchface-style/lint-baseline.xml b/wear/wear-watchface-style/lint-baseline.xml
new file mode 100644
index 0000000..6ac7089
--- /dev/null
+++ b/wear/wear-watchface-style/lint-baseline.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(unparceled.icon!!.uri.toString()).isEqualTo(&quot;settingIcon&quot;)"
+        errorLine2="                                     ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="80"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray[0].icon!!.uri.toString()).isEqualTo(&quot;icon1&quot;)"
+        errorLine2="                                         ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="87"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray[1].icon!!.uri.toString()).isEqualTo(&quot;icon2&quot;)"
+        errorLine2="                                         ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="90"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray[2].icon!!.uri.toString()).isEqualTo(&quot;icon3&quot;)"
+        errorLine2="                                         ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="93"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(unmarshalled1.icon!!.uri.toString()).isEqualTo(&quot;icon1&quot;)"
+        errorLine2="                                        ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="108"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(unmarshalled2.icon!!.uri.toString()).isEqualTo(&quot;icon2&quot;)"
+        errorLine2="                                        ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="111"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(unmarshalled3.icon!!.uri.toString()).isEqualTo(&quot;icon3&quot;)"
+        errorLine2="                                        ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="114"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(schema.userStyleSettings[0].icon!!.uri.toString()).isEqualTo(&quot;settingIcon1&quot;)"
+        errorLine2="                                                      ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="172"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray1[0].icon!!.uri.toString()).isEqualTo(&quot;icon1&quot;)"
+        errorLine2="                                          ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="182"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray1[1].icon!!.uri.toString()).isEqualTo(&quot;icon2&quot;)"
+        errorLine2="                                          ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="185"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(schema.userStyleSettings[1].icon!!.uri.toString()).isEqualTo(&quot;settingIcon2&quot;)"
+        errorLine2="                                                      ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="191"
+            column="55"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray2[0].icon!!.uri.toString()).isEqualTo(&quot;icon3&quot;)"
+        errorLine2="                                          ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="201"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 25): `android.graphics.drawable.Icon#getUri`"
+        errorLine1="        assertThat(optionArray2[1].icon!!.uri.toString()).isEqualTo(&quot;icon4&quot;)"
+        errorLine2="                                          ~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/style/StyleParcelableTest.kt"
+            line="204"
+            column="43"/>
+    </issue>
+
+</issues>
diff --git a/wear/wear-watchface/lint-baseline.xml b/wear/wear-watchface/lint-baseline.xml
index c975b15..440a9f8 100644
--- a/wear/wear-watchface/lint-baseline.xml
+++ b/wear/wear-watchface/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="MissingClass"
@@ -57,14 +57,476 @@
     </issue>
 
     <issue
-        id="ClassVerificationFailure"
-        message="This call references a method added in API level 26; however, the containing class androidx.wear.watchface.Renderer.CanvasRenderer is reachable from earlier API levels and will fail run-time class verification."
-        errorLine1="                    surfaceHolder.lockHardwareCanvas() // Requires API level 26."
-        errorLine2="                                  ~~~~~~~~~~~~~~~~~~">
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `createInteractiveInstance$lint_module`"
+        errorLine1="                engineWrapper.createInteractiveInstance(initParams, &quot;test&quot;)"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/wear/watchface/Renderer.kt"
-            line="325"
-            column="35"/>
+            file="src/test/java/androidx/wear/watchface/AsyncWatchFaceInitTest.kt"
+            line="220"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance`"
+        errorLine1="                .getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance("
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/AsyncWatchFaceInitTest.kt"
+            line="242"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `WatchFaceControlService`"
+        errorLine1="            WatchFaceControlService().apply {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="111"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `setContext`"
+        errorLine1="                setContext(ApplicationProvider.getApplicationContext&lt;Context>())"
+        errorLine2="                ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="112"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `onBind`"
+        errorLine1="            }.onBind("
+        errorLine2="              ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="113"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ACTION_WATCHFACE_CONTROL_SERVICE`"
+        errorLine1="                Intent(WatchFaceControlService.ACTION_WATCHFACE_CONTROL_SERVICE)"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="114"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `WatchFaceControlService`"
+        errorLine1="            WatchFaceControlService().apply {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="137"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `setContext`"
+        errorLine1="                setContext(ApplicationProvider.getApplicationContext&lt;Context>())"
+        errorLine2="                ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="138"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `onBind`"
+        errorLine1="            }.onBind("
+        errorLine2="              ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="139"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ACTION_WATCHFACE_CONTROL_SERVICE`"
+        errorLine1="                Intent(WatchFaceControlService.ACTION_WATCHFACE_CONTROL_SERVICE)"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="140"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="        val bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="164"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="        val bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="208"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="        val bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="242"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `WatchFaceControlService`"
+        errorLine1="            WatchFaceControlService().apply {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="275"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `setContext`"
+        errorLine1="                setContext(ApplicationProvider.getApplicationContext&lt;Context>())"
+        errorLine2="                ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="276"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `onBind`"
+        errorLine1="            }.onBind("
+        errorLine2="              ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="277"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ACTION_WATCHFACE_CONTROL_SERVICE`"
+        errorLine1="                Intent(WatchFaceControlService.ACTION_WATCHFACE_CONTROL_SERVICE)"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceControlServiceTest.kt"
+            line="278"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `android.graphics.SurfaceTexture()`"
+        errorLine1="    private val surfaceTexture = SurfaceTexture(false)"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="291"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `android.view.SurfaceHolder#lockHardwareCanvas`"
+        errorLine1="        Mockito.`when`(surfaceHolder.lockHardwareCanvas()).thenReturn(canvas)"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="329"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `android.view.SurfaceHolder#lockHardwareCanvas`"
+        errorLine1="        Mockito.`when`(surfaceHolder.lockHardwareCanvas()).thenReturn(canvas)"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="367"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance`"
+        errorLine1="            .getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance("
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="412"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `setWatchUiState`"
+        errorLine1="        interactiveWatchFaceInstance.setWatchUiState("
+        errorLine2="                                     ~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="462"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `release`"
+        errorLine1="        interactiveWatchFaceInstance.release()"
+        errorLine2="                                     ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="468"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="            bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="545"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="            bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="579"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="            bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="632"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="            bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="670"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `ashmemReadImageBundle`"
+        errorLine1="            bitmap = SharedMemoryImage.ashmemReadImageBundle("
+        errorLine2="                                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="732"
+            column="40"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 26 (current min is 25): `android.view.SurfaceHolder#lockHardwareCanvas`"
+        errorLine1="        Mockito.`when`(surfaceHolder.lockHardwareCanvas()).thenReturn(canvas)"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="760"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `sendTouchEvent`"
+        errorLine1="        interactiveWatchFaceInstance.sendTouchEvent("
+        errorLine2="                                     ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="828"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `release`"
+        errorLine1="        interactiveWatchFaceInstance.release()"
+        errorLine2="                                     ~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/wear/watchface/test/WatchFaceServiceImageTest.kt"
+            line="835"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance`"
+        errorLine1="            .getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance("
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="430"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance`"
+        errorLine1="            .getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance("
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2654"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 27 (current min is 25): `updateComplicationData`"
+        errorLine1="        interactiveInstance!!.updateComplicationData("
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2720"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.view.WindowInsets.Builder#setSystemWindowInsets`"
+        errorLine1="        WindowInsets.Builder().setSystemWindowInsets("
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2754"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.view.WindowInsets.Builder()`"
+        errorLine1="        WindowInsets.Builder().setSystemWindowInsets("
+        errorLine2="                     ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2754"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.graphics.Insets#of`"
+        errorLine1="            Insets.of(0, 0, 0, chinHeight)"
+        errorLine2="                   ~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2755"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.view.WindowInsets.Builder#build`"
+        errorLine1="        ).build()"
+        errorLine2="          ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2756"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.view.WindowInsets.Builder()`"
+        errorLine1="        WindowInsets.Builder().setInsets("
+        errorLine2="                     ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2759"
+            column="22"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `android.view.WindowInsets.Builder#setInsets`"
+        errorLine1="        WindowInsets.Builder().setInsets("
+        errorLine2="                               ~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2759"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 25): `android.view.WindowInsets.Type#systemBars`"
+        errorLine1="            WindowInsets.Type.systemBars(),"
+        errorLine2="                              ~~~~~~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2760"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.graphics.Insets#of`"
+        errorLine1="            Insets.of(Rect().apply { bottom = chinHeight })"
+        errorLine2="                   ~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2761"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 29 (current min is 25): `android.view.WindowInsets.Builder#build`"
+        errorLine1="        ).build()"
+        errorLine2="          ~~~~~">
+        <location
+            file="src/test/java/androidx/wear/watchface/WatchFaceServiceTest.kt"
+            line="2762"
+            column="11"/>
     </issue>
 
     <issue
@@ -74,7 +536,7 @@
         errorLine2="                                           ~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/wear/watchface/WatchFace.kt"
-            line="573"
+            line="528"
             column="44"/>
     </issue>
 
diff --git a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
index 36fe23a..c158db5 100644
--- a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
+++ b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
@@ -288,8 +288,8 @@
      * UiThread afterwards. There is a memory barrier between construction and rendering so no
      * special threading primitives are required.
      *
-     * Warning watch face initialization will fail if createWatchFace takes longer than
-     * [MAX_CREATE_WATCHFACE_TIME_MILLIS] milliseconds.
+     * Warning the system will likely time out waiting for watch face initialization if it takes
+     * longer than [MAX_CREATE_WATCHFACE_TIME_MILLIS] milliseconds.
      *
      * @param surfaceHolder The [SurfaceHolder] to pass to the [Renderer]'s constructor.
      * @param watchState The [WatchState] for the watch face.
@@ -1368,10 +1368,13 @@
 
                     val timeAfter = System.currentTimeMillis()
                     val timeTaken = timeAfter - timeBefore
-                    require(timeTaken < MAX_CREATE_WATCHFACE_TIME_MILLIS) {
-                        "createUserStyleSchema, createComplicationSlotsManager and " +
-                            "createWatchFace should complete in less than " +
-                            MAX_CREATE_WATCHFACE_TIME_MILLIS + " milliseconds."
+                    if (timeTaken > MAX_CREATE_WATCHFACE_TIME_MILLIS) {
+                        Log.e(
+                            TAG,
+                            "createUserStyleSchema, createComplicationSlotsManager and " +
+                                "createWatchFace should complete in less than " +
+                                MAX_CREATE_WATCHFACE_TIME_MILLIS + " milliseconds."
+                        )
                     }
 
                     // Perform more initialization on the background thread.
diff --git a/wear/wear/lint-baseline.xml b/wear/wear/lint-baseline.xml
index e144009..8d62f0c 100644
--- a/wear/wear/lint-baseline.xml
+++ b/wear/wear/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="KotlinPropertyAccess"
diff --git a/webkit/integration-tests/testapp/lint-baseline.xml b/webkit/integration-tests/testapp/lint-baseline.xml
index 765a6f1..5531cad 100644
--- a/webkit/integration-tests/testapp/lint-baseline.xml
+++ b/webkit/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanSynchronizedMethods"
diff --git a/webkit/webkit/lint-baseline.xml b/webkit/webkit/lint-baseline.xml
deleted file mode 100644
index 42a176b..0000000
--- a/webkit/webkit/lint-baseline.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
-
-</issues>
diff --git a/window/window-extensions/lint-baseline.xml b/window/window-extensions/lint-baseline.xml
new file mode 100644
index 0000000..1c39784
--- /dev/null
+++ b/window/window-extensions/lint-baseline.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 17 (current min is 14): `android.view.View#generateViewId`"
+        errorLine1="        mRootViewId = View.generateViewId();"
+        errorLine2="                           ~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/extensions/TestActivity.java"
+            line="37"
+            column="28"/>
+    </issue>
+
+</issues>
diff --git a/window/window/lint-baseline.xml b/window/window/lint-baseline.xml
new file mode 100644
index 0000000..dee0155
--- /dev/null
+++ b/window/window/lint-baseline.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `java.util.Collection#removeIf`"
+        errorLine1="            consumers.removeIf { it.callback == callback }"
+        errorLine2="                      ~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/WindowInfoRepoImpTest.kt"
+            line="115"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.view.WindowManager#getCurrentWindowMetrics`"
+        errorLine1="            val windowMetricsBounds = activity.windowManager.currentWindowMetrics.bounds"
+        errorLine2="                                                             ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/WindowMetricsCalculatorCompatTest.kt"
+            line="112"
+            column="62"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.view.WindowMetrics#getBounds`"
+        errorLine1="            val windowMetricsBounds = activity.windowManager.currentWindowMetrics.bounds"
+        errorLine2="                                                                                  ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/WindowMetricsCalculatorCompatTest.kt"
+            line="112"
+            column="83"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.view.WindowManager#getMaximumWindowMetrics`"
+        errorLine1="            val windowMetricsBounds = activity.windowManager.maximumWindowMetrics.bounds"
+        errorLine2="                                                             ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/WindowMetricsCalculatorCompatTest.kt"
+            line="186"
+            column="62"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 30 (current min is 14): `android.view.WindowMetrics#getBounds`"
+        errorLine1="            val windowMetricsBounds = activity.windowManager.maximumWindowMetrics.bounds"
+        errorLine2="                                                                                  ~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/window/WindowMetricsCalculatorCompatTest.kt"
+            line="186"
+            column="83"/>
+    </issue>
+
+    <issue
+        id="SyntheticAccessor"
+        message="Access to `private` method `toggleState` of class `Companion` requires synthetic accessor"
+        errorLine1="        lock.withLock { state = toggleState(state) }"
+        errorLine2="                                ~~~~~~~~~~~">
+        <location
+            file="src/testUtil/java/androidx/window/SwitchOnUnregisterExtensionInterfaceCompat.kt"
+            line="52"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="SyntheticAccessor"
+        message="Access to `private` method `toggleState` of class `Companion` requires synthetic accessor"
+        errorLine1="        lock.withLock { state = toggleState(state) }"
+        errorLine2="                                ~~~~~~~~~~~">
+        <location
+            file="src/testUtil/java/androidx/window/SwitchOnUnregisterExtensionInterfaceCompat.kt"
+            line="52"
+            column="33"/>
+    </issue>
+
+</issues>
diff --git a/work/integration-tests/testapp/lint-baseline.xml b/work/integration-tests/testapp/lint-baseline.xml
index 51f735c..a178385 100644
--- a/work/integration-tests/testapp/lint-baseline.xml
+++ b/work/integration-tests/testapp/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="ClassVerificationFailure"
diff --git a/work/workmanager-gcm/lint-baseline.xml b/work/workmanager-gcm/lint-baseline.xml
index 76b8bd0..941d71e 100644
--- a/work/workmanager-gcm/lint-baseline.xml
+++ b/work/workmanager-gcm/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
 
     <issue
         id="BanKeepAnnotation"
diff --git a/work/workmanager-inspection/lint-baseline.xml b/work/workmanager-inspection/lint-baseline.xml
new file mode 100644
index 0000000..ca920a7
--- /dev/null
+++ b/work/workmanager-inspection/lint-baseline.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="RemoveWorkManagerInitializer"
+        message="Remove androidx.work.WorkManagerInitializer from your AndroidManifest.xml when using on-demand initialization.">
+        <location
+            file="workmanager-inspection"/>
+    </issue>
+
+</issues>
diff --git a/work/workmanager-testing/lint-baseline.xml b/work/workmanager-testing/lint-baseline.xml
index 337ebad..b84652dd 100644
--- a/work/workmanager-testing/lint-baseline.xml
+++ b/work/workmanager-testing/lint-baseline.xml
@@ -1,5 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `setTriggeredContentAuthorities`"
+        errorLine1="            .setTriggeredContentAuthorities(authorities.toList())"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/testing/TestWorkerBuilderTest.kt"
+            line="102"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `setTriggeredContentUris`"
+        errorLine1="            .setTriggeredContentUris(contentUris.toList())"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/testing/TestWorkerBuilderTest.kt"
+            line="103"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getTriggeredContentAuthorities`"
+        errorLine1="        assertThat(worker.triggeredContentAuthorities, containsInAnyOrder(*authorities))"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/testing/TestWorkerBuilderTest.kt"
+            line="109"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getTriggeredContentUris`"
+        errorLine1="        assertThat(worker.triggeredContentUris, containsInAnyOrder(*contentUris))"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/testing/TestWorkerBuilderTest.kt"
+            line="110"
+            column="27"/>
+    </issue>
 
     <issue
         id="KotlinPropertyAccess"
diff --git a/work/workmanager/lint-baseline.xml b/work/workmanager/lint-baseline.xml
index 416895c..a4fedbb 100644
--- a/work/workmanager/lint-baseline.xml
+++ b/work/workmanager/lint-baseline.xml
@@ -1,5 +1,115 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.0.0-alpha15" type="baseline" client="cli" name="Lint" variant="all" version="7.0.0-alpha15">
+<issues format="6" by="lint 7.1.0-alpha02" type="baseline" client="cli" name="Lint" variant="all" version="7.1.0-alpha02">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 18 (current min is 14): `android.os.HandlerThread#quitSafely`"
+        errorLine1="        mHandlerThread.quitSafely();"
+        errorLine2="                       ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java"
+            line="157"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `getTriggeredContentAuthorities`"
+        errorLine1="                sTriggeredContentAuthorities = getTriggeredContentAuthorities();"
+        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java"
+            line="304"
+            column="48"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `getTriggeredContentUris`"
+        errorLine1="                sTriggeredContentUris = getTriggeredContentUris();"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java"
+            line="305"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 28 (current min is 23): `getNetwork`"
+        errorLine1="                sNetwork = getNetwork();"
+        errorLine2="                           ~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java"
+            line="325"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `addContentUriTrigger`"
+        errorLine1="                                .addContentUriTrigger(testUri1, true)"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java"
+            line="367"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `addContentUriTrigger`"
+        errorLine1="                                .addContentUriTrigger(testUri2, false)"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java"
+            line="368"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `getContentUriTriggers`"
+        errorLine1="            assertThat(constraints.getContentUriTriggers(), is(new ContentUriTriggers()));"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java"
+            line="391"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 23): `getContentUriTriggers`"
+        errorLine1="        assertThat(constraints.getContentUriTriggers().size(), is(0));"
+        errorLine2="                               ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java"
+            line="401"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getTriggeredContentAuthorities`"
+        errorLine1="        assertThat(worker.getTriggeredContentAuthorities(),"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java"
+            line="919"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 24 (current min is 14): `getTriggeredContentUris`"
+        errorLine1="        assertThat(worker.getTriggeredContentUris(),"
+        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java"
+            line="921"
+            column="27"/>
+    </issue>
 
     <issue
         id="BanSynchronizedMethods"
@@ -239,7 +349,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="105"
+            line="104"
             column="25"/>
     </issue>
 
@@ -250,7 +360,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="112"
+            line="111"
             column="25"/>
     </issue>
 
@@ -261,7 +371,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="114"
+            line="113"
             column="21"/>
     </issue>
 
@@ -272,7 +382,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="115"
+            line="114"
             column="21"/>
     </issue>
 
@@ -283,7 +393,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="122"
+            line="121"
             column="21"/>
     </issue>
 
@@ -294,7 +404,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="123"
+            line="122"
             column="21"/>
     </issue>
 
@@ -305,7 +415,7 @@
         errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="133"
+            line="132"
             column="16"/>
     </issue>
 
@@ -316,7 +426,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/background/systemjob/SystemJobInfoConverter.java"
-            line="152"
+            line="150"
             column="21"/>
     </issue>
 
@@ -393,7 +503,7 @@
         errorLine2="                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/WorkManagerImpl.java"
-            line="759"
+            line="761"
             column="71"/>
     </issue>
 
@@ -1774,7 +1884,7 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="    public void postToMainThread(Runnable r) {"
+        errorLine1="    public void postToMainThread(Runnable runnable) {"
         errorLine2="                                 ~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor.java"
@@ -1796,7 +1906,7 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="    public void executeOnBackgroundThread(Runnable r) {"
+        errorLine1="    public void executeOnBackgroundThread(Runnable runnable) {"
         errorLine2="                                          ~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/utils/taskexecutor/WorkManagerTaskExecutor.java"
@@ -2031,7 +2141,7 @@
         errorLine2="                                       ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="199"
+            line="198"
             column="40"/>
     </issue>
 
@@ -2042,7 +2152,7 @@
         errorLine2="                  ~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="234"
+            line="233"
             column="19"/>
     </issue>
 
@@ -2053,7 +2163,7 @@
         errorLine2="                  ~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="267"
+            line="266"
             column="19"/>
     </issue>
 
@@ -2064,7 +2174,7 @@
         errorLine2="                                                       ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="267"
+            line="266"
             column="56"/>
     </issue>
 
@@ -2075,7 +2185,7 @@
         errorLine2="                  ~~~~~~~~~~~~~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="306"
+            line="305"
             column="19"/>
     </issue>
 
@@ -2086,7 +2196,7 @@
         errorLine2="                                                                   ~~~~~~">
         <location
             file="src/main/java/androidx/work/impl/model/WorkTypeConverters.java"
-            line="306"
+            line="305"
             column="68"/>
     </issue>