Initial code for user supplied confirmation messages

This commit is contained in:
Philip Abbey
2025-10-30 17:50:04 +00:00
parent 0d3c76ef2e
commit fc0320aef6
9 changed files with 41 additions and 15 deletions

View File

@@ -24,10 +24,13 @@ class HomeAssistantConfirmation extends WatchUi.Confirmation {
//! Class Constructor
//
function initialize() {
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm) as Lang.String);
function initialize(message as Lang.String?) {
if (message == null) {
WatchUi.Confirmation.initialize(WatchUi.loadResource($.Rez.Strings.Confirm) as Lang.String);
} else {
WatchUi.Confirmation.initialize(message);
}
}
}
//! Delegate to respond to the confirmation request.

View File

@@ -23,7 +23,7 @@ using Toybox.Graphics;
class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
private var mHomeAssistantService as HomeAssistantService?;
private var mService as Lang.String?;
private var mConfirm as Lang.Boolean;
private var mConfirm as Lang.Boolean or Lang.String or Null;
private var mExit as Lang.Boolean;
private var mPin as Lang.Boolean;
private var mData as Lang.Dictionary?;
@@ -127,7 +127,12 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
WatchUi.SLIDE_LEFT
);
} else {
var view = new HomeAssistantConfirmation();
var view;
if (mConfirm instanceof Lang.String) {
view = new HomeAssistantConfirmation(mConfirm as Lang.String?);
} else {
view = new HomeAssistantConfirmation(null);
}
WatchUi.pushView(
view,
new HomeAssistantConfirmationDelegate({

View File

@@ -22,7 +22,7 @@ using Toybox.Graphics;
class HomeAssistantTapMenuItem extends HomeAssistantMenuItem {
private var mHomeAssistantService as HomeAssistantService;
private var mService as Lang.String?;
private var mConfirm as Lang.Boolean;
private var mConfirm as Lang.Boolean or Lang.String or Null;
private var mExit as Lang.Boolean;
private var mPin as Lang.Boolean;
private var mData as Lang.Dictionary?;
@@ -95,8 +95,7 @@ class HomeAssistantTapMenuItem extends HomeAssistantMenuItem {
if ((! System.getDeviceSettings().phoneConnected ||
! System.getDeviceSettings().connectionAvailable) &&
Settings.getWifiLteExecutionEnabled()) {
var dialogMsg = WatchUi.loadResource($.Rez.Strings.WifiLtePrompt) as Lang.String;
var dialog = new WatchUi.Confirmation(dialogMsg);
var dialog = new WatchUi.Confirmation(WatchUi.loadResource($.Rez.Strings.WifiLtePrompt) as Lang.String);
WatchUi.pushView(
dialog,
new WifiLteExecutionConfirmDelegate({
@@ -108,7 +107,12 @@ class HomeAssistantTapMenuItem extends HomeAssistantMenuItem {
WatchUi.SLIDE_LEFT
);
} else {
var view = new HomeAssistantConfirmation();
var view;
if (mConfirm instanceof Lang.String) {
view = new HomeAssistantConfirmation(mConfirm as Lang.String?);
} else {
view = new HomeAssistantConfirmation(null);
}
WatchUi.pushView(
view,
new HomeAssistantConfirmationDelegate({

View File

@@ -25,7 +25,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
private var mData as Lang.Dictionary;
private var mTemplate as Lang.String?;
private var mExit as Lang.Boolean;
private var mConfirm as Lang.Boolean;
private var mConfirm as Lang.Boolean or Lang.String or Null;
private var mPin as Lang.Boolean;
private var mHasVibrate as Lang.Boolean = false;
@@ -324,7 +324,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem {
Settings.getWifiLteExecutionEnabled()) {
wifiPrompt(b);
} else {
var confirmationView = new HomeAssistantConfirmation();
var confirmationView;
if (mConfirm instanceof Lang.String) {
confirmationView = new HomeAssistantConfirmation(mConfirm as Lang.String?);
} else {
confirmationView = new HomeAssistantConfirmation(null);
}
WatchUi.pushView(
confirmationView,
new HomeAssistantConfirmationDelegate({

View File

@@ -48,7 +48,7 @@ class HomeAssistantView extends WatchUi.Menu2 {
var entity = items[i].get("entity") as Lang.String?;
var tap_action = items[i].get("tap_action") as Lang.Dictionary?;
var service = items[i].get("service") as Lang.String?; // Deprecated schema
var confirm = false as Lang.Boolean?;
var confirm = false as Lang.Boolean or Lang.String or Null;
var pin = false as Lang.Boolean?;
var data = null as Lang.Dictionary?;
var enabled = true as Lang.Boolean?;