mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
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
This commit is contained in:
committed by
Facebook Github Bot
parent
86d1153586
commit
d1e2c9435e
+10
-1
@@ -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<ReactEditText, Layout
|
||||
private static final InputFilter[] EMPTY_FILTERS = new InputFilter[0];
|
||||
private static final int UNSET = -1;
|
||||
|
||||
protected @Nullable ReactTextViewManagerCallback mReactTextViewManagerCallback;
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return REACT_CLASS;
|
||||
@@ -128,10 +132,15 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
}
|
||||
|
||||
@Override
|
||||
public LayoutShadowNode createShadowNodeInstance() {
|
||||
public ReactBaseTextShadowNode createShadowNodeInstance() {
|
||||
return new ReactTextInputShadowNode();
|
||||
}
|
||||
|
||||
public ReactBaseTextShadowNode createShadowNodeInstance(
|
||||
@Nullable ReactTextViewManagerCallback reactTextViewManagerCallback) {
|
||||
return new ReactTextInputShadowNode(reactTextViewManagerCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends LayoutShadowNode> getShadowNodeClass() {
|
||||
return ReactTextInputShadowNode.class;
|
||||
|
||||
+8
-1
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user