From 90b98efa7368c090c2942e0e157dfc3c94ded46e Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Tue, 15 Feb 2022 13:00:14 -0800 Subject: [PATCH] Resume LockFreeEventDispatcher from onHostResume Summary: Found that after backgrounding `mShouldStop` would always remain true, which prevents events from being dispatched / scheduled. Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D34247567 fbshipit-source-id: 63876986dc0cee5e2a73cb4f8a35d90379d9f8ea --- .../uimanager/events/LockFreeEventDispatcherImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java index 3c5f7efc6b7..4c62d7aeca7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java @@ -125,7 +125,8 @@ public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEv @Override public void onHostResume() { - maybePostFrameCallbackFromNonUI(); + UiThreadUtil.assertOnUiThread(); + mCurrentFrameCallback.resume(); } @Override @@ -183,6 +184,11 @@ public class LockFreeEventDispatcherImpl implements EventDispatcher, LifecycleEv driveEventBeats(); } + public void resume() { + mShouldStop = false; + maybePost(); + } + public void stop() { mShouldStop = true; }