File tree Expand file tree Collapse file tree
packages/react-native/ReactAndroid/src/main
java/com/facebook/react/runtime Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77
88package com.facebook.react.runtime
99
10- import com.facebook.jni.HybridData
11- import com.facebook.jni.annotations.DoNotStripAny
10+ import com.facebook.jni.HybridClassBase
11+ import com.facebook.jni.annotations.DoNotStrip
1212import com.facebook.react.bridge.WritableArray
1313import com.facebook.react.bridge.WritableNativeArray
1414import com.facebook.react.modules.core.JavaScriptTimerExecutor
1515import com.facebook.soloader.SoLoader
1616
17- @DoNotStripAny
18- internal class JSTimerExecutor (private val mHybridData : HybridData ) : JavaScriptTimerExecutor {
17+ @DoNotStrip
18+ internal class JSTimerExecutor () : HybridClassBase(), JavaScriptTimerExecutor {
19+ init {
20+ initHybrid()
21+ }
22+
23+ private external fun initHybrid ()
1924
2025 private external fun callTimers (timerIDs : WritableNativeArray )
2126
Original file line number Diff line number Diff line change @@ -76,7 +76,6 @@ import java.util.ArrayList
7676import java.util.HashMap
7777import java.util.HashSet
7878import kotlin.collections.Collection
79- import kotlin.jvm.JvmStatic
8079
8180/* *
8281 * A replacement for [com.facebook.react.bridge.CatalystInstance] responsible for creating and
@@ -126,7 +125,7 @@ internal class ReactInstance(
126125 ReactChoreographer .initialize(AndroidChoreographerProvider .getInstance())
127126 devSupportManager.startInspector()
128127
129- val jsTimerExecutor = createJSTimerExecutor ()
128+ val jsTimerExecutor = JSTimerExecutor ()
130129 javaTimerManager =
131130 JavaTimerManager (
132131 context,
@@ -182,7 +181,6 @@ internal class ReactInstance(
182181 getJSCallInvokerHolder(),
183182 getNativeMethodCallInvokerHolder(),
184183 )
185-
186184 Systrace .endSection(Systrace .TRACE_TAG_REACT )
187185
188186 // Set up Fabric
@@ -633,7 +631,5 @@ internal class ReactInstance(
633631 SystraceMessage .endSection(Systrace .TRACE_TAG_REACT ).flush()
634632 }
635633 }
636-
637- @JvmStatic @DoNotStrip private external fun createJSTimerExecutor (): JSTimerExecutor
638634 }
639635}
Original file line number Diff line number Diff line change 1212
1313namespace facebook ::react {
1414
15+ void JJSTimerExecutor::initHybrid (
16+ jni::alias_ref<JJSTimerExecutor::jhybridobject> jobj) {
17+ setCxxInstance (jobj);
18+ }
19+
1520void JJSTimerExecutor::setTimerManager (
1621 std::weak_ptr<TimerManager> timerManager) {
1722 timerManager_ = timerManager;
@@ -28,6 +33,7 @@ void JJSTimerExecutor::callTimers(WritableNativeArray* timerIDs) {
2833void JJSTimerExecutor::registerNatives () {
2934 registerHybrid ({
3035 makeNativeMethod (" callTimers" , JJSTimerExecutor::callTimers),
36+ makeNativeMethod (" initHybrid" , JJSTimerExecutor::initHybrid),
3137 });
3238}
3339
Original file line number Diff line number Diff line change @@ -17,18 +17,20 @@ namespace facebook::react {
1717
1818class JJSTimerExecutor : public jni ::HybridClass<JJSTimerExecutor> {
1919 public:
20- JJSTimerExecutor () = default ;
21-
2220 constexpr static auto kJavaDescriptor =
2321 " Lcom/facebook/react/runtime/JSTimerExecutor;" ;
2422
2523 static void registerNatives ();
2624
25+ static void initHybrid (jni::alias_ref<jhybridobject> jobj);
26+
2727 void setTimerManager (std::weak_ptr<TimerManager> timerManager);
2828
2929 void callTimers (WritableNativeArray* timerIDs);
3030
3131 private:
32+ JJSTimerExecutor () = default ;
33+
3234 friend HybridBase;
3335
3436 std::weak_ptr<TimerManager> timerManager_;
Original file line number Diff line number Diff line change @@ -168,12 +168,6 @@ JReactInstance::getNativeMethodCallInvokerHolder() {
168168 return nativeMethodCallInvokerHolder_;
169169}
170170
171- jni::global_ref<JJSTimerExecutor::javaobject>
172- JReactInstance::createJSTimerExecutor (
173- jni::alias_ref<jhybridobject> /* unused */ ) {
174- return jni::make_global (JJSTimerExecutor::newObjectCxxArgs ());
175- }
176-
177171void JReactInstance::callFunctionOnModule (
178172 const std::string& moduleName,
179173 const std::string& methodName,
@@ -217,8 +211,6 @@ void JReactInstance::unregisterFromInspector() {
217211void JReactInstance::registerNatives () {
218212 registerHybrid ({
219213 makeNativeMethod (" initHybrid" , JReactInstance::initHybrid),
220- makeNativeMethod (
221- " createJSTimerExecutor" , JReactInstance::createJSTimerExecutor),
222214 makeNativeMethod (
223215 " loadJSBundleFromAssets" , JReactInstance::loadJSBundleFromAssets),
224216 makeNativeMethod (
Original file line number Diff line number Diff line change @@ -50,12 +50,6 @@ class JReactInstance : public jni::HybridClass<JReactInstance> {
5050 jni::alias_ref<JReactHostInspectorTarget::javaobject>
5151 jReactHostInspectorTarget);
5252
53- /*
54- * Instantiates and returns an instance of `JSTimerExecutor`.
55- */
56- static jni::global_ref<JJSTimerExecutor::javaobject> createJSTimerExecutor (
57- jni::alias_ref<jhybridobject> /* unused */ );
58-
5953 static void registerNatives ();
6054
6155 void loadJSBundleFromAssets (
You can’t perform that action at this time.
0 commit comments