Merge "Update annotations for Tiramisu DP2" into androidx-main
diff --git a/appcompat/appcompat/api/restricted_current.txt b/appcompat/appcompat/api/restricted_current.txt
index 82bdaaa..e400cdc 100644
--- a/appcompat/appcompat/api/restricted_current.txt
+++ b/appcompat/appcompat/api/restricted_current.txt
@@ -701,12 +701,12 @@
     method public boolean requiresActionButton();
     method public boolean requiresOverflow();
     method public android.view.MenuItem! setActionProvider(android.view.ActionProvider!);
-    method public androidx.core.internal.view.SupportMenuItem! setActionView(android.view.View!);
-    method public androidx.core.internal.view.SupportMenuItem! setActionView(int);
+    method public androidx.core.internal.view.SupportMenuItem setActionView(android.view.View!);
+    method public androidx.core.internal.view.SupportMenuItem setActionView(int);
     method public android.view.MenuItem! setAlphabeticShortcut(char);
     method public android.view.MenuItem! setCheckable(boolean);
     method public android.view.MenuItem! setChecked(boolean);
-    method public androidx.core.internal.view.SupportMenuItem! setContentDescription(CharSequence!);
+    method public androidx.core.internal.view.SupportMenuItem setContentDescription(CharSequence!);
     method public android.view.MenuItem! setEnabled(boolean);
     method public androidx.appcompat.view.menu.ActionMenuItem! setExclusiveCheckable(boolean);
     method public android.view.MenuItem! setIcon(android.graphics.drawable.Drawable!);
@@ -717,12 +717,12 @@
     method public android.view.MenuItem! setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener!);
     method public android.view.MenuItem! setShortcut(char, char);
     method public void setShowAsAction(int);
-    method public androidx.core.internal.view.SupportMenuItem! setShowAsActionFlags(int);
-    method public androidx.core.internal.view.SupportMenuItem! setSupportActionProvider(androidx.core.view.ActionProvider!);
+    method public androidx.core.internal.view.SupportMenuItem setShowAsActionFlags(int);
+    method public androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider!);
     method public android.view.MenuItem! setTitle(CharSequence!);
     method public android.view.MenuItem! setTitle(int);
     method public android.view.MenuItem! setTitleCondensed(CharSequence!);
-    method public androidx.core.internal.view.SupportMenuItem! setTooltipText(CharSequence!);
+    method public androidx.core.internal.view.SupportMenuItem setTooltipText(CharSequence!);
     method public android.view.MenuItem! setVisible(boolean);
   }
 
@@ -960,14 +960,14 @@
     method public boolean requiresActionButton();
     method public boolean requiresOverflow();
     method public android.view.MenuItem! setActionProvider(android.view.ActionProvider!);
-    method public androidx.core.internal.view.SupportMenuItem! setActionView(android.view.View!);
-    method public androidx.core.internal.view.SupportMenuItem! setActionView(int);
+    method public androidx.core.internal.view.SupportMenuItem setActionView(android.view.View!);
+    method public androidx.core.internal.view.SupportMenuItem setActionView(int);
     method public void setActionViewExpanded(boolean);
     method public android.view.MenuItem! setAlphabeticShortcut(char);
     method public android.view.MenuItem! setCallback(Runnable!);
     method public android.view.MenuItem! setCheckable(boolean);
     method public android.view.MenuItem! setChecked(boolean);
-    method public androidx.core.internal.view.SupportMenuItem! setContentDescription(CharSequence!);
+    method public androidx.core.internal.view.SupportMenuItem setContentDescription(CharSequence!);
     method public android.view.MenuItem! setEnabled(boolean);
     method public void setExclusiveCheckable(boolean);
     method public android.view.MenuItem! setIcon(android.graphics.drawable.Drawable!);
@@ -979,13 +979,13 @@
     method public android.view.MenuItem! setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener!);
     method public android.view.MenuItem! setShortcut(char, char);
     method public void setShowAsAction(int);
-    method public androidx.core.internal.view.SupportMenuItem! setShowAsActionFlags(int);
+    method public androidx.core.internal.view.SupportMenuItem setShowAsActionFlags(int);
     method public void setSubMenu(androidx.appcompat.view.menu.SubMenuBuilder!);
-    method public androidx.core.internal.view.SupportMenuItem! setSupportActionProvider(androidx.core.view.ActionProvider!);
+    method public androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider!);
     method public android.view.MenuItem! setTitle(CharSequence!);
     method public android.view.MenuItem! setTitle(int);
     method public android.view.MenuItem! setTitleCondensed(CharSequence!);
-    method public androidx.core.internal.view.SupportMenuItem! setTooltipText(CharSequence!);
+    method public androidx.core.internal.view.SupportMenuItem setTooltipText(CharSequence!);
     method public android.view.MenuItem! setVisible(boolean);
     method public boolean shouldShowIcon();
     method public boolean showsTextAsAction();
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/ActionMenuItem.java b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/ActionMenuItem.java
index b73de65..626465f 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/ActionMenuItem.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/ActionMenuItem.java
@@ -29,6 +29,7 @@
 import android.view.SubMenu;
 import android.view.View;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
 import androidx.core.content.ContextCompat;
@@ -180,6 +181,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) {
         mShortcutAlphabeticChar = Character.toLowerCase(alphaChar);
@@ -238,6 +240,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setNumericShortcut(char numericChar, int numericModifiers) {
         mShortcutNumericChar = numericChar;
@@ -258,6 +261,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers,
             int alphaModifiers) {
@@ -320,6 +324,7 @@
         return false;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setActionView(View actionView) {
         throw new UnsupportedOperationException();
@@ -340,6 +345,7 @@
         throw new UnsupportedOperationException();
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setActionView(int resId) {
         throw new UnsupportedOperationException();
@@ -350,11 +356,13 @@
         return null;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setSupportActionProvider(ActionProvider actionProvider) {
         throw new UnsupportedOperationException();
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setShowAsActionFlags(int actionEnum) {
         setShowAsAction(actionEnum);
@@ -381,6 +389,7 @@
         throw new UnsupportedOperationException();
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setContentDescription(CharSequence contentDescription) {
         mContentDescription = contentDescription;
@@ -392,6 +401,7 @@
         return mContentDescription;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setTooltipText(CharSequence tooltipText) {
         mTooltipText = tooltipText;
@@ -403,6 +413,7 @@
         return mTooltipText;
     }
 
+    @NonNull
     @Override
     public MenuItem setIconTintList(@Nullable ColorStateList iconTintList) {
         mIconTintList = iconTintList;
@@ -418,6 +429,7 @@
         return mIconTintList;
     }
 
+    @NonNull
     @Override
     public MenuItem setIconTintMode(PorterDuff.Mode iconTintMode) {
         mIconTintMode = iconTintMode;
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java
index 5d3ffb6..4b1a96e 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java
@@ -37,6 +37,7 @@
 import android.view.ViewDebug;
 import android.widget.LinearLayout;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
 import androidx.appcompat.R;
@@ -256,6 +257,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers) {
         if (mShortcutAlphabeticChar == alphaChar
@@ -298,6 +300,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setNumericShortcut(char numericChar, int numericModifiers) {
         if (mShortcutNumericChar == numericChar && mShortcutNumericModifiers == numericModifiers) {
@@ -322,6 +325,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers,
             int alphaModifiers) {
@@ -534,6 +538,7 @@
     }
 
 
+    @NonNull
     @Override
     public MenuItem setIconTintList(@Nullable ColorStateList iconTintList) {
         mIconTintList = iconTintList;
@@ -550,6 +555,7 @@
         return mIconTintList;
     }
 
+    @NonNull
     @Override
     public MenuItem setIconTintMode(PorterDuff.Mode iconTintMode) {
         mIconTintMode = iconTintMode;
@@ -746,6 +752,7 @@
         mMenu.onItemActionRequestChanged(this);
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setActionView(View view) {
         mActionView = view;
@@ -757,6 +764,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setActionView(int resId) {
         final Context context = mMenu.getContext();
@@ -794,6 +802,7 @@
         return mActionProvider;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setSupportActionProvider(ActionProvider actionProvider) {
         if (mActionProvider != null) {
@@ -813,6 +822,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setShowAsActionFlags(int actionEnum) {
         setShowAsAction(actionEnum);
@@ -877,6 +887,7 @@
         return this;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setContentDescription(CharSequence contentDescription) {
         mContentDescription = contentDescription;
@@ -891,6 +902,7 @@
         return mContentDescription;
     }
 
+    @NonNull
     @Override
     public SupportMenuItem setTooltipText(CharSequence tooltipText) {
         mTooltipText = tooltipText;
diff --git a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageCaptureActivity.kt b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageCaptureActivity.kt
index 26e242e..33c44a1 100644
--- a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageCaptureActivity.kt
+++ b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageCaptureActivity.kt
@@ -387,7 +387,7 @@
 
         val tapGestureDetector = GestureDetector(this, onTapGestureListener)
         val scaleDetector = ScaleGestureDetector(this, scaleGestureListener)
-        viewFinder.setOnTouchListener { _, e: MotionEvent? ->
+        viewFinder.setOnTouchListener { _, e: MotionEvent ->
             val tapEventProcessed = tapGestureDetector.onTouchEvent(e)
             val scaleEventProcessed = scaleDetector.onTouchEvent(e)
             tapEventProcessed || scaleEventProcessed
diff --git a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt
index 5317c9e..5e01f7a 100644
--- a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt
+++ b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/ImageValidationActivity.kt
@@ -301,7 +301,7 @@
         var previousX = 0.0f
         var previousY = 0.0f
 
-        photoImageView.setOnTouchListener { _, e: MotionEvent? ->
+        photoImageView.setOnTouchListener { _, e: MotionEvent ->
             if (photoImageView.visibility != View.VISIBLE) {
                 return@setOnTouchListener false
             }
@@ -309,7 +309,7 @@
             val doubleTapProcessed = doubleTapDetector.onTouchEvent(e)
             val scaleGestureProcessed = scaleDetector.onTouchEvent(e)
 
-            when (e?.actionMasked) {
+            when (e.actionMasked) {
                 MotionEvent.ACTION_DOWN -> {
                     previousX = e.x
                     previousY = e.y
diff --git a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/PhotoFragment.kt b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/PhotoFragment.kt
index 6c3a5c7..c342ec1 100644
--- a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/PhotoFragment.kt
+++ b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/validation/PhotoFragment.kt
@@ -75,7 +75,7 @@
     private fun setPhotoViewerScaleGestureListener() {
         scaleGestureListener?.let {
             val scaleDetector = ScaleGestureDetector(requireContext(), scaleGestureListener)
-            photoViewer.setOnTouchListener { _, e: MotionEvent? ->
+            photoViewer.setOnTouchListener { _, e: MotionEvent ->
                 scaleDetector.onTouchEvent(e)
             }
         }
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidAccessibilityTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidAccessibilityTest.kt
index 57e011f..e579967 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidAccessibilityTest.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidAccessibilityTest.kt
@@ -218,7 +218,7 @@
 
         val toggleableNode = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)!!
         assertEquals("android.view.View", accessibilityNodeInfo.className)
         assertTrue(accessibilityNodeInfo.isClickable)
         assertTrue(accessibilityNodeInfo.isVisibleToUser)
@@ -251,11 +251,11 @@
 
         val toggleableNode = rule.onNodeWithTag(tag, true)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)!!
 
         // We temporary send Switch role as a separate fake node
         val switchRoleNode = toggleableNode.replacedChildren.last()
-        val switchRoleNodeInfo = provider.createAccessibilityNodeInfo(switchRoleNode.id)
+        val switchRoleNodeInfo = provider.createAccessibilityNodeInfo(switchRoleNode.id)!!
         assertEquals("android.widget.Switch", switchRoleNodeInfo.className)
 
         val stateDescription = when {
@@ -292,7 +292,7 @@
 
         val toggleableNode = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)!!
         assertEquals("android.view.View", accessibilityNodeInfo.className)
         val stateDescription = when {
             Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
@@ -329,7 +329,7 @@
 
         val toggleableNode = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)!!
         assertEquals("android.view.View", accessibilityNodeInfo.className)
         val stateDescription = when {
             Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
@@ -366,7 +366,7 @@
 
         val node = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
         assertEquals("android.widget.ProgressBar", accessibilityNodeInfo.className)
         val stateDescription = when {
             Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
@@ -406,7 +406,7 @@
 
         val toggleableNode = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(toggleableNode.id)!!
         assertEquals("android.widget.ProgressBar", accessibilityNodeInfo.className)
         val stateDescription = when {
             Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
@@ -439,7 +439,7 @@
 
         val textFieldNode = rule.onNodeWithTag(tag)
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(textFieldNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(textFieldNode.id)!!
 
         assertEquals("android.widget.EditText", accessibilityNodeInfo.className)
         assertEquals("hello", accessibilityNodeInfo.text.toString())
@@ -502,7 +502,7 @@
         val focusableNode = rule.onNodeWithTag(tag)
             .assert(SemanticsMatcher.expectValue(SemanticsProperties.Focused, false))
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(focusableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(focusableNode.id)!!
         assertTrue(
             accessibilityNodeInfo.actionList.contains(
                 AccessibilityNodeInfo.AccessibilityAction(ACTION_FOCUS, null)
@@ -530,7 +530,7 @@
         val focusableNode = rule.onNodeWithTag(tag)
             .assert(SemanticsMatcher.expectValue(SemanticsProperties.Focused, true))
             .fetchSemanticsNode("couldn't find node with tag $tag")
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(focusableNode.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(focusableNode.id)!!
         assertFalse(
             accessibilityNodeInfo.actionList.contains(
                 AccessibilityNodeInfo.AccessibilityAction(ACTION_FOCUS, null)
@@ -1814,7 +1814,7 @@
 
         val colSemanticsNode = rule.onNodeWithTag(colTag)
             .fetchSemanticsNode("can't find node with tag $colTag")
-        val colAccessibilityNode = provider.createAccessibilityNodeInfo(colSemanticsNode.id)
+        val colAccessibilityNode = provider.createAccessibilityNodeInfo(colSemanticsNode.id)!!
         assertEquals(2, colAccessibilityNode.childCount)
         assertEquals(2, colSemanticsNode.replacedChildren.size)
         val buttonHolder = androidComposeView.androidViewsHandler
@@ -1953,10 +1953,10 @@
             .fetchSemanticsNode("couldn't find node with tag $childOneTag")
         val overlappedChildTwoNode = rule.onNodeWithTag(childTwoTag)
             .fetchSemanticsNode("couldn't find node with tag $childTwoTag")
-        assertEquals(1, provider.createAccessibilityNodeInfo(parentNode.id).childCount)
+        assertEquals(1, provider.createAccessibilityNodeInfo(parentNode.id)!!.childCount)
         assertEquals(
             "Child One",
-            provider.createAccessibilityNodeInfo(overlappedChildOneNode.id).text.toString()
+            provider.createAccessibilityNodeInfo(overlappedChildOneNode.id)!!.text.toString()
         )
         assertNull(provider.createAccessibilityNodeInfo(overlappedChildTwoNode.id))
     }
@@ -1986,12 +1986,12 @@
 
         val parentNode = rule.onNodeWithTag(parentTag)
             .fetchSemanticsNode("couldn't find node with tag $parentTag")
-        assertEquals(2, provider.createAccessibilityNodeInfo(parentNode.id).childCount)
+        assertEquals(2, provider.createAccessibilityNodeInfo(parentNode.id)!!.childCount)
 
         val childTwoNode = rule.onNodeWithText("Child Two")
             .fetchSemanticsNode("couldn't find node with text Child Two")
         val childTwoBounds = Rect()
-        provider.createAccessibilityNodeInfo(childTwoNode.id)
+        provider.createAccessibilityNodeInfo(childTwoNode.id)!!
             .getBoundsInScreen(childTwoBounds)
         assertEquals(100, childTwoBounds.height())
         assertEquals(100, childTwoBounds.width())
@@ -2176,7 +2176,7 @@
         val node = rule.onNodeWithTag("node").fetchSemanticsNode()
         @Suppress("DEPRECATION") var info: AccessibilityNodeInfo = AccessibilityNodeInfo.obtain()
         rule.runOnUiThread {
-            info = provider.createAccessibilityNodeInfo(node.id)
+            info = provider.createAccessibilityNodeInfo(node.id)!!
         }
         val rect = Rect()
         info.getBoundsInScreen(rect)
@@ -2186,7 +2186,7 @@
         scale = 0.5f
         @Suppress("DEPRECATION") info.recycle()
         rule.runOnIdle {
-            info = provider.createAccessibilityNodeInfo(node.id)
+            info = provider.createAccessibilityNodeInfo(node.id)!!
         }
         info.getBoundsInScreen(rect)
         assertEquals(150, rect.width())
@@ -2214,7 +2214,7 @@
         val node = rule.onNodeWithTag("node").fetchSemanticsNode()
         @Suppress("DEPRECATION") var info: AccessibilityNodeInfo = AccessibilityNodeInfo.obtain()
         rule.runOnUiThread {
-            info = provider.createAccessibilityNodeInfo(node.id)
+            info = provider.createAccessibilityNodeInfo(node.id)!!
         }
         val rect = Rect()
         info.getBoundsInScreen(rect)
@@ -2224,7 +2224,7 @@
         scale = 0.5f
         @Suppress("DEPRECATION") info.recycle()
         rule.runOnIdle {
-            info = provider.createAccessibilityNodeInfo(node.id)
+            info = provider.createAccessibilityNodeInfo(node.id)!!
         }
         info.getBoundsInScreen(rect)
         assertEquals(150, rect.width())
@@ -2256,7 +2256,7 @@
         val textNode = rule.onNodeWithText("text").fetchSemanticsNode()
         @Suppress("DEPRECATION") var info: AccessibilityNodeInfo = AccessibilityNodeInfo.obtain()
         rule.runOnUiThread {
-            info = provider.createAccessibilityNodeInfo(textNode.id)
+            info = provider.createAccessibilityNodeInfo(textNode.id)!!
         }
 
         val viewPosition = intArrayOf(0, 0)
@@ -2292,7 +2292,7 @@
         }
 
         val node = rule.onNodeWithTag(tag).fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals("Column", info.contentDescription)
     }
@@ -2310,7 +2310,7 @@
         }
 
         val node = rule.onNodeWithTag(tag).fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals(null, info.contentDescription)
     }
@@ -2331,7 +2331,7 @@
         }
 
         val node = rule.onNodeWithTag(tag).fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals("Box", info.contentDescription)
     }
@@ -2349,7 +2349,7 @@
         }
 
         val node = rule.onNodeWithTag(tag).fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals("Box", info.contentDescription)
     }
@@ -2375,7 +2375,7 @@
         }
 
         val node = rule.onNodeWithTag(tag).fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals("Replacing description", info.contentDescription)
     }
@@ -2392,7 +2392,7 @@
         }
 
         val node = rule.onNodeWithTag("Row").fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
 
         assertEquals(AndroidComposeViewAccessibilityDelegateCompat.ClassName, info.className)
     }
@@ -2418,7 +2418,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2451,7 +2451,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2481,7 +2481,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2511,7 +2511,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2541,7 +2541,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2574,7 +2574,7 @@
         }
 
         val node = rule.onNodeWithTag("tag").fetchSemanticsNode()
-        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)
+        val accessibilityNodeInfo = provider.createAccessibilityNodeInfo(node.id)!!
 
         val rect = android.graphics.Rect()
         accessibilityNodeInfo.getBoundsInScreen(rect)
@@ -2718,7 +2718,7 @@
         }
         val buttonNode = rule.onNodeWithTag("button").fetchSemanticsNode()
         assertFalse(buttonNode.unmergedChildren().any { it.isFake })
-        val info = provider.createAccessibilityNodeInfo(buttonNode.id)
+        val info = provider.createAccessibilityNodeInfo(buttonNode.id)!!
         assertEquals("android.widget.Button", info.className)
     }
 
@@ -2739,12 +2739,14 @@
         // Button node
         val parentNode = rule.onNodeWithTag(tag, useUnmergedTree = true).fetchSemanticsNode()
         val parentBounds = Rect()
-        provider.createAccessibilityNodeInfo(parentNode.id).getBoundsInScreen(parentBounds)
+        provider.createAccessibilityNodeInfo(parentNode.id)!!
+            .getBoundsInScreen(parentBounds)
 
         // Button role fake node
         val fakeRoleNode = parentNode.unmergedChildren(includeFakeNodes = true).last()
         val fakeRoleNodeBounds = Rect()
-        provider.createAccessibilityNodeInfo(fakeRoleNode.id).getBoundsInScreen(fakeRoleNodeBounds)
+        provider.createAccessibilityNodeInfo(fakeRoleNode.id)!!
+            .getBoundsInScreen(fakeRoleNodeBounds)
 
         assertEquals(parentBounds, fakeRoleNodeBounds)
     }
@@ -2774,7 +2776,7 @@
         }
 
         val imageNode = rule.onNodeWithTag("image", true).fetchSemanticsNode()
-        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)
+        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)!!
         assertEquals(ClassName, imageInfo.className)
     }
 
@@ -2787,7 +2789,7 @@
         }
 
         val imageNode = rule.onNodeWithTag("image", true).fetchSemanticsNode()
-        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)
+        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)!!
         assertEquals("android.widget.ImageView", imageInfo.className)
     }
 
@@ -2804,7 +2806,7 @@
         }
 
         val imageNode = rule.onNodeWithTag("image", true).fetchSemanticsNode()
-        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)
+        val imageInfo = provider.createAccessibilityNodeInfo(imageNode.id)!!
         assertEquals("android.widget.ImageView", imageInfo.className)
     }
 
@@ -2827,11 +2829,11 @@
         }
 
         val columnNode = rule.onNodeWithTag(tagColumn).fetchSemanticsNode()
-        val columnInfo = provider.createAccessibilityNodeInfo(columnNode.id)
+        val columnInfo = provider.createAccessibilityNodeInfo(columnNode.id)!!
         assertNotEquals("android.widget.ScrollView", columnInfo.className)
 
         val rowNode = rule.onNodeWithTag(tagRow).fetchSemanticsNode()
-        val rowInfo = provider.createAccessibilityNodeInfo(rowNode.id)
+        val rowInfo = provider.createAccessibilityNodeInfo(rowNode.id)!!
         assertNotEquals("android.widget.HorizontalScrollView", rowInfo.className)
     }
 
@@ -2866,7 +2868,7 @@
         assertEquals(nodesWithContentDescr.size, 5)
         nodesWithContentDescr.forEach {
             val node = it.value.semanticsNode
-            val info = provider.createAccessibilityNodeInfo(node.id)
+            val info = provider.createAccessibilityNodeInfo(node.id)!!
             assertEquals(false, info.isVisibleToUser)
         }
     }
@@ -2893,7 +2895,7 @@
         assertEquals(nodesWithContentDescr.size, 3)
         nodesWithContentDescr.forEach {
             val node = it.value.semanticsNode
-            val info = provider.createAccessibilityNodeInfo(node.id)
+            val info = provider.createAccessibilityNodeInfo(node.id)!!
             assertEquals(true, info.isVisibleToUser)
         }
     }
@@ -2906,7 +2908,7 @@
         }
 
         val node = rule.onNodeWithTag("box").fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
         assertEquals(info.isScreenReaderFocusable, true)
     }
 
@@ -2918,7 +2920,7 @@
         }
 
         val node = rule.onNodeWithTag("box").fetchSemanticsNode()
-        val info = provider.createAccessibilityNodeInfo(node.id)
+        val info = provider.createAccessibilityNodeInfo(node.id)!!
         assertEquals(info.isScreenReaderFocusable, true)
     }
 
diff --git a/core/core-ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt b/core/core-ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
index 70ac3426..d124360 100644
--- a/core/core-ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
+++ b/core/core-ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
@@ -89,7 +89,7 @@
     }
 
     private fun Icon.toIntrinsicBitmap(): Bitmap {
-        val drawable = loadDrawable(context)
+        val drawable = loadDrawable(context)!!
         val bitmap = createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight)
         drawable.setBounds(0, 0, drawable.intrinsicHeight, drawable.intrinsicHeight)
         drawable.draw(Canvas(bitmap))
diff --git a/core/core-splashscreen/src/main/java/androidx/core/splashscreen/MaskedDrawable.kt b/core/core-splashscreen/src/main/java/androidx/core/splashscreen/MaskedDrawable.kt
index 149d225..1582b22 100644
--- a/core/core-splashscreen/src/main/java/androidx/core/splashscreen/MaskedDrawable.kt
+++ b/core/core-splashscreen/src/main/java/androidx/core/splashscreen/MaskedDrawable.kt
@@ -52,10 +52,9 @@
     @Suppress("DEPRECATION")
     override fun getOpacity() = drawable.opacity
 
-    override fun onBoundsChange(bounds: Rect?) {
+    override fun onBoundsChange(bounds: Rect) {
         super.onBoundsChange(bounds)
-        bounds ?: return
         drawable.bounds = bounds
         mask.offset(bounds.exactCenterX(), bounds.exactCenterY())
     }
-}
\ No newline at end of file
+}
diff --git a/core/core/api/restricted_current.txt b/core/core/api/restricted_current.txt
index 752a2d5..0313570 100644
--- a/core/core/api/restricted_current.txt
+++ b/core/core/api/restricted_current.txt
@@ -1804,22 +1804,22 @@
 
   @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportMenuItem extends android.view.MenuItem {
     method public int getAlphabeticModifiers();
-    method public CharSequence! getContentDescription();
-    method public android.content.res.ColorStateList! getIconTintList();
-    method public android.graphics.PorterDuff.Mode! getIconTintMode();
+    method public CharSequence? getContentDescription();
+    method public android.content.res.ColorStateList? getIconTintList();
+    method public android.graphics.PorterDuff.Mode? getIconTintMode();
     method public int getNumericModifiers();
-    method public androidx.core.view.ActionProvider! getSupportActionProvider();
-    method public CharSequence! getTooltipText();
+    method public androidx.core.view.ActionProvider? getSupportActionProvider();
+    method public CharSequence? getTooltipText();
     method public boolean requiresActionButton();
     method public boolean requiresOverflow();
-    method public android.view.MenuItem! setAlphabeticShortcut(char, int);
-    method public androidx.core.internal.view.SupportMenuItem! setContentDescription(CharSequence!);
-    method public android.view.MenuItem! setIconTintList(android.content.res.ColorStateList!);
-    method public android.view.MenuItem! setIconTintMode(android.graphics.PorterDuff.Mode!);
-    method public android.view.MenuItem! setNumericShortcut(char, int);
-    method public android.view.MenuItem! setShortcut(char, char, int, int);
-    method public androidx.core.internal.view.SupportMenuItem! setSupportActionProvider(androidx.core.view.ActionProvider!);
-    method public androidx.core.internal.view.SupportMenuItem! setTooltipText(CharSequence!);
+    method public android.view.MenuItem setAlphabeticShortcut(char, int);
+    method public androidx.core.internal.view.SupportMenuItem setContentDescription(CharSequence?);
+    method public android.view.MenuItem setIconTintList(android.content.res.ColorStateList?);
+    method public android.view.MenuItem setIconTintMode(android.graphics.PorterDuff.Mode?);
+    method public android.view.MenuItem setNumericShortcut(char, int);
+    method public android.view.MenuItem setShortcut(char, char, int, int);
+    method public androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider?);
+    method public androidx.core.internal.view.SupportMenuItem setTooltipText(CharSequence?);
     field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
     field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
     field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
diff --git a/core/core/src/main/java/androidx/core/graphics/drawable/RoundedBitmapDrawable.java b/core/core/src/main/java/androidx/core/graphics/drawable/RoundedBitmapDrawable.java
index cbee87f..4c9f959 100644
--- a/core/core/src/main/java/androidx/core/graphics/drawable/RoundedBitmapDrawable.java
+++ b/core/core/src/main/java/androidx/core/graphics/drawable/RoundedBitmapDrawable.java
@@ -341,7 +341,7 @@
     }
 
     @Override
-    protected void onBoundsChange(Rect bounds) {
+    protected void onBoundsChange(@NonNull Rect bounds) {
         super.onBoundsChange(bounds);
         if (mIsCircular) {
             updateCircularCornerRadius();
diff --git a/core/core/src/main/java/androidx/core/internal/view/SupportMenuItem.java b/core/core/src/main/java/androidx/core/internal/view/SupportMenuItem.java
index 53a8d6b..7b03a35 100644
--- a/core/core/src/main/java/androidx/core/internal/view/SupportMenuItem.java
+++ b/core/core/src/main/java/androidx/core/internal/view/SupportMenuItem.java
@@ -24,6 +24,8 @@
 import android.view.MenuItem;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
 import androidx.core.view.ActionProvider;
 
@@ -103,6 +105,7 @@
      * @see android.app.ActionBar
      * @see #setActionView(View)
      */
+    @NonNull
     @Override
     MenuItem setShowAsActionFlags(int actionEnum);
 
@@ -118,8 +121,9 @@
      * @return This Item so additional setters can be called.
      * @see #setShowAsAction(int)
      */
+    @NonNull
     @Override
-    MenuItem setActionView(View view);
+    MenuItem setActionView(@Nullable View view);
 
     /**
      * Set an action view for this menu item. An action view will be displayed in place
@@ -133,6 +137,7 @@
      * @return This Item so additional setters can be called.
      * @see #setShowAsAction(int)
      */
+    @NonNull
     @Override
     MenuItem setActionView(int resId);
 
@@ -143,11 +148,12 @@
      * @see #setActionView(View)
      * @see #setShowAsAction(int)
      */
+    @Nullable
     @Override
     View getActionView();
 
     /**
-     * Sets the {@link androidx.core.view.ActionProvider} responsible for creating an action view if
+     * Sets the {@link ActionProvider} responsible for creating an action view if
      * the item is placed on the action bar. The provider also provides a default
      * action invoked if the item is placed in the overflow menu.
      *
@@ -157,9 +163,10 @@
      *
      * @param actionProvider The action provider.
      * @return This Item so additional setters can be called.
-     * @see androidx.core.view.ActionProvider
+     * @see ActionProvider
      */
-    SupportMenuItem setSupportActionProvider(ActionProvider actionProvider);
+    @NonNull
+    SupportMenuItem setSupportActionProvider(@Nullable ActionProvider actionProvider);
 
     /**
      * Gets the {@link ActionProvider}.
@@ -168,6 +175,7 @@
      * @see ActionProvider
      * @see #setSupportActionProvider(ActionProvider)
      */
+    @Nullable
     ActionProvider getSupportActionProvider();
 
     /**
@@ -216,14 +224,16 @@
      * @param contentDescription The new content description.
      * @return This menu item instance for call chaining.
      */
+    @NonNull
     @Override
-    SupportMenuItem setContentDescription(CharSequence contentDescription);
+    SupportMenuItem setContentDescription(@Nullable CharSequence contentDescription);
 
     /**
      * Retrieve the content description associated with this menu item.
      *
      * @return The content description.
      */
+    @Nullable
     @Override
     CharSequence getContentDescription();
 
@@ -233,14 +243,16 @@
      * @param tooltipText The new tooltip text.
      * @return This menu item instance for call chaining.
      */
+    @NonNull
     @Override
-    SupportMenuItem setTooltipText(CharSequence tooltipText);
+    SupportMenuItem setTooltipText(@Nullable CharSequence tooltipText);
 
     /**
      * Retrieve the tooltip text associated with this menu item.
      *
      * @return The tooltip text.
      */
+    @Nullable
     @Override
     CharSequence getTooltipText();
 
@@ -267,6 +279,7 @@
      *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
      * @return This Item so additional setters can be called.
      */
+    @NonNull
     @Override
     MenuItem setShortcut(char numericChar, char alphaChar, int numericModifiers,
             int alphaModifiers);
@@ -284,6 +297,7 @@
      *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
      * @return This Item so additional setters can be called.
      */
+    @NonNull
     @Override
     MenuItem setNumericShortcut(char numericChar, int numericModifiers);
 
@@ -318,6 +332,7 @@
      *        {@link KeyEvent#META_SYM_ON}, {@link KeyEvent#META_FUNCTION_ON}.
      * @return This Item so additional setters can be called.
      */
+    @NonNull
     @Override
     MenuItem setAlphabeticShortcut(char alphaChar, int alphaModifiers);
 
@@ -346,13 +361,15 @@
      *
      * @see #getIconTintList()
      */
+    @NonNull
     @Override
-    MenuItem setIconTintList(ColorStateList tint);
+    MenuItem setIconTintList(@Nullable ColorStateList tint);
 
     /**
      * @return the tint applied to this item's icon
      * @see #setIconTintList(ColorStateList)
      */
+    @Nullable
     @Override
     ColorStateList getIconTintList();
 
@@ -365,8 +382,9 @@
      *                 {@code null} to clear tint
      * @see #setIconTintList(ColorStateList)
      */
+    @NonNull
     @Override
-    MenuItem setIconTintMode(PorterDuff.Mode tintMode);
+    MenuItem setIconTintMode(@Nullable PorterDuff.Mode tintMode);
 
     /**
      * Returns the blending mode used to apply the tint to this item's icon, if specified.
@@ -374,6 +392,7 @@
      * @return the blending mode used to apply the tint to this item's icon
      * @see #setIconTintMode(PorterDuff.Mode)
      */
+    @Nullable
     @Override
     PorterDuff.Mode getIconTintMode();
 
diff --git a/core/core/src/main/java/androidx/core/widget/NestedScrollView.java b/core/core/src/main/java/androidx/core/widget/NestedScrollView.java
index 6b21430..ca1eb43 100644
--- a/core/core/src/main/java/androidx/core/widget/NestedScrollView.java
+++ b/core/core/src/main/java/androidx/core/widget/NestedScrollView.java
@@ -1926,7 +1926,7 @@
     }
 
     @Override
-    public boolean requestChildRectangleOnScreen(View child, Rect rectangle,
+    public boolean requestChildRectangleOnScreen(@NonNull View child, Rect rectangle,
             boolean immediate) {
         // offset into coordinate space of this scroll view
         rectangle.offset(child.getLeft() - child.getScrollX(),
diff --git a/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/NormalizeCompositionTree.kt b/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
index 1655e52..85c547b 100644
--- a/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
+++ b/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/NormalizeCompositionTree.kt
@@ -165,7 +165,7 @@
             )
         }
         is IconImageProvider -> {
-            val drawable = icon.loadDrawable(context)
+            val drawable = icon.loadDrawable(context)!!
             DpSize(
                 (drawable.intrinsicWidth.toFloat() / density).dp,
                 (drawable.intrinsicHeight.toFloat() / density).dp,
diff --git a/preference/preference/src/androidTest/java/androidx/preference/tests/SelectableTest.kt b/preference/preference/src/androidTest/java/androidx/preference/tests/SelectableTest.kt
index 7c5b6b3..83508f4 100644
--- a/preference/preference/src/androidTest/java/androidx/preference/tests/SelectableTest.kt
+++ b/preference/preference/src/androidTest/java/androidx/preference/tests/SelectableTest.kt
@@ -160,11 +160,9 @@
      * A Drawable that will fail the test when its state changes.
      */
     private class TestDrawable : StateListDrawable() {
-        override fun onStateChange(stateSet: IntArray?): Boolean {
-            stateSet?.let {
-                if (stateSet.contains(android.R.attr.state_pressed)) {
-                    fail("Ripple should not have been activated!")
-                }
+        override fun onStateChange(stateSet: IntArray): Boolean {
+            if (stateSet.contains(android.R.attr.state_pressed)) {
+                fail("Ripple should not have been activated!")
             }
             return super.onStateChange(stateSet)
         }
diff --git a/viewpager2/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java b/viewpager2/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
index a93f56c..4b8f67c 100644
--- a/viewpager2/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
+++ b/viewpager2/viewpager2/src/main/java/androidx/viewpager2/widget/ViewPager2.java
@@ -959,7 +959,7 @@
 
     @RequiresApi(16)
     @Override
-    public boolean performAccessibilityAction(int action, Bundle arguments) {
+    public boolean performAccessibilityAction(int action, @Nullable Bundle arguments) {
         if (mAccessibilityProvider.handlesPerformAccessibilityAction(action, arguments)) {
             return mAccessibilityProvider.onPerformAccessibilityAction(action, arguments);
         }
diff --git a/wear/watchface/watchface-style/src/main/java/androidx/wear/watchface/style/UserStyleSetting.kt b/wear/watchface/watchface-style/src/main/java/androidx/wear/watchface/style/UserStyleSetting.kt
index 371bf7c..05f9281 100644
--- a/wear/watchface/watchface-style/src/main/java/androidx/wear/watchface/style/UserStyleSetting.kt
+++ b/wear/watchface/watchface-style/src/main/java/androidx/wear/watchface/style/UserStyleSetting.kt
@@ -2599,7 +2599,7 @@
 
     // Fall back to loading the full drawable (comparatively expensive). We can't provide the
     // wire size in this instance.
-    val drawable = loadDrawable(context)
+    val drawable = loadDrawable(context)!!
     return WireSizeAndDimensions(null, drawable.minimumWidth, drawable.minimumHeight)
 }