diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 54cc8a7c1c6..018c2ef4826 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -7516,9 +7516,9 @@ public class com/facebook/react/views/view/ColorUtil { public static fun normalize (DDDD)I } -public class com/facebook/react/views/view/MeasureUtil { - public fun ()V - public static fun getMeasureSpec (FLcom/facebook/yoga/YogaMeasureMode;)I +public final class com/facebook/react/views/view/MeasureUtil { + public static final field INSTANCE Lcom/facebook/react/views/view/MeasureUtil; + public static final fun getMeasureSpec (FLcom/facebook/yoga/YogaMeasureMode;)I } public abstract class com/facebook/react/views/view/ReactClippingViewManager : com/facebook/react/uimanager/ViewGroupManager { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java deleted file mode 100644 index 7d3fe5afdff..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.views.view; - -import android.view.View; -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.yoga.YogaMeasureMode; - -@Nullsafe(Nullsafe.Mode.LOCAL) -public class MeasureUtil { - - public static int getMeasureSpec(float size, YogaMeasureMode mode) { - if (mode == YogaMeasureMode.EXACTLY) { - return View.MeasureSpec.makeMeasureSpec((int) size, View.MeasureSpec.EXACTLY); - } else if (mode == YogaMeasureMode.AT_MOST) { - return View.MeasureSpec.makeMeasureSpec((int) size, View.MeasureSpec.AT_MOST); - } else { - return View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - } - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.kt new file mode 100644 index 00000000000..1aaf806a2d4 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.views.view + +import android.view.View +import com.facebook.yoga.YogaMeasureMode + +public object MeasureUtil { + + @JvmStatic + public fun getMeasureSpec(size: Float, mode: YogaMeasureMode): Int = + when (mode) { + YogaMeasureMode.EXACTLY -> + View.MeasureSpec.makeMeasureSpec(size.toInt(), View.MeasureSpec.EXACTLY) + YogaMeasureMode.AT_MOST -> + View.MeasureSpec.makeMeasureSpec(size.toInt(), View.MeasureSpec.AT_MOST) + else -> View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) + } +}