diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index 1755d00..4223337 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -34,7 +34,7 @@ class HomeAssistantApp extends Application.AppBase { private var mGlanceTimer as Timer.Timer or Null; private var mUpdateTimer as Timer.Timer or Null; // Array initialised by onReturnFetchMenuConfig() - private var mItemsToUpdate as Lang.Array or Null; + private var mItemsToUpdate as Lang.Array or Null; private var mIsGlance as Lang.Boolean = false; private var mIsApp as Lang.Boolean = false; // Or Widget private var mUpdating as Lang.Boolean = false; // Don't start a second chain of updates diff --git a/source/HomeAssistantMenuItemFactory.mc b/source/HomeAssistantMenuItemFactory.mc index d9313ea..e522820 100644 --- a/source/HomeAssistantMenuItemFactory.mc +++ b/source/HomeAssistantMenuItemFactory.mc @@ -94,16 +94,29 @@ class HomeAssistantMenuItemFactory { data.put("entity_id", entity); } } - return new HomeAssistantTapMenuItem( - label, - template, - service, - confirm, - data, - mTapTypeIcon, - mMenuItemOptions, - mHomeAssistantService - ); + if (service != null) { + return new HomeAssistantTapMenuItem( + label, + template, + service, + confirm, + data, + mTapTypeIcon, + mMenuItemOptions, + mHomeAssistantService + ); + } else { + return new HomeAssistantTapMenuItem( + label, + template, + service, + confirm, + data, + mInfoTypeIcon, + mMenuItemOptions, + mHomeAssistantService + ); + } } function group( diff --git a/source/HomeAssistantTapMenuItem.mc b/source/HomeAssistantTapMenuItem.mc index 8dffbba..17f861b 100644 --- a/source/HomeAssistantTapMenuItem.mc +++ b/source/HomeAssistantTapMenuItem.mc @@ -56,6 +56,10 @@ class HomeAssistantTapMenuItem extends WatchUi.IconMenuItem { mData = data; } + function hasTemplate() as Lang.Boolean { + return mTemplate != null; + } + function buildTemplate() as Lang.String or Null { return mTemplate; } diff --git a/source/HomeAssistantView.mc b/source/HomeAssistantView.mc index e19049e..3107552 100644 --- a/source/HomeAssistantView.mc +++ b/source/HomeAssistantView.mc @@ -73,7 +73,7 @@ class HomeAssistantView extends WatchUi.Menu2 { } } - function getItemsToUpdate() as Lang.Array { + function getItemsToUpdate() as Lang.Array { var fullList = []; var lmi = mItems as Lang.Array; @@ -88,8 +88,11 @@ class HomeAssistantView extends WatchUi.Menu2 { fullList.addAll(item.getMenuView().getItemsToUpdate()); } else if (item instanceof HomeAssistantToggleMenuItem) { fullList.add(item); - } else if (item instanceof HomeAssistantTemplateMenuItem) { - fullList.add(item); + } else if (item instanceof HomeAssistantTapMenuItem) { + var tmi = item as HomeAssistantTapMenuItem; + if (tmi.hasTemplate()) { + fullList.add(item); + } } } @@ -149,10 +152,6 @@ class HomeAssistantViewDelegate extends WatchUi.Menu2InputDelegate { var haItem = item as HomeAssistantTapMenuItem; // System.println(haItem.getLabel() + " " + haItem.getId()); haItem.callService(); - } else if (item instanceof HomeAssistantTemplateMenuItem) { - var haItem = item as HomeAssistantTemplateMenuItem; - // System.println(haItem.getLabel() + " " + haItem.getId()); - haItem.callService(); } else if (item instanceof HomeAssistantGroupMenuItem) { var haMenuItem = item as HomeAssistantGroupMenuItem; // System.println("IconMenu: " + haMenuItem.getLabel() + " " + haMenuItem.getId());