From 79fa565b8c642cb24370b97c3cdc6ef559f786d6 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 16:17:39 -0700 Subject: [PATCH] Kotlinify ReactYogaConfigProvider (#43773) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43773 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: cortinico Differential Revision: D55638955 fbshipit-source-id: 068e0e43367e8f11d43dcbd811b881bdc27d801c --- .../ReactAndroid/api/ReactAndroid.api | 6 ++-- .../uimanager/ReactYogaConfigProvider.java | 28 ------------------- .../uimanager/ReactYogaConfigProvider.kt | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index d233e647963..f916c4f2f09 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -4753,9 +4753,9 @@ public class com/facebook/react/uimanager/ReactStylesDiffMap { public fun toString ()Ljava/lang/String; } -public class com/facebook/react/uimanager/ReactYogaConfigProvider { - public fun ()V - public static fun get ()Lcom/facebook/yoga/YogaConfig; +public final class com/facebook/react/uimanager/ReactYogaConfigProvider { + public static final field INSTANCE Lcom/facebook/react/uimanager/ReactYogaConfigProvider; + public static final fun get ()Lcom/facebook/yoga/YogaConfig; } public abstract interface class com/facebook/react/uimanager/ReactZIndexedViewGroup { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.java deleted file mode 100644 index 67c80d2c80f..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.java +++ /dev/null @@ -1,28 +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.uimanager; - -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.yoga.YogaConfig; -import com.facebook.yoga.YogaConfigFactory; -import com.facebook.yoga.YogaErrata; - -@Nullsafe(Nullsafe.Mode.LOCAL) -public class ReactYogaConfigProvider { - - private static YogaConfig YOGA_CONFIG; - - public static YogaConfig get() { - if (YOGA_CONFIG == null) { - YOGA_CONFIG = YogaConfigFactory.create(); - YOGA_CONFIG.setPointScaleFactor(0f); - YOGA_CONFIG.setErrata(YogaErrata.ALL); - } - return YOGA_CONFIG; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt new file mode 100644 index 00000000000..bcfdbc81b2c --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactYogaConfigProvider.kt @@ -0,0 +1,28 @@ +/* + * 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.uimanager + +import com.facebook.yoga.YogaConfig +import com.facebook.yoga.YogaConfigFactory +import com.facebook.yoga.YogaErrata + +public object ReactYogaConfigProvider { + + private val yogaConfig: YogaConfig by + lazy(LazyThreadSafetyMode.NONE) { + val config = YogaConfigFactory.create() + config.setPointScaleFactor(0f) + config.setErrata(YogaErrata.ALL) + config + } + + @JvmStatic + public fun get(): YogaConfig { + return yogaConfig + } +}