File tree Expand file tree Collapse file tree 6 files changed +20
-25
lines changed
packages/react-native/ReactAndroid/src/main
java/com/facebook/react/runtime Expand file tree Collapse file tree 6 files changed +20
-25
lines changed Original file line number Diff line number Diff line change 7
7
8
8
package com.facebook.react.runtime
9
9
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
12
12
import com.facebook.react.bridge.WritableArray
13
13
import com.facebook.react.bridge.WritableNativeArray
14
14
import com.facebook.react.modules.core.JavaScriptTimerExecutor
15
15
import com.facebook.soloader.SoLoader
16
16
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 ()
19
24
20
25
private external fun callTimers (timerIDs : WritableNativeArray )
21
26
Original file line number Diff line number Diff line change @@ -76,7 +76,6 @@ import java.util.ArrayList
76
76
import java.util.HashMap
77
77
import java.util.HashSet
78
78
import kotlin.collections.Collection
79
- import kotlin.jvm.JvmStatic
80
79
81
80
/* *
82
81
* A replacement for [com.facebook.react.bridge.CatalystInstance] responsible for creating and
@@ -126,7 +125,7 @@ internal class ReactInstance(
126
125
ReactChoreographer .initialize(AndroidChoreographerProvider .getInstance())
127
126
devSupportManager.startInspector()
128
127
129
- val jsTimerExecutor = createJSTimerExecutor ()
128
+ val jsTimerExecutor = JSTimerExecutor ()
130
129
javaTimerManager =
131
130
JavaTimerManager (
132
131
context,
@@ -182,7 +181,6 @@ internal class ReactInstance(
182
181
getJSCallInvokerHolder(),
183
182
getNativeMethodCallInvokerHolder(),
184
183
)
185
-
186
184
Systrace .endSection(Systrace .TRACE_TAG_REACT )
187
185
188
186
// Set up Fabric
@@ -633,7 +631,5 @@ internal class ReactInstance(
633
631
SystraceMessage .endSection(Systrace .TRACE_TAG_REACT ).flush()
634
632
}
635
633
}
636
-
637
- @JvmStatic @DoNotStrip private external fun createJSTimerExecutor (): JSTimerExecutor
638
634
}
639
635
}
Original file line number Diff line number Diff line change 12
12
13
13
namespace facebook ::react {
14
14
15
+ void JJSTimerExecutor::initHybrid (
16
+ jni::alias_ref<JJSTimerExecutor::jhybridobject> jobj) {
17
+ setCxxInstance (jobj);
18
+ }
19
+
15
20
void JJSTimerExecutor::setTimerManager (
16
21
std::weak_ptr<TimerManager> timerManager) {
17
22
timerManager_ = timerManager;
@@ -28,6 +33,7 @@ void JJSTimerExecutor::callTimers(WritableNativeArray* timerIDs) {
28
33
void JJSTimerExecutor::registerNatives () {
29
34
registerHybrid ({
30
35
makeNativeMethod (" callTimers" , JJSTimerExecutor::callTimers),
36
+ makeNativeMethod (" initHybrid" , JJSTimerExecutor::initHybrid),
31
37
});
32
38
}
33
39
Original file line number Diff line number Diff line change @@ -17,18 +17,20 @@ namespace facebook::react {
17
17
18
18
class JJSTimerExecutor : public jni ::HybridClass<JJSTimerExecutor> {
19
19
public:
20
- JJSTimerExecutor () = default ;
21
-
22
20
constexpr static auto kJavaDescriptor =
23
21
" Lcom/facebook/react/runtime/JSTimerExecutor;" ;
24
22
25
23
static void registerNatives ();
26
24
25
+ static void initHybrid (jni::alias_ref<jhybridobject> jobj);
26
+
27
27
void setTimerManager (std::weak_ptr<TimerManager> timerManager);
28
28
29
29
void callTimers (WritableNativeArray* timerIDs);
30
30
31
31
private:
32
+ JJSTimerExecutor () = default ;
33
+
32
34
friend HybridBase;
33
35
34
36
std::weak_ptr<TimerManager> timerManager_;
Original file line number Diff line number Diff line change @@ -168,12 +168,6 @@ JReactInstance::getNativeMethodCallInvokerHolder() {
168
168
return nativeMethodCallInvokerHolder_;
169
169
}
170
170
171
- jni::global_ref<JJSTimerExecutor::javaobject>
172
- JReactInstance::createJSTimerExecutor (
173
- jni::alias_ref<jhybridobject> /* unused */ ) {
174
- return jni::make_global (JJSTimerExecutor::newObjectCxxArgs ());
175
- }
176
-
177
171
void JReactInstance::callFunctionOnModule (
178
172
const std::string& moduleName,
179
173
const std::string& methodName,
@@ -217,8 +211,6 @@ void JReactInstance::unregisterFromInspector() {
217
211
void JReactInstance::registerNatives () {
218
212
registerHybrid ({
219
213
makeNativeMethod (" initHybrid" , JReactInstance::initHybrid),
220
- makeNativeMethod (
221
- " createJSTimerExecutor" , JReactInstance::createJSTimerExecutor),
222
214
makeNativeMethod (
223
215
" loadJSBundleFromAssets" , JReactInstance::loadJSBundleFromAssets),
224
216
makeNativeMethod (
Original file line number Diff line number Diff line change @@ -50,12 +50,6 @@ class JReactInstance : public jni::HybridClass<JReactInstance> {
50
50
jni::alias_ref<JReactHostInspectorTarget::javaobject>
51
51
jReactHostInspectorTarget);
52
52
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
-
59
53
static void registerNatives ();
60
54
61
55
void loadJSBundleFromAssets (
You can’t perform that action at this time.
0 commit comments