mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-05-03 14:12:32 +00:00
Auto close confirmation dialog after timeout
This commit is contained in:
@ -22,9 +22,9 @@ using Toybox.Lang;
|
|||||||
// Required for callback method definition
|
// Required for callback method definition
|
||||||
typedef Method as Toybox.Lang.Method;
|
typedef Method as Toybox.Lang.Method;
|
||||||
using Toybox.WatchUi;
|
using Toybox.WatchUi;
|
||||||
|
using Toybox.Timer;
|
||||||
|
|
||||||
class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm));
|
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm));
|
||||||
}
|
}
|
||||||
@ -33,17 +33,26 @@ class HomeAssistantConfirmation extends WatchUi.Confirmation {
|
|||||||
|
|
||||||
class HomeAssistantConfirmationDelegate extends WatchUi.ConfirmationDelegate {
|
class HomeAssistantConfirmationDelegate extends WatchUi.ConfirmationDelegate {
|
||||||
private var confirmMethod;
|
private var confirmMethod;
|
||||||
|
private var timeout;
|
||||||
|
|
||||||
function initialize(callback as Method() as Void) {
|
function initialize(callback as Method() as Void) {
|
||||||
WatchUi.ConfirmationDelegate.initialize();
|
WatchUi.ConfirmationDelegate.initialize();
|
||||||
confirmMethod = callback;
|
confirmMethod = callback;
|
||||||
|
timeout = new Timer.Timer();
|
||||||
|
timeout.start(method(:onTimeout), 3000, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onResponse(response) as Lang.Boolean {
|
function onResponse(response) as Lang.Boolean {
|
||||||
getApp().getQuitTimer().reset();
|
getApp().getQuitTimer().reset();
|
||||||
|
timeout.stop();
|
||||||
if (response == WatchUi.CONFIRM_YES) {
|
if (response == WatchUi.CONFIRM_YES) {
|
||||||
confirmMethod.invoke();
|
confirmMethod.invoke();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onTimeout() as Void {
|
||||||
|
timeout.stop();
|
||||||
|
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user