From 825d5776214eade2f3ef297b2058adfd82267611 Mon Sep 17 00:00:00 2001 From: zh-m Date: Wed, 30 Nov 2016 15:01:03 +0200 Subject: [PATCH 1/2] Background of the buttons inside dialog can be modified through global style in CSS --- tns-core-modules/ui/dialogs/dialogs-common.ts | 12 ++++++++++++ tns-core-modules/ui/dialogs/dialogs.android.ts | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tns-core-modules/ui/dialogs/dialogs-common.ts b/tns-core-modules/ui/dialogs/dialogs-common.ts index ea01f1546..fbf106cbb 100644 --- a/tns-core-modules/ui/dialogs/dialogs-common.ts +++ b/tns-core-modules/ui/dialogs/dialogs-common.ts @@ -60,6 +60,18 @@ export function getButtonColor(): color.Color { return buttonColor; } +var buttonBackgroundColor: color.Color; +export function getButtonBackgroundColor(): color.Color { + if (!buttonBackgroundColor) { + var btn = new button.Button(); + applySelectors(btn); + buttonBackgroundColor = btn.backgroundColor; + btn.onUnloaded(); + } + + return buttonBackgroundColor; +} + var textFieldColor: color.Color; export function getTextFieldColor(): color.Color { if (!textFieldColor) { diff --git a/tns-core-modules/ui/dialogs/dialogs.android.ts b/tns-core-modules/ui/dialogs/dialogs.android.ts index 083d5c15a..619168bf6 100644 --- a/tns-core-modules/ui/dialogs/dialogs.android.ts +++ b/tns-core-modules/ui/dialogs/dialogs.android.ts @@ -41,15 +41,22 @@ function showDialog(builder: android.app.AlertDialog.Builder) { } let buttonColor = dialogsCommon.getButtonColor(); - if (buttonColor) { + let buttonBackgroundColor = dialogsCommon.getButtonBackgroundColor(); + if (buttonColor || buttonBackgroundColor) { let buttons : android.widget.Button[] = []; for (let i = 0; i < 3; i++) { let id = dlg.getContext().getResources().getIdentifier("android:id/button" + i, null, null); buttons[i] = dlg.findViewById(id); } + buttons.forEach(button => { if (button) { - button.setTextColor(buttonColor.android); + if (buttonColor) { + button.setTextColor(buttonColor.android); + } + if (buttonBackgroundColor) { + button.setBackgroundColor(buttonBackgroundColor.android); + } } }); } From 35c48b30e6354987e0cbe0d81a5198bbbc6e4cdc Mon Sep 17 00:00:00 2001 From: zh-m Date: Wed, 30 Nov 2016 15:25:09 +0200 Subject: [PATCH 2/2] UI test for setting bckg and color of buttons inside dialogs --- apps/app/ui-tests-app/issues/issue-3211.css | 4 ++++ apps/app/ui-tests-app/issues/issue-3211.ts | 12 ++++++++++++ apps/app/ui-tests-app/issues/issue-3211.xml | 5 +++++ apps/app/ui-tests-app/issues/main-page.ts | 1 + 4 files changed, 22 insertions(+) create mode 100644 apps/app/ui-tests-app/issues/issue-3211.css create mode 100644 apps/app/ui-tests-app/issues/issue-3211.ts create mode 100644 apps/app/ui-tests-app/issues/issue-3211.xml diff --git a/apps/app/ui-tests-app/issues/issue-3211.css b/apps/app/ui-tests-app/issues/issue-3211.css new file mode 100644 index 000000000..6c3e69e3c --- /dev/null +++ b/apps/app/ui-tests-app/issues/issue-3211.css @@ -0,0 +1,4 @@ +Button { + background-color: yellow; + color: cyan; +} \ No newline at end of file diff --git a/apps/app/ui-tests-app/issues/issue-3211.ts b/apps/app/ui-tests-app/issues/issue-3211.ts new file mode 100644 index 000000000..4c850a633 --- /dev/null +++ b/apps/app/ui-tests-app/issues/issue-3211.ts @@ -0,0 +1,12 @@ +import { alert } from "ui/dialogs"; + +export function onTap() { + var options = { + title: "Race selection", + message: "Race chosen: Unicorn", + okButtonText: "OK" + }; + alert(options).then(() => { + console.log("Race chosen!"); + }); +} \ No newline at end of file diff --git a/apps/app/ui-tests-app/issues/issue-3211.xml b/apps/app/ui-tests-app/issues/issue-3211.xml new file mode 100644 index 000000000..8619b6354 --- /dev/null +++ b/apps/app/ui-tests-app/issues/issue-3211.xml @@ -0,0 +1,5 @@ + + +