diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java index 61e763f1eb5..b582be2c020 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java @@ -30,7 +30,7 @@ public class EventBeatManager implements BatchEventDispatchedListener { private static native HybridData initHybrid(); - private native void beat(); + private native void tick(); public EventBeatManager(@NonNull ReactApplicationContext reactApplicationContext) { mHybridData = initHybrid(); @@ -39,23 +39,6 @@ public class EventBeatManager implements BatchEventDispatchedListener { @Override public void onBatchEventDispatched() { - dispatchEventsAsync(); - } - - /** - * Induce a beat in the AsyncEventBeat, calling the JNI method {@link #beat()} in the JS thread. - */ - private void dispatchEventsAsync() { - if (mReactApplicationContext.isOnJSQueueThread()) { - beat(); - } else { - mReactApplicationContext.runOnJSQueueThread( - new Runnable() { - @Override - public void run() { - beat(); - } - }); - } + tick(); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.cpp index e651d128389..b92482e5f90 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.cpp @@ -37,7 +37,7 @@ void EventBeatManager::unregisterEventBeat(EventBeat* eventBeat) const { registeredEventBeats_.erase(eventBeat); } -void EventBeatManager::beat() { +void EventBeatManager::tick() { std::lock_guard lock(mutex_); for (const auto eventBeat : registeredEventBeats_) { @@ -50,7 +50,7 @@ void EventBeatManager::beat() { void EventBeatManager::registerNatives() { registerHybrid({ makeNativeMethod("initHybrid", EventBeatManager::initHybrid), - makeNativeMethod("beat", EventBeatManager::beat), + makeNativeMethod("tick", EventBeatManager::tick), }); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.h b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.h index 76f2e6e5bca..da1f649c641 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.h +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventBeatManager.h @@ -34,11 +34,14 @@ class EventBeatManager : public jni::HybridClass { void unregisterEventBeat(EventBeat* eventBeat) const; - void beat(); - EventBeatManager(jni::alias_ref jhybridobject); private: + /* + * Called by Java counterpart at the end of every run loop tick. + */ + void tick(); + RuntimeExecutor runtimeExecutor_; jni::alias_ref jhybridobject_;