diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 5dbee52ad39..004d1e44d7b 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -2570,9 +2570,9 @@ public class com/facebook/react/fabric/FabricComponents { public static fun getFabricComponentName (Ljava/lang/String;)Ljava/lang/String; } -public class com/facebook/react/fabric/FabricSoLoader { - public fun ()V - public static fun staticInit ()V +public final class com/facebook/react/fabric/FabricSoLoader { + public static final field INSTANCE Lcom/facebook/react/fabric/FabricSoLoader; + public static final fun staticInit ()V } public class com/facebook/react/fabric/FabricUIManager : com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/bridge/UIManager, com/facebook/react/fabric/interop/UIBlockViewResolver { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.java deleted file mode 100644 index e3a8da958be..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.java +++ /dev/null @@ -1,34 +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.fabric; - -import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE; - -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.react.bridge.ReactMarker; -import com.facebook.react.bridge.ReactMarkerConstants; -import com.facebook.soloader.SoLoader; -import com.facebook.systrace.Systrace; - -@Nullsafe(Nullsafe.Mode.LOCAL) -public class FabricSoLoader { - private static volatile boolean sDidInit = false; - - public static void staticInit() { - if (sDidInit) { - return; - } - Systrace.beginSection( - Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricSoLoader.staticInit::load:fabricjni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START); - SoLoader.loadLibrary("fabricjni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END); - Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); - sDidInit = true; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt new file mode 100644 index 00000000000..49f7d8afa34 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt @@ -0,0 +1,31 @@ +/* + * 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.fabric + +import com.facebook.react.bridge.ReactMarker +import com.facebook.react.bridge.ReactMarkerConstants +import com.facebook.soloader.SoLoader +import com.facebook.systrace.Systrace + +public object FabricSoLoader { + @Volatile private var didInit = false + + @JvmStatic + public fun staticInit() { + if (didInit) { + return + } + Systrace.beginSection( + Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricSoLoader.staticInit::load:fabricjni") + ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START) + SoLoader.loadLibrary("fabricjni") + ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END) + Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE) + didInit = true + } +}