diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index dfe32f2dd92..dfb1e641215 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -441,6 +441,18 @@ public class ReactContext extends ContextWrapper { return Assertions.assertNotNull(mJSMessageQueueThread).runOnQueue(runnable); } + public @Nullable MessageQueueThread getJSMessageQueueThread() { + return mJSMessageQueueThread; + } + + public @Nullable MessageQueueThread getNativeModulesMessageQueueThread() { + return mNativeModulesMessageQueueThread; + } + + public @Nullable MessageQueueThread getUiMessageQueueThread() { + return mUiMessageQueueThread; + } + /** * Passes the given exception to the current {@link JSExceptionHandler} if one exists, rethrowing * otherwise. diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java index 678af19b2ed..5b8b928c380 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java @@ -69,4 +69,8 @@ public interface MessageQueueThread { */ @DoNotStrip void resetPerfStats(); + + /** Returns true if the message queue is idle */ + @DoNotStrip + boolean isIdle(); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java index ba03bbe3049..b5ed7d33843 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java @@ -156,6 +156,12 @@ public class MessageQueueThreadImpl implements MessageQueueThread { }); } + @DoNotStrip + @Override + public boolean isIdle() { + return mLooper.getQueue().isIdle(); + } + private static void assignToPerfStats(MessageQueueThreadPerfStats stats, long wall, long cpu) { stats.wallTime = wall; stats.cpuTime = cpu;