diff --git a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java index 5f493dbf55e..75e7c0f1686 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +++ b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java @@ -62,4 +62,7 @@ public class ReactFeatureFlags { /** Enables setting layout params to empty to fix a crash */ public static boolean enableSettingEmptyLayoutParams = false; + + /** Enables JS Responder in Fabric */ + public static boolean enableJSResponder = false; } 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 7d372c2e1eb..abcea19b8a7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -1108,26 +1108,28 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { final int reactTag, final int initialReactTag, final boolean blockNativeResponder) { - addMountItem( - new MountItem() { - @Override - public void execute(MountingManager mountingManager) { - SurfaceMountingManager surfaceMountingManager = - mountingManager.getSurfaceManager(surfaceId); - if (surfaceMountingManager != null) { - surfaceMountingManager.setJSResponder( - reactTag, initialReactTag, blockNativeResponder); - } else { - FLog.e( - TAG, "setJSResponder skipped, surface no longer available [" + surfaceId + "]"); + if (ReactFeatureFlags.enableJSResponder) { + addMountItem( + new MountItem() { + @Override + public void execute(MountingManager mountingManager) { + SurfaceMountingManager surfaceMountingManager = + mountingManager.getSurfaceManager(surfaceId); + if (surfaceMountingManager != null) { + surfaceMountingManager.setJSResponder( + reactTag, initialReactTag, blockNativeResponder); + } else { + FLog.e( + TAG, "setJSResponder skipped, surface no longer available [" + surfaceId + "]"); + } } - } - @Override - public int getSurfaceId() { - return surfaceId; - } - }); + @Override + public int getSurfaceId() { + return surfaceId; + } + }); + } } /** @@ -1136,18 +1138,20 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { */ @DoNotStrip public void clearJSResponder() { - addMountItem( - new MountItem() { - @Override - public void execute(MountingManager mountingManager) { - mountingManager.clearJSResponder(); - } + if (ReactFeatureFlags.enableJSResponder) { + addMountItem( + new MountItem() { + @Override + public void execute(MountingManager mountingManager) { + mountingManager.clearJSResponder(); + } - @Override - public int getSurfaceId() { - return View.NO_ID; - } - }); + @Override + public int getSurfaceId() { + return View.NO_ID; + } + }); + } } @Override