From fa808b0840093dbb1066a6d74f6f2022cf8d42b4 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 16:17:39 -0700 Subject: [PATCH] Kotlinify MeasureUtil (#43769) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43769 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: cortinico Differential Revision: D55636884 fbshipit-source-id: 331f414db729f1b5f6f285df015ec65c2ade38cc --- .../ReactAndroid/api/ReactAndroid.api | 6 ++--- .../react/views/view/MeasureUtil.java | 26 ------------------- .../facebook/react/views/view/MeasureUtil.kt | 24 +++++++++++++++++ 3 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/MeasureUtil.kt 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) + } +}