diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index f695a7cda48..cf97a1064e8 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -1124,12 +1124,12 @@ public abstract class com/facebook/react/bridge/ReactApplicationContext : com/fa public fun (Landroid/content/Context;)V } -public class com/facebook/react/bridge/ReactBridge { - public fun ()V - public static fun getLoadEndTime ()J - public static fun getLoadStartTime ()J - public static fun isInitialized ()Z - public static fun staticInit ()V +public final class com/facebook/react/bridge/ReactBridge { + public static final field INSTANCE Lcom/facebook/react/bridge/ReactBridge; + public static final fun getLoadEndTime ()J + public static final fun getLoadStartTime ()J + public static final fun isInitialized ()Z + public static final fun staticInit ()V } public abstract class com/facebook/react/bridge/ReactContext : android/content/ContextWrapper { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java deleted file mode 100644 index 73a4e1fc7a2..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java +++ /dev/null @@ -1,48 +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.bridge; - -import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE; - -import android.os.SystemClock; -import com.facebook.soloader.SoLoader; -import com.facebook.systrace.Systrace; - -public class ReactBridge { - private static volatile long sLoadStartTime = 0; - private static volatile long sLoadEndTime = 0; - - private static volatile boolean sDidInit = false; - - public static boolean isInitialized() { - return sDidInit; - } - - public static synchronized void staticInit() { - if (sDidInit) { - return; - } - sLoadStartTime = SystemClock.uptimeMillis(); - Systrace.beginSection( - TRACE_TAG_REACT_JAVA_BRIDGE, "ReactBridge.staticInit::load:reactnativejni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START); - SoLoader.loadLibrary("reactnativejni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END); - Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); - sLoadEndTime = SystemClock.uptimeMillis(); - sDidInit = true; - } - - public static long getLoadStartTime() { - return sLoadStartTime; - } - - public static long getLoadEndTime() { - return sLoadEndTime; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt new file mode 100644 index 00000000000..6a8e1337651 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt @@ -0,0 +1,48 @@ +/* + * 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.bridge + +import android.os.SystemClock +import com.facebook.soloader.SoLoader +import com.facebook.systrace.Systrace +import com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE + +public object ReactBridge { + @Volatile private var _loadStartTime: Long = 0 + @Volatile private var _loadEndTime: Long = 0 + @Volatile private var _didInit: Boolean = false + + @JvmStatic + @Synchronized + public fun staticInit() { + if (_didInit) { + return + } + _loadStartTime = SystemClock.uptimeMillis() + Systrace.beginSection( + TRACE_TAG_REACT_JAVA_BRIDGE, "ReactBridge.staticInit::load:reactnativejni") + ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START) + SoLoader.loadLibrary("reactnativejni") + ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END) + Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE) + _loadEndTime = SystemClock.uptimeMillis() + _didInit = true + } + + @JvmStatic + public val loadStartTime: Long + get() = _loadStartTime + + @JvmStatic + public val loadEndTime: Long + get() = _loadEndTime + + @JvmStatic + public val initialized: Boolean + @JvmName("isInitialized") get() = _didInit +}