From d1e2c9435eae8ee3aa0c21e4cc37f32630f16cef Mon Sep 17 00:00:00 2001 From: David Vacca Date: Mon, 3 Feb 2020 21:03:11 -0800 Subject: [PATCH] Extend RN Android text input to support customizable emojis Summary: This diff refactors RN Android text input to support customizable emojis. changelog: [internal] Reviewed By: JoshuaGross Differential Revision: D19679392 fbshipit-source-id: b673e3a59f876ff9a822c2f32c9db4ff4efe007b --- .../react/views/textinput/ReactTextInputManager.java | 11 ++++++++++- .../views/textinput/ReactTextInputShadowNode.java | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) 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 641d9685dc7..4e33e95cb77 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 @@ -61,7 +61,9 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper; import com.facebook.react.views.scroll.ScrollEvent; import com.facebook.react.views.scroll.ScrollEventType; import com.facebook.react.views.text.DefaultStyleValuesUtil; +import com.facebook.react.views.text.ReactBaseTextShadowNode; import com.facebook.react.views.text.ReactTextUpdate; +import com.facebook.react.views.text.ReactTextViewManagerCallback; import com.facebook.react.views.text.TextAttributeProps; import com.facebook.react.views.text.TextInlineImageSpan; import com.facebook.react.views.text.TextLayoutManager; @@ -113,6 +115,8 @@ public class ReactTextInputManager extends BaseViewManager getShadowNodeClass() { return ReactTextInputShadowNode.class; diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java index f722bf6a163..a9c3ff91d82 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.java @@ -25,6 +25,7 @@ import com.facebook.react.uimanager.UIViewOperationQueue; import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.views.text.ReactBaseTextShadowNode; import com.facebook.react.views.text.ReactTextUpdate; +import com.facebook.react.views.text.ReactTextViewManagerCallback; import com.facebook.react.views.view.MeasureUtil; import com.facebook.yoga.YogaMeasureFunction; import com.facebook.yoga.YogaMeasureMode; @@ -50,7 +51,9 @@ public class ReactTextInputShadowNode extends ReactBaseTextShadowNode private int mSelectionStart = UNSET; private int mSelectionEnd = UNSET; - public ReactTextInputShadowNode() { + public ReactTextInputShadowNode( + @Nullable ReactTextViewManagerCallback reactTextViewManagerCallback) { + super(reactTextViewManagerCallback); mTextBreakStrategy = (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) ? Layout.BREAK_STRATEGY_SIMPLE @@ -59,6 +62,10 @@ public class ReactTextInputShadowNode extends ReactBaseTextShadowNode initMeasureFunction(); } + public ReactTextInputShadowNode() { + this(null); + } + private void initMeasureFunction() { setMeasureFunction(this); }