forked from firka/flutter
Disable auto-correct for text editing when obscureText is set (flutter/engine#3661)
This commit is contained in:
@@ -73,21 +73,24 @@ public class TextInputPlugin implements MethodCallHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private static int inputTypeFromTextInputType(String inputType) {
|
||||
private static int inputTypeFromTextInputType(String inputType, boolean obscureText) {
|
||||
if (inputType.equals("TextInputType.datetime"))
|
||||
return InputType.TYPE_CLASS_DATETIME;
|
||||
if (inputType.equals("TextInputType.number"))
|
||||
return InputType.TYPE_CLASS_NUMBER;
|
||||
if (inputType.equals("TextInputType.phone"))
|
||||
return InputType.TYPE_CLASS_PHONE;
|
||||
return InputType.TYPE_CLASS_TEXT;
|
||||
return obscureText
|
||||
? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
|
||||
: InputType.TYPE_CLASS_TEXT;
|
||||
}
|
||||
|
||||
public InputConnection createInputConnection(FlutterView view, EditorInfo outAttrs)
|
||||
throws JSONException {
|
||||
if (mClient == 0)
|
||||
return null;
|
||||
outAttrs.inputType = inputTypeFromTextInputType(mConfiguration.getString("inputType"));
|
||||
outAttrs.inputType = inputTypeFromTextInputType(mConfiguration.getString("inputType"),
|
||||
mConfiguration.optBoolean("obscureText"));
|
||||
outAttrs.actionLabel = mConfiguration.getString("actionLabel");
|
||||
outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_FULLSCREEN;
|
||||
InputConnectionAdaptor connection = new InputConnectionAdaptor(view, mClient, this,
|
||||
|
||||
@@ -548,6 +548,7 @@ static UIKeyboardType ToUIKeyboardType(NSString* inputType) {
|
||||
|
||||
- (void)setTextInputClient:(int)client withConfiguration:(NSDictionary*)configuration {
|
||||
_view.keyboardType = ToUIKeyboardType(configuration[@"inputType"]);
|
||||
_view.secureTextEntry = [configuration[@"obscureText"] boolValue];
|
||||
[_view setTextInputClient:client];
|
||||
[_view reloadInputViews];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user