diff --git a/apps/app/ui-tests-app/dialogs/dialogs.xml b/apps/app/ui-tests-app/dialogs/dialogs.xml
deleted file mode 100644
index 0ada85f9b..000000000
--- a/apps/app/ui-tests-app/dialogs/dialogs.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/dialogs/main-page-common.css b/apps/app/ui-tests-app/dialogs/main-page-common.css
new file mode 100644
index 000000000..0f5aad7d3
--- /dev/null
+++ b/apps/app/ui-tests-app/dialogs/main-page-common.css
@@ -0,0 +1,13 @@
+Button.even, Button.odd {
+ border-radius: 5;
+ color: white;
+ margin: 0 5 5 0;
+}
+
+Button.even {
+ background-color: #0000cc;
+}
+
+Button.odd {
+ background-color: #33cc33;
+}
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/dialogs/main-page.android.css b/apps/app/ui-tests-app/dialogs/main-page.android.css
new file mode 100644
index 000000000..cad413532
--- /dev/null
+++ b/apps/app/ui-tests-app/dialogs/main-page.android.css
@@ -0,0 +1,7 @@
+@import './main-page-common.css';
+
+Button.even, Button.odd {
+ height: 25;
+ font-size: 10;
+ padding: 0;
+}
diff --git a/apps/app/ui-tests-app/dialogs/main-page.ios.css b/apps/app/ui-tests-app/dialogs/main-page.ios.css
new file mode 100644
index 000000000..8b1a08b8c
--- /dev/null
+++ b/apps/app/ui-tests-app/dialogs/main-page.ios.css
@@ -0,0 +1,5 @@
+@import './main-page-common.css';
+
+Button.even, Button.odd {
+ padding: 5;
+}
diff --git a/apps/app/ui-tests-app/dialogs/dialogs.ts b/apps/app/ui-tests-app/dialogs/main-page.ts
similarity index 100%
rename from apps/app/ui-tests-app/dialogs/dialogs.ts
rename to apps/app/ui-tests-app/dialogs/main-page.ts
diff --git a/apps/app/ui-tests-app/dialogs/main-page.xml b/apps/app/ui-tests-app/dialogs/main-page.xml
new file mode 100644
index 000000000..555336908
--- /dev/null
+++ b/apps/app/ui-tests-app/dialogs/main-page.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/app/ui-tests-app/dialogs/view-model.ts b/apps/app/ui-tests-app/dialogs/view-model.ts
index 398275200..f496bc7c8 100644
--- a/apps/app/ui-tests-app/dialogs/view-model.ts
+++ b/apps/app/ui-tests-app/dialogs/view-model.ts
@@ -121,11 +121,11 @@ export class SettingsViewModel extends observable.Observable {
public promptEmail(args: observable.EventData) {
dialogs.prompt({
title: "Name",
- message: "Enter name:",
+ message: "Enter email:",
cancelButtonText: "Cancel",
neutralButtonText: "Ignore",
okButtonText: "OK",
- defaultText: "John Reese",
+ defaultText: "john.reese@nativescript.org",
inputType: dialogs.inputType.email
}).then((promptResult) => {
console.log("### Result: " + promptResult.result + ", Text: " + promptResult.text);
@@ -158,6 +158,26 @@ export class SettingsViewModel extends observable.Observable {
});
}
+ public promptDecimal(args: observable.EventData) {
+ dialogs.prompt({
+ title: "Name",
+ message: "Enter a decimal number:",
+ cancelButtonText: "Cancel",
+ neutralButtonText: "Ignore",
+ okButtonText: "OK",
+ defaultText: "13.50",
+ inputType: dialogs.inputType.decimal
+ }).then((promptResult) => {
+ console.log("### Result: " + promptResult.result + ", Text: " + promptResult.text);
+ if (promptResult.result) {
+ this.set("name", promptResult.text);
+ }
+ else {
+ this.set("name", "13.50");
+ }
+ });
+ }
+
public promptPhone(args: observable.EventData) {
dialogs.prompt({
title: "Name",
diff --git a/apps/app/ui-tests-app/main-page.ts b/apps/app/ui-tests-app/main-page.ts
index 1fd62f2a5..2e6c4fd49 100644
--- a/apps/app/ui-tests-app/main-page.ts
+++ b/apps/app/ui-tests-app/main-page.ts
@@ -12,7 +12,7 @@ export function pageLoaded(args: EventData) {
examples.set("bindings", "bindings/main-page");
examples.set("button", "button/main-page");
examples.set("css", "css/main-page");
- examples.set("dialogs", "dialogs/dialogs");
+ examples.set("dialogs", "dialogs/main-page");
examples.set("events", "events/main-page");
examples.set("fonts", "font/main-page");
examples.set("flexbox", "flexbox/flexbox-main-page");
diff --git a/tns-core-modules/ui/dialogs/dialogs-common.ts b/tns-core-modules/ui/dialogs/dialogs-common.ts
index f654efabd..04a0fc829 100644
--- a/tns-core-modules/ui/dialogs/dialogs-common.ts
+++ b/tns-core-modules/ui/dialogs/dialogs-common.ts
@@ -39,6 +39,11 @@ export module inputType {
*/
export const number: string = "number";
+ /**
+ * Decimal input type
+ */
+ export const decimal: string = "decimal";
+
/**
* Phone input type
*/
diff --git a/tns-core-modules/ui/dialogs/dialogs.android.ts b/tns-core-modules/ui/dialogs/dialogs.android.ts
index e3edb838e..3b6968878 100644
--- a/tns-core-modules/ui/dialogs/dialogs.android.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.android.ts
@@ -185,7 +185,9 @@ export function prompt(arg: any): Promise {
} 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);
+ input.setInputType(android.text.InputType.TYPE_CLASS_NUMBER);
+ } else if (options.inputType === inputType.decimal) {
+ input.setInputType(android.text.InputType.TYPE_CLASS_NUMBER | android.text.InputType.TYPE_NUMBER_FLAG_DECIMAL);
} else if (options.inputType === inputType.phone) {
input.setInputType(android.text.InputType.TYPE_CLASS_PHONE);
}
diff --git a/tns-core-modules/ui/dialogs/dialogs.d.ts b/tns-core-modules/ui/dialogs/dialogs.d.ts
index 5c0a80c43..2b24c73cb 100644
--- a/tns-core-modules/ui/dialogs/dialogs.d.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.d.ts
@@ -27,6 +27,11 @@ export module inputType {
*/
export var number: string;
+ /**
+ * Decimal input type.
+ */
+ export var decimal: string;
+
/**
* Phone input type.
*/
diff --git a/tns-core-modules/ui/dialogs/dialogs.ios.ts b/tns-core-modules/ui/dialogs/dialogs.ios.ts
index 91a6cbc5f..e95364b3f 100644
--- a/tns-core-modules/ui/dialogs/dialogs.ios.ts
+++ b/tns-core-modules/ui/dialogs/dialogs.ios.ts
@@ -106,6 +106,8 @@ export function prompt(arg: any): Promise {
arg.keyboardType = UIKeyboardType.EmailAddress;
} else if (options && options.inputType === inputType.number) {
arg.keyboardType = UIKeyboardType.NumberPad;
+ } else if (options && options.inputType === inputType.decimal) {
+ arg.keyboardType = UIKeyboardType.DecimalPad;
} else if (options && options.inputType === inputType.phone) {
arg.keyboardType = UIKeyboardType.PhonePad;
}