diff --git a/apps/app/ui-tests-app/dialogs/dialogs.xml b/apps/app/ui-tests-app/dialogs/dialogs.xml
index b8a68129de..0ada85f9b6 100644
--- a/apps/app/ui-tests-app/dialogs/dialogs.xml
+++ b/apps/app/ui-tests-app/dialogs/dialogs.xml
@@ -7,7 +7,9 @@
-
+
+
+
diff --git a/apps/app/ui-tests-app/dialogs/view-model.ts b/apps/app/ui-tests-app/dialogs/view-model.ts
index 2d5e81646b..3982752008 100644
--- a/apps/app/ui-tests-app/dialogs/view-model.ts
+++ b/apps/app/ui-tests-app/dialogs/view-model.ts
@@ -138,6 +138,46 @@ export class SettingsViewModel extends observable.Observable {
});
}
+ public promptNumber(args: observable.EventData) {
+ dialogs.prompt({
+ title: "Name",
+ message: "Enter a number:",
+ cancelButtonText: "Cancel",
+ neutralButtonText: "Ignore",
+ okButtonText: "OK",
+ defaultText: "1234",
+ inputType: dialogs.inputType.number
+ }).then((promptResult) => {
+ console.log("### Result: " + promptResult.result + ", Text: " + promptResult.text);
+ if (promptResult.result) {
+ this.set("name", promptResult.text);
+ }
+ else {
+ this.set("name", "1234");
+ }
+ });
+ }
+
+ public promptPhone(args: observable.EventData) {
+ dialogs.prompt({
+ title: "Name",
+ message: "Enter a phone:",
+ cancelButtonText: "Cancel",
+ neutralButtonText: "Ignore",
+ okButtonText: "OK",
+ defaultText: "1234",
+ inputType: dialogs.inputType.phone
+ }).then((promptResult) => {
+ console.log("### Result: " + promptResult.result + ", Text: " + promptResult.text);
+ if (promptResult.result) {
+ this.set("name", promptResult.text);
+ }
+ else {
+ this.set("name", "1234");
+ }
+ });
+ }
+
public promptCapitalizationNone(args: observable.EventData) {
dialogs.prompt({
title: "Name",
diff --git a/tns-core-modules/ui/dialogs/dialogs-common.ts b/tns-core-modules/ui/dialogs/dialogs-common.ts
index 441c6a3661..84847036af 100644
--- a/tns-core-modules/ui/dialogs/dialogs-common.ts
+++ b/tns-core-modules/ui/dialogs/dialogs-common.ts
@@ -31,6 +31,16 @@ export module inputType {
* Email input type.
*/
export const email: string = "email";
+
+ /**
+ * Number input type
+ */
+ export const number: string = "number";
+
+ /**
+ * Phone input type
+ */
+ export const phone: string = "phone";
}
/**
diff --git a/tns-core-modules/ui/dialogs/dialogs.android.ts b/tns-core-modules/ui/dialogs/dialogs.android.ts
index 7d6c81d33e..adf18020d1 100644
--- a/tns-core-modules/ui/dialogs/dialogs.android.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.android.ts
@@ -184,6 +184,10 @@ export function prompt(arg: any): Promise {
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);
+ } else if (options.inputType === inputType.number) {
+ input.setInputType(android.text.InputType.TYPE_CLASS_NUMBER);
+ } else if (options.inputType === inputType.phone) {
+ input.setInputType(android.text.InputType.TYPE_CLASS_PHONE);
}
switch (options.capitalizationType) {
diff --git a/tns-core-modules/ui/dialogs/dialogs.d.ts b/tns-core-modules/ui/dialogs/dialogs.d.ts
index 9921f8761d..0c2a685215 100644
--- a/tns-core-modules/ui/dialogs/dialogs.d.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.d.ts
@@ -21,6 +21,16 @@ export module inputType {
* Email input type.
*/
export var email: string;
+
+ /**
+ * Number input type.
+ */
+ export var number: string;
+
+ /**
+ * Phone input type.
+ */
+ export var phone: string;
}
/**
@@ -81,7 +91,7 @@ export function prompt(message: string, defaultText?: string): Promise;
@@ -95,7 +105,7 @@ export function login(message: string, userName?: string, password?: string): Pr
/**
* The login() method displays a login dialog box that prompts the visitor for user name and password.
- * @param options The options for the dialog box.
+ * @param options The options for the dialog box.
*/
export function login(options: LoginOptions): Promise;
@@ -109,7 +119,7 @@ export function action(message: string, cancelButtonText: string, actions: Array
/**
* The action() method displays a action box that prompts the visitor to choose some action.
- * @param options The options for the dialog box.
+ * @param options The options for the dialog box.
*/
export function action(options: ActionOptions): Promise;
diff --git a/tns-core-modules/ui/dialogs/dialogs.ios.ts b/tns-core-modules/ui/dialogs/dialogs.ios.ts
index bf748c09d5..39e9bad005 100644
--- a/tns-core-modules/ui/dialogs/dialogs.ios.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.ios.ts
@@ -104,6 +104,10 @@ export function prompt(arg: any): Promise {
if (options && options.inputType === inputType.email) {
arg.keyboardType = UIKeyboardType.EmailAddress;
+ } else if (options && options.inputType === inputType.number) {
+ arg.keyboardType = UIKeyboardType.NumberPad;
+ } else if (options && options.inputType === inputType.phone) {
+ arg.keyboardType = UIKeyboardType.PhonePad;
}
let color = getTextFieldColor();