From d141c03104d582cd57d34f79663b01b592690717 Mon Sep 17 00:00:00 2001 From: Philip Abbey Date: Thu, 10 Jul 2025 19:46:04 +0100 Subject: [PATCH] Review comment Moved point of application exit for the menu item option. --- source/HomeAssistantService.mc | 19 ++++++++++++++++--- source/HomeAssistantTapMenuItem.mc | 5 +---- source/HomeAssistantToggleMenuItem.mc | 6 +++--- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/source/HomeAssistantService.mc b/source/HomeAssistantService.mc index 3cfc3b9..104f800 100644 --- a/source/HomeAssistantService.mc +++ b/source/HomeAssistantService.mc @@ -46,7 +46,13 @@ class HomeAssistantService { data as Null or Lang.Dictionary or Lang.String, context as Lang.Object ) as Void { - var entity_id = context as Lang.String or Null; + var c = context as Lang.Dictionary; + var entity_id; + var exit = false; + if (c != null) { + entity_id = c.get(:entity_id) as Lang.String; + exit = c.get(:exit) as Lang.Boolean; + } // System.println("HomeAssistantService onReturnCall() Response Code: " + responseCode); // System.println("HomeAssistantService onReturnCall() Response Data: " + data); @@ -102,6 +108,9 @@ class HomeAssistantService { :bgcolor => Graphics.COLOR_BLACK }).pushView(WatchUi.SLIDE_IMMEDIATE); } + if (exit) { + System.exit(); + } break; default: @@ -117,7 +126,8 @@ class HomeAssistantService { // function call( service as Lang.String, - data as Lang.Dictionary or Null + data as Lang.Dictionary or Null, + exit as Lang.Boolean ) as Void { if (! System.getDeviceSettings().phoneConnected) { // System.println("HomeAssistantService call(): No Phone connection, skipping API call."); @@ -149,7 +159,10 @@ class HomeAssistantService { "Authorization" => "Bearer " + Settings.getApiKey() }, :responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON, - :context => entity_id + :context => { + :entity_id => entity_id, + :exit => exit + } }, method(:onReturnCall) ); diff --git a/source/HomeAssistantTapMenuItem.mc b/source/HomeAssistantTapMenuItem.mc index fd79973..9553f73 100644 --- a/source/HomeAssistantTapMenuItem.mc +++ b/source/HomeAssistantTapMenuItem.mc @@ -106,10 +106,7 @@ class HomeAssistantTapMenuItem extends HomeAssistantMenuItem { // function onConfirm(b as Lang.Boolean) as Void { if (mService != null) { - mHomeAssistantService.call(mService, mData); - } - if (mExit) { - System.exit(); + mHomeAssistantService.call(mService, mData, mExit); } } diff --git a/source/HomeAssistantToggleMenuItem.mc b/source/HomeAssistantToggleMenuItem.mc index 443549c..9ddc347 100644 --- a/source/HomeAssistantToggleMenuItem.mc +++ b/source/HomeAssistantToggleMenuItem.mc @@ -215,6 +215,9 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { ErrorView.show(WatchUi.loadResource($.Rez.Strings.UnhandledHttpErr) as Lang.String + responseCode); } getApp().setApiStatus(status); + if (mExit) { + System.exit(); + } } //! Set the state of the toggle menu item. @@ -297,9 +300,6 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { // function onConfirm(b as Lang.Boolean) as Void { setState(b); - if (mExit) { - System.exit(); - } } }