From b592c863efdb87a783d65fee7044f4e9e0f75b2d Mon Sep 17 00:00:00 2001 From: Emily Janzer Date: Thu, 30 Jan 2020 18:32:03 -0800 Subject: [PATCH] Migrate ReactTextInputManager to be bridgeless Summary: Migrate ReactTextinputManager to support bridgeless mode by accessing the EventDispatcher through the UIManagerHelper instead of from ReactContext. Reviewed By: mdvacca Differential Revision: D19614184 fbshipit-source-id: 5dd4945223d10785f8fe171e06d6f7ef42f9d834 --- .../react/uimanager/UIManagerHelper.java | 5 +++-- .../textinput/ReactTextInputManager.java | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java index c21ad088c85..c034e06830b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java @@ -17,6 +17,7 @@ import androidx.annotation.Nullable; import com.facebook.react.bridge.CatalystInstance; import com.facebook.react.bridge.JSIModuleType; import com.facebook.react.bridge.ReactContext; +import com.facebook.react.bridge.ReactNoCrashSoftException; import com.facebook.react.bridge.ReactSoftException; import com.facebook.react.bridge.UIManager; import com.facebook.react.uimanager.common.UIManagerType; @@ -48,7 +49,7 @@ public class UIManagerHelper { if (!context.hasCatalystInstance()) { ReactSoftException.logSoftException( "UIManagerHelper", - new IllegalStateException( + new ReactNoCrashSoftException( "Cannot get UIManager because the context doesn't contain a CatalystInstance.")); return null; } @@ -57,7 +58,7 @@ public class UIManagerHelper { if (!context.hasActiveCatalystInstance()) { ReactSoftException.logSoftException( "UIManagerHelper", - new IllegalStateException( + new ReactNoCrashSoftException( "Cannot get UIManager because the context doesn't contain an active CatalystInstance.")); if (returnNullIfCatalystIsInactive) { return null; diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index 2e3bcf41507..37134e1994e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -50,6 +50,7 @@ import com.facebook.react.uimanager.ReactStylesDiffMap; import com.facebook.react.uimanager.Spacing; import com.facebook.react.uimanager.StateWrapper; import com.facebook.react.uimanager.ThemedReactContext; +import com.facebook.react.uimanager.UIManagerHelper; import com.facebook.react.uimanager.UIManagerModule; import com.facebook.react.uimanager.ViewDefaults; import com.facebook.react.uimanager.ViewProps; @@ -848,6 +849,11 @@ public class ReactTextInputManager extends BaseViewManager Prevent default behaviour (return true). // Additionally we always generate a `submit` event. - EventDispatcher eventDispatcher = - reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher(); - + EventDispatcher eventDispatcher = getEventDispatcher(reactContext, editText); eventDispatcher.dispatchEvent( new ReactTextInputSubmitEditingEvent( editText.getId(), editText.getText().toString())); @@ -1111,7 +1114,7 @@ public class ReactTextInputManager extends BaseViewManager