mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix TextInput 'contextMenuHidden' prop (#45014)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45014 `TextInput`'s `contextMenuHidden` prop isn't working working as expected. It should hide the context menu (copy/paste/...) that pops up from input text. Reference: [Android doc](https://developer.android.com/reference/android/widget/TextView#setCustomSelectionActionModeCallback(android.view.ActionMode.Callback)) > Returning false from `ActionMode.Callback.onCreateActionMode(ActionMode, android.view.Menu)` will prevent the action mode from being started. **Changelog:** [Android][Fixed] - TextInput's `contextMenuHidden` prop bug fix Reviewed By: javache Differential Revision: D58684366 fbshipit-source-id: 328c267ed0e896a78e114578e3a00adf41f2e095
This commit is contained in:
committed by
Riccardo Cipolleschi
parent
e6ad652c6a
commit
08eed9f093
+8
@@ -119,6 +119,7 @@ public class ReactEditText extends AppCompatEditText {
|
||||
private int mFontWeight = UNSET;
|
||||
private int mFontStyle = UNSET;
|
||||
private boolean mAutoFocus = false;
|
||||
private boolean mContextMenuHidden = false;
|
||||
private boolean mDidAttachToWindow = false;
|
||||
private @Nullable String mPlaceholder = null;
|
||||
|
||||
@@ -192,6 +193,9 @@ public class ReactEditText extends AppCompatEditText {
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||
if (mContextMenuHidden) {
|
||||
return false;
|
||||
}
|
||||
menu.removeItem(android.R.id.pasteAsPlainText);
|
||||
return true;
|
||||
}
|
||||
@@ -1139,6 +1143,10 @@ public class ReactEditText extends AppCompatEditText {
|
||||
mAutoFocus = autoFocus;
|
||||
}
|
||||
|
||||
public void setContextMenuHidden(boolean contextMenuHidden) {
|
||||
mContextMenuHidden = contextMenuHidden;
|
||||
}
|
||||
|
||||
protected void applyTextAttributes() {
|
||||
// In general, the `getEffective*` functions return `Float.NaN` if the
|
||||
// property hasn't been set.
|
||||
|
||||
+27
-24
@@ -904,14 +904,15 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
}
|
||||
|
||||
@ReactPropGroup(
|
||||
names = {
|
||||
ViewProps.BORDER_RADIUS,
|
||||
ViewProps.BORDER_TOP_LEFT_RADIUS,
|
||||
ViewProps.BORDER_TOP_RIGHT_RADIUS,
|
||||
ViewProps.BORDER_BOTTOM_RIGHT_RADIUS,
|
||||
ViewProps.BORDER_BOTTOM_LEFT_RADIUS
|
||||
},
|
||||
defaultFloat = YogaConstants.UNDEFINED)
|
||||
names = {
|
||||
ViewProps.BORDER_RADIUS,
|
||||
ViewProps.BORDER_TOP_LEFT_RADIUS,
|
||||
ViewProps.BORDER_TOP_RIGHT_RADIUS,
|
||||
ViewProps.BORDER_BOTTOM_RIGHT_RADIUS,
|
||||
ViewProps.BORDER_BOTTOM_LEFT_RADIUS
|
||||
},
|
||||
defaultFloat = YogaConstants.UNDEFINED
|
||||
)
|
||||
public void setBorderRadius(ReactEditText view, int index, float borderRadius) {
|
||||
if (!YogaConstants.isUndefined(borderRadius)) {
|
||||
borderRadius = PixelUtil.toPixelFromDIP(borderRadius);
|
||||
@@ -954,14 +955,15 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
}
|
||||
|
||||
@ReactPropGroup(
|
||||
names = {
|
||||
ViewProps.BORDER_WIDTH,
|
||||
ViewProps.BORDER_LEFT_WIDTH,
|
||||
ViewProps.BORDER_RIGHT_WIDTH,
|
||||
ViewProps.BORDER_TOP_WIDTH,
|
||||
ViewProps.BORDER_BOTTOM_WIDTH,
|
||||
},
|
||||
defaultFloat = YogaConstants.UNDEFINED)
|
||||
names = {
|
||||
ViewProps.BORDER_WIDTH,
|
||||
ViewProps.BORDER_LEFT_WIDTH,
|
||||
ViewProps.BORDER_RIGHT_WIDTH,
|
||||
ViewProps.BORDER_TOP_WIDTH,
|
||||
ViewProps.BORDER_BOTTOM_WIDTH,
|
||||
},
|
||||
defaultFloat = YogaConstants.UNDEFINED
|
||||
)
|
||||
public void setBorderWidth(ReactEditText view, int index, float width) {
|
||||
if (!YogaConstants.isUndefined(width)) {
|
||||
width = PixelUtil.toPixelFromDIP(width);
|
||||
@@ -970,14 +972,15 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
}
|
||||
|
||||
@ReactPropGroup(
|
||||
names = {
|
||||
"borderColor",
|
||||
"borderLeftColor",
|
||||
"borderRightColor",
|
||||
"borderTopColor",
|
||||
"borderBottomColor"
|
||||
},
|
||||
customType = "Color")
|
||||
names = {
|
||||
"borderColor",
|
||||
"borderLeftColor",
|
||||
"borderRightColor",
|
||||
"borderTopColor",
|
||||
"borderBottomColor"
|
||||
},
|
||||
customType = "Color"
|
||||
)
|
||||
public void setBorderColor(ReactEditText view, int index, Integer color) {
|
||||
float rgbComponent =
|
||||
color == null ? YogaConstants.UNDEFINED : (float) ((int) color & 0x00FFFFFF);
|
||||
|
||||
Reference in New Issue
Block a user