mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
Feature: New Dialog-Prompt-Input-Type for E-Mails (#3905)
* #3118 Feature: New Dialog-Prompt-Input-Type for E-Mails * Forgot to change a comment Changed Password to Email in a comment.
This commit is contained in:

committed by
Hristo Hristov

parent
59e34f0bfc
commit
979c2fe850
@ -25,6 +25,11 @@ export module inputType {
|
||||
* Password input type.
|
||||
*/
|
||||
export const password: string = "password";
|
||||
|
||||
/**
|
||||
* Email input type.
|
||||
*/
|
||||
export const email: string = "email";
|
||||
}
|
||||
|
||||
let frame: typeof frameModule;
|
||||
|
@ -179,8 +179,12 @@ export function prompt(arg: any): Promise<PromptResult> {
|
||||
|
||||
const input = new android.widget.EditText(androidApp.foregroundActivity);
|
||||
|
||||
if (options && options.inputType === inputType.password) {
|
||||
input.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
if (options) {
|
||||
if (options.inputType === inputType.password) {
|
||||
input.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
} else if (options.inputType === inputType.email) {
|
||||
input.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
}
|
||||
}
|
||||
|
||||
input.setText(options && options.defaultText || "");
|
||||
|
7
tns-core-modules/ui/dialogs/dialogs.d.ts
vendored
7
tns-core-modules/ui/dialogs/dialogs.d.ts
vendored
@ -14,6 +14,11 @@ export module inputType {
|
||||
* Password input type.
|
||||
*/
|
||||
export var password: string;
|
||||
|
||||
/**
|
||||
* Email input type.
|
||||
*/
|
||||
export var email: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -167,7 +172,7 @@ export interface PromptOptions extends ConfirmOptions {
|
||||
defaultText?: string;
|
||||
|
||||
/**
|
||||
* Gets or sets the prompt input type (plain text or password).
|
||||
* Gets or sets the prompt input type (plain text, password, or email).
|
||||
*/
|
||||
inputType?: string;
|
||||
}
|
||||
|
@ -240,6 +240,10 @@ export function prompt(arg: any): Promise<PromptResult> {
|
||||
textField = alert.textFieldAtIndex(0);
|
||||
textField.text = isString(options.defaultText) ? options.defaultText : "";
|
||||
|
||||
if (options.inputType === inputType.email) {
|
||||
textField.keyboardType = UIKeyboardType.EmailAddress;
|
||||
}
|
||||
|
||||
// Assign first to local letiable, otherwise it will be garbage collected since delegate is weak reference.
|
||||
let delegate = UIAlertViewDelegateImpl.initWithCallback(function (view, index) {
|
||||
resolve({ result: getDialogResult(alert.tag, index), text: textField.text });
|
||||
@ -257,6 +261,10 @@ export function prompt(arg: any): Promise<PromptResult> {
|
||||
arg.text = isString(options.defaultText) ? options.defaultText : "";
|
||||
arg.secureTextEntry = options && options.inputType === inputType.password;
|
||||
|
||||
if (options && options.inputType === inputType.email) {
|
||||
arg.keyboardType = UIKeyboardType.EmailAddress;
|
||||
}
|
||||
|
||||
let color = getTextFieldColor();
|
||||
if (color) {
|
||||
arg.textColor = arg.tintColor = color.ios;
|
||||
|
Reference in New Issue
Block a user