From 1ea6e5897e58cbbd5874915405cf82d95792af88 Mon Sep 17 00:00:00 2001 From: Nathanael Anderson Date: Tue, 10 Nov 2015 21:34:31 -0600 Subject: [PATCH] This will now allow the dialog to call the resolve function when canceled by clicking outside of the dialog. --- ui/dialogs/dialogs.android.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ui/dialogs/dialogs.android.ts b/ui/dialogs/dialogs.android.ts index ef3dfcad4..a00082707 100644 --- a/ui/dialogs/dialogs.android.ts +++ b/ui/dialogs/dialogs.android.ts @@ -13,6 +13,9 @@ function createAlertDialog(options?: dialogs.DialogOptions): android.app.AlertDi var alert = new android.app.AlertDialog.Builder(appmodule.android.foregroundActivity); alert.setTitle(options && types.isString(options.title) ? options.title : ""); alert.setMessage(options && types.isString(options.message) ? options.message : ""); + if (options && (options.cancelable === false || options.cancelable === 0)) { + alert.setCancelable(false); + } return alert; } @@ -72,6 +75,11 @@ function addButtonsToAlertDialog(alert: android.app.AlertDialog.Builder, options } })); } + alert.setOnDismissListener(new android.content.DialogInterface.OnDismissListener({ + onDismiss: function() { + callback(false); + } + })); } export function alert(arg: any): Promise { @@ -87,6 +95,11 @@ export function alert(arg: any): Promise { resolve(); } })); + alert.setOnDismissListener(new android.content.DialogInterface.OnDismissListener({ + onDismiss: function() { + resolve(); + } + })); showDialog(alert); @@ -262,6 +275,9 @@ export function action(arg: any): Promise { var alert = new android.app.AlertDialog.Builder(activity); var message = options && types.isString(options.message) ? options.message : ""; var title = options && types.isString(options.title) ? options.title : ""; + if (options && (options.cancelable === false || options.cancelable === 0)) { + alert.setCancelable(false); + } if (title) { alert.setTitle(title); @@ -289,6 +305,17 @@ export function action(arg: any): Promise { } })); } + + alert.setOnDismissListener(new android.content.DialogInterface.OnDismissListener({ + onDismiss: function() { + if (types.isString(options.cancelButtonText)) { + resolve(options.cancelButtonText); + } else { + resolve(""); + } + } + })); + showDialog(alert); } catch (ex) {