diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java index e4587e2711b..bfd587dafb0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/UiThreadUtil.java @@ -58,4 +58,14 @@ public class UiThreadUtil { } sMainHandler.postDelayed(runnable, delayInMs); } + + /** Removes the given {@code Runnable} on the UI thread. */ + public static void removeOnUiThread(Runnable runnable) { + synchronized (UiThreadUtil.class) { + if (sMainHandler == null) { + sMainHandler = new Handler(Looper.getMainLooper()); + } + } + sMainHandler.removeCallbacks(runnable); + } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java index 10b533c684d..481c42d0826 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/DevToolsReactPerfLogger.java @@ -126,6 +126,10 @@ public class DevToolsReactPerfLogger implements ReactMarker.FabricMarkerListener return getCounter(FABRIC_LAYOUT_AFFECTED_NODES); } + public long getAffectedLayoutNodesCountTime() { + return getTimestamp(FABRIC_LAYOUT_AFFECTED_NODES); + } + public long getBatchExecutionStart() { return getTimestamp(FABRIC_BATCH_EXECUTION_START); }