Migrate compose ui to use JSpecify annotations

CL created by running `development/jspecify_update.py compose/ui/ui`

We are updating all AndroidX libraries to use the Jspecify nullness annotations (https://docs.google.com/document/d/1XjainD032hUdCfgXIzRThHvP9FJANYuocKaTDXWuLXo/edit?usp=sharing)

Bug: 326456246
Test: `checkApi`, `lint`, `runErrorProne`
Relnote: "This library now uses [JSpecify nullness annotations](https://jspecify.dev/), which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode"
Change-Id: Idfef8002dd13e94de525c5e53d018437e2cc050b
diff --git a/compose/ui/ui/build.gradle b/compose/ui/ui/build.gradle
index a2623dd..74982c0 100644
--- a/compose/ui/ui/build.gradle
+++ b/compose/ui/ui/build.gradle
@@ -73,6 +73,7 @@
         jvmMain {
             dependsOn(commonMain)
             dependencies {
+                api(libs.jspecify)
             }
         }
 
diff --git a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/AutofillIdCompat.java b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/AutofillIdCompat.java
index 53360b6..76a6dcc 100644
--- a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/AutofillIdCompat.java
+++ b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/AutofillIdCompat.java
@@ -18,10 +18,11 @@
 
 import android.view.autofill.AutofillId;
 
-import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.annotation.RestrictTo;
 
+import org.jspecify.annotations.NonNull;
+
 /**
  * Helper for accessing features in {@link AutofillId}.
  */
@@ -45,8 +46,7 @@
      * @return wrapped class
      */
     @RequiresApi(26)
-    @NonNull
-    public static AutofillIdCompat toAutofillIdCompat(@NonNull AutofillId autofillId) {
+    public static @NonNull AutofillIdCompat toAutofillIdCompat(@NonNull AutofillId autofillId) {
         return new AutofillIdCompat(autofillId);
     }
 
@@ -60,8 +60,7 @@
      * @see AutofillIdCompat#toAutofillIdCompat(AutofillId)
      */
     @RequiresApi(26)
-    @NonNull
-    public AutofillId toAutofillId() {
+    public @NonNull AutofillId toAutofillId() {
         return (AutofillId) mWrappedObj;
     }
 }
diff --git a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ContentCaptureSessionCompat.java b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ContentCaptureSessionCompat.java
index a62dd2a..476a580 100644
--- a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ContentCaptureSessionCompat.java
+++ b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ContentCaptureSessionCompat.java
@@ -24,11 +24,12 @@
 import android.view.autofill.AutofillId;
 import android.view.contentcapture.ContentCaptureSession;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.annotation.RestrictTo;
 
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
 import java.util.List;
 import java.util.Objects;
 
@@ -55,8 +56,7 @@
      * @return wrapped class
      */
     @RequiresApi(29)
-    @NonNull
-    public static ContentCaptureSessionCompat toContentCaptureSessionCompat(
+    public static @NonNull ContentCaptureSessionCompat toContentCaptureSessionCompat(
             @NonNull ContentCaptureSession contentCaptureSession, @NonNull View host) {
         return new ContentCaptureSessionCompat(contentCaptureSession, host);
     }
@@ -71,8 +71,7 @@
      * @see ContentCaptureSessionCompat#toContentCaptureSessionCompat(ContentCaptureSession, View)
      */
     @RequiresApi(29)
-    @NonNull
-    public ContentCaptureSession toContentCaptureSession() {
+    public @NonNull ContentCaptureSession toContentCaptureSession() {
         return (ContentCaptureSession) mWrappedObj;
     }
 
@@ -103,8 +102,7 @@
      *
      * @return {@link AutofillId} for the virtual child
      */
-    @Nullable
-    public AutofillId newAutofillId(long virtualChildId) {
+    public @Nullable AutofillId newAutofillId(long virtualChildId) {
         if (SDK_INT >= 29) {
             return Api29Impl.newAutofillId(
                     (ContentCaptureSession) mWrappedObj,
@@ -130,8 +128,7 @@
      *
      * @return a new {@link ViewStructure} that can be used for Content Capture purposes.
      */
-    @Nullable
-    public ViewStructureCompat newVirtualViewStructure(
+    public @Nullable ViewStructureCompat newVirtualViewStructure(
             @NonNull AutofillId parentId, long virtualId) {
         if (SDK_INT >= 29) {
             return ViewStructureCompat.toViewStructureCompat(
@@ -194,7 +191,7 @@
      *
      * @param virtualIds ids of the virtual children.
      */
-    public void notifyViewsDisappeared(@NonNull long[] virtualIds) {
+    public void notifyViewsDisappeared(long @NonNull [] virtualIds) {
         if (SDK_INT >= 34) {
             Api29Impl.notifyViewsDisappeared(
                     (ContentCaptureSession) mWrappedObj,
diff --git a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewCompatShims.java b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewCompatShims.java
index e6cc549..0a87f79d 100644
--- a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewCompatShims.java
+++ b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewCompatShims.java
@@ -22,11 +22,12 @@
 import android.view.contentcapture.ContentCaptureSession;
 
 import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.annotation.RestrictTo;
 
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
@@ -117,8 +118,7 @@
      * inherited by ancestors, default session or {@code null} if content capture is disabled for
      * this view.
      */
-    @Nullable
-    public static ContentCaptureSessionCompat getContentCaptureSession(@NonNull View v) {
+    public static @Nullable ContentCaptureSessionCompat getContentCaptureSession(@NonNull View v) {
         if (Build.VERSION.SDK_INT >= 29) {
             ContentCaptureSession session = Api29Impl.getContentCaptureSession(v);
             if (session == null) {
@@ -146,8 +146,7 @@
      * @param v The View against which to invoke the method.
      * @return The View's autofill id.
      */
-    @Nullable
-    public static AutofillIdCompat getAutofillId(@NonNull View v) {
+    public static @Nullable AutofillIdCompat getAutofillId(@NonNull View v) {
         if (Build.VERSION.SDK_INT >= 26) {
             return AutofillIdCompat.toAutofillIdCompat(Api26Impl.getAutofillId(v));
         }
diff --git a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewStructureCompat.java b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewStructureCompat.java
index 8bc0994..71f2d7f 100644
--- a/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewStructureCompat.java
+++ b/compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewStructureCompat.java
@@ -21,11 +21,12 @@
 import android.os.Bundle;
 import android.view.ViewStructure;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.annotation.RestrictTo;
 
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
+
 /**
  * Helper for accessing features in {@link ViewStructure}.
  * <p>
@@ -48,8 +49,7 @@
      * @return wrapped class
      */
     @RequiresApi(23)
-    @NonNull
-    public static ViewStructureCompat toViewStructureCompat(
+    public static @NonNull ViewStructureCompat toViewStructureCompat(
             @NonNull ViewStructure contentCaptureSession) {
         return new ViewStructureCompat(contentCaptureSession);
     }
@@ -64,8 +64,7 @@
      * @see ViewStructureCompat#toViewStructureCompat(ViewStructure)
      */
     @RequiresApi(23)
-    @NonNull
-    public ViewStructure toViewStructure() {
+    public @NonNull ViewStructure toViewStructure() {
         return (ViewStructure) mWrappedObj;
     }
 
@@ -200,8 +199,7 @@
      * <li>SDK 22 and below, this method returns null.
      * </ul>
      */
-    @Nullable
-    public Bundle getExtras() {
+    public @Nullable Bundle getExtras() {
         if (SDK_INT >= 23) {
             return Api23Impl.getExtras((ViewStructure) mWrappedObj);
         }