From f43039da8764d0f22d7ccb9be251e7433cf3d8c7 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Mon, 17 Jun 2019 21:39:07 -0700 Subject: [PATCH] Force setConstraints to run in the JS Thread Summary: This diff forces the method: scheduler.constraintSurfaceLayout to run on the JS thread. Reviewed By: JoshuaGross Differential Revision: D15845768 fbshipit-source-id: de2aa69f301770aaf6cb7c3f5670548a3b6110df --- .../facebook/react/fabric/FabricUIManager.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index 1363f230fb0..1fe9fede1ff 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -418,12 +418,17 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { public void updateRootLayoutSpecs( final int rootTag, final int widthMeasureSpec, final int heightMeasureSpec) { - mBinding.setConstraints( - rootTag, - getMinSize(widthMeasureSpec), - getMaxSize(widthMeasureSpec), - getMinSize(heightMeasureSpec), - getMaxSize(heightMeasureSpec)); + mReactApplicationContext.runOnJSQueueThread(new Runnable() { + @Override + public void run() { + mBinding.setConstraints( + rootTag, + getMinSize(widthMeasureSpec), + getMaxSize(widthMeasureSpec), + getMinSize(heightMeasureSpec), + getMaxSize(heightMeasureSpec)); + } + }); } public void receiveEvent(int reactTag, String eventName, @Nullable WritableMap params) {