From bbd9119a0716342ce02057102e98cedba1633cae Mon Sep 17 00:00:00 2001 From: Philip Abbey Date: Wed, 28 Aug 2024 23:01:28 +0100 Subject: [PATCH] Update HomeAssistantToggleMenuItem.mc Prevent multiple toggles for initiating one action. Only set the state when the called service returns with the confirmed value. --- source/HomeAssistantToggleMenuItem.mc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/HomeAssistantToggleMenuItem.mc b/source/HomeAssistantToggleMenuItem.mc index caee2c0..dd89092 100644 --- a/source/HomeAssistantToggleMenuItem.mc +++ b/source/HomeAssistantToggleMenuItem.mc @@ -164,15 +164,14 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { } function setState(s as Lang.Boolean) as Void { + // Toggle the UI back, we'll wait for confirmation from the Home Assistant + setEnabled(!isEnabled()); if (! System.getDeviceSettings().phoneConnected) { // System.println("HomeAssistantToggleMenuItem getState(): No Phone connection, skipping API call."); - // Toggle the UI back - setEnabled(!isEnabled()); ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoPhone) as Lang.String + "."); } else if (! System.getDeviceSettings().connectionAvailable) { // System.println("HomeAssistantToggleMenuItem getState(): No Internet connection, skipping API call."); // Toggle the UI back - setEnabled(!isEnabled()); ErrorView.show(WatchUi.loadResource($.Rez.Strings.NoInternet) as Lang.String + "."); } else { // Updated SDK and got a new error