mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Android TextInput now supports strings for autoCapitalize
Summary: Similar to D15909582, this change makes the Android TextInput take strings for the value of autoCapitalize and not just numbers. As we are going to stop sending view configs from native and instead hardcode them in JS we can't do that anymore. In this commit we are supporting the old style as well as the new style. Changelog: [Android] [Internal] - Supporting autoCapitalize as string to clean up internal TextInput.js file Reviewed By: mdvacca Differential Revision: D15911323 fbshipit-source-id: b236fdb314489cc1ef33f9214ff2d6b0e28b7310
This commit is contained in:
committed by
Facebook Github Bot
parent
173a5cc222
commit
38d974e6a2
+25
-2
@@ -28,10 +28,12 @@ import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.TextView;
|
||||
import com.facebook.common.logging.FLog;
|
||||
import com.facebook.infer.annotation.Assertions;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.UIManager;
|
||||
import com.facebook.react.common.MapBuilder;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
@@ -640,13 +642,34 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
checkPasswordType(view);
|
||||
}
|
||||
|
||||
// This prop temporarily takes both numbers and strings.
|
||||
// Number values are deprecated and will be removed in a future release.
|
||||
// See T46146267
|
||||
@ReactProp(name = "autoCapitalize")
|
||||
public void setAutoCapitalize(ReactEditText view, int autoCapitalize) {
|
||||
public void setAutoCapitalize(ReactEditText view, Dynamic autoCapitalize) {
|
||||
int autoCapitalizeValue = InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
|
||||
|
||||
if (autoCapitalize.getType() == ReadableType.Number) {
|
||||
autoCapitalizeValue = autoCapitalize.asInt();
|
||||
} else if (autoCapitalize.getType() == ReadableType.String) {
|
||||
final String autoCapitalizeStr = autoCapitalize.asString();
|
||||
|
||||
if (autoCapitalizeStr.equals("none")) {
|
||||
autoCapitalizeValue = 0;
|
||||
} else if (autoCapitalizeStr.equals("characters")) {
|
||||
autoCapitalizeValue = InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS;
|
||||
} else if (autoCapitalizeStr.equals("words")) {
|
||||
autoCapitalizeValue = InputType.TYPE_TEXT_FLAG_CAP_WORDS;
|
||||
} else if (autoCapitalizeStr.equals("sentences")) {
|
||||
autoCapitalizeValue = InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
|
||||
}
|
||||
}
|
||||
|
||||
updateStagedInputTypeFlag(
|
||||
view,
|
||||
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_CAP_WORDS |
|
||||
InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS,
|
||||
autoCapitalize);
|
||||
autoCapitalizeValue);
|
||||
}
|
||||
|
||||
@ReactProp(name = "keyboardType")
|
||||
|
||||
Reference in New Issue
Block a user