mirror of
https://github.com/status-im/react-native.git
synced 2025-02-25 15:45:32 +00:00
Add number-pad keyboardType
Summary: On Android there's no number-pad but numeric instead, for my use-case I need number only (without decimal and sign, for PIN input) I write it so there's no breaking change for those already using the `TextInput` Component None [ANDROID][ENHANCEMENT][Component] Add number-pad keyboardType Closes https://github.com/facebook/react-native/pull/18350 Reviewed By: achen1 Differential Revision: D7269721 Pulled By: mdvacca fbshipit-source-id: 82571dce948e0cf2e4354dc46c69198ec69ba65a
This commit is contained in:
parent
28c9c68cfa
commit
c595509048
@ -244,6 +244,7 @@ const TextInput = createReactClass({
|
||||
*
|
||||
* - `default`
|
||||
* - `numeric`
|
||||
* - `number-pad`
|
||||
* - `email-address`
|
||||
* - `phone-pad`
|
||||
*
|
||||
@ -254,7 +255,6 @@ const TextInput = createReactClass({
|
||||
* - `ascii-capable`
|
||||
* - `numbers-and-punctuation`
|
||||
* - `url`
|
||||
* - `number-pad`
|
||||
* - `name-phone-pad`
|
||||
* - `decimal-pad`
|
||||
* - `twitter`
|
||||
@ -272,11 +272,11 @@ const TextInput = createReactClass({
|
||||
'email-address',
|
||||
'numeric',
|
||||
'phone-pad',
|
||||
'number-pad',
|
||||
// iOS-only
|
||||
'ascii-capable',
|
||||
'numbers-and-punctuation',
|
||||
'url',
|
||||
'number-pad',
|
||||
'name-phone-pad',
|
||||
'decimal-pad',
|
||||
'twitter',
|
||||
|
@ -68,8 +68,9 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
private static final int FOCUS_TEXT_INPUT = 1;
|
||||
private static final int BLUR_TEXT_INPUT = 2;
|
||||
|
||||
private static final int INPUT_TYPE_KEYBOARD_NUMBERED =
|
||||
InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL |
|
||||
private static final int INPUT_TYPE_KEYBOARD_NUMBER_PAD = InputType.TYPE_CLASS_NUMBER;
|
||||
private static final int INPUT_TYPE_KEYBOARD_NUMBERED = INPUT_TYPE_KEYBOARD_NUMBER_PAD |
|
||||
InputType.TYPE_NUMBER_FLAG_DECIMAL |
|
||||
InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||
private static final int PASSWORD_VISIBILITY_FLAG = InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD &
|
||||
~InputType.TYPE_TEXT_VARIATION_PASSWORD;
|
||||
@ -80,6 +81,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
|
||||
private static final String KEYBOARD_TYPE_EMAIL_ADDRESS = "email-address";
|
||||
private static final String KEYBOARD_TYPE_NUMERIC = "numeric";
|
||||
private static final String KEYBOARD_TYPE_NUMBER_PAD = "number-pad";
|
||||
private static final String KEYBOARD_TYPE_PHONE_PAD = "phone-pad";
|
||||
private static final String KEYBOARD_TYPE_VISIBLE_PASSWORD = "visible-password";
|
||||
private static final InputFilter[] EMPTY_FILTERS = new InputFilter[0];
|
||||
@ -557,6 +559,8 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
int flagsToSet = InputType.TYPE_CLASS_TEXT;
|
||||
if (KEYBOARD_TYPE_NUMERIC.equalsIgnoreCase(keyboardType)) {
|
||||
flagsToSet = INPUT_TYPE_KEYBOARD_NUMBERED;
|
||||
} else if (KEYBOARD_TYPE_NUMBER_PAD.equalsIgnoreCase(keyboardType)) {
|
||||
flagsToSet = INPUT_TYPE_KEYBOARD_NUMBER_PAD;
|
||||
} else if (KEYBOARD_TYPE_EMAIL_ADDRESS.equalsIgnoreCase(keyboardType)) {
|
||||
flagsToSet = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS | InputType.TYPE_CLASS_TEXT;
|
||||
} else if (KEYBOARD_TYPE_PHONE_PAD.equalsIgnoreCase(keyboardType)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user