From 470ace0932bab425348304928a83a9b92ccb7cf2 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 2 Aug 2019 16:34:58 -0700 Subject: [PATCH] Expose JSResponderHandler API in Fabric UIManager Summary: This diff adds the new API required to implment JSResponderHandler in FabricUIManager The new API differs from the old API, but since setJSResponder is called ONLY from JS it's not necessary to have this method as part of UIManager interface. Reviewed By: JoshuaGross Differential Revision: D16543440 fbshipit-source-id: ca4bd4c1e4df706cda0eb16798e01f3350558d06 --- .../java/com/facebook/react/bridge/UIManager.java | 4 ---- .../com/facebook/react/fabric/FabricUIManager.java | 13 ++++++++++--- .../facebook/react/uimanager/UIManagerModule.java | 2 -- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java index 782dea3355d..b1c51c6ed73 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java @@ -43,10 +43,6 @@ public interface UIManager extends JSIModule, PerformanceCounter { */ void dispatchCommand(int reactTag, String commandId, @Nullable ReadableArray commandArgs); - void setJSResponder(int reactTag, boolean blockNativeResponder); - - void clearJSResponder(); - /** * Used by native animated module to bypass the process of updating the values through the shadow * view hierarchy. This method will directly update native views, which means that updates for 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 68ee00ea153..ffadb30b357 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -559,12 +559,19 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { } } - @Override - public void setJSResponder(int reactTag, boolean blockNativeResponder) { + /** + * Set the JS responder for the view associated with the tags received as a parameter. + * + * @param reactTag React tag of the first parent of the view that is NOT virtual + * @param initialReactTag React tag of the JS view that initiated the touch operation + * @param blockNativeResponder If native responder should be blocked or not + */ + @DoNotStrip + public void setJSResponder( + final int reactTag, final int initialReactTag, final boolean blockNativeResponder) { // do nothing for now. } - @Override public void clearJSResponder() { // do nothing for now. } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java index 80958d0c710..1668f11d019 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java @@ -650,13 +650,11 @@ public class UIManagerModule extends ReactContextBaseJavaModule mUIImplementation.viewIsDescendantOf(reactTag, ancestorReactTag, callback); } - @Override @ReactMethod public void setJSResponder(int reactTag, boolean blockNativeResponder) { mUIImplementation.setJSResponder(reactTag, blockNativeResponder); } - @Override @ReactMethod public void clearJSResponder() { mUIImplementation.clearJSResponder();