diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index ee0e321..902ffb3 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -32,7 +32,7 @@ class HomeAssistantApp extends Application.AppBase { private var mHaMenu as HomeAssistantView or Null; private var mQuitTimer as QuitTimer or Null; private var mTimer as Timer.Timer or Null; - private var mItemsToUpdate as Lang.Array or Null; // Array initialised by onReturnFetchMenuConfig() + private var mItemsToUpdate as Lang.Array or Null; // Array initialised by onReturnFetchMenuConfig() private var mNextItemToUpdate as Lang.Number = 0; // Index into the above array private var mIsGlance as Lang.Boolean = false; private var mIsApp as Lang.Boolean = false; // Or Widget diff --git a/source/HomeAssistantView.mc b/source/HomeAssistantView.mc index 6103493..1a65c98 100644 --- a/source/HomeAssistantView.mc +++ b/source/HomeAssistantView.mc @@ -25,9 +25,6 @@ using Toybox.System; using Toybox.WatchUi; class HomeAssistantView extends WatchUi.Menu2 { - // List of items that need to have their status updated periodically - private var mListToggleItems = []; - private var mListMenuItems = []; function initialize( definition as Lang.Dictionary, @@ -65,36 +62,34 @@ class HomeAssistantView extends WatchUi.Menu2 { } if (type != null && name != null) { if (type.equals("toggle") && entity != null) { - var item = HomeAssistantMenuItemFactory.create().toggle(name, entity); - addItem(item); - mListToggleItems.add(item); + addItem(HomeAssistantMenuItemFactory.create().toggle(name, entity)); } else if (type.equals("template") && content != null) { - var item = HomeAssistantMenuItemFactory.create().template(name, entity, content, service, confirm); - addItem(item); - mListToggleItems.add(item); + addItem(HomeAssistantMenuItemFactory.create().template(name, entity, content, service, confirm)); } else if (type.equals("tap") && entity != null && service != null) { addItem(HomeAssistantMenuItemFactory.create().tap(name, entity, service, confirm)); } else if (type.equals("group")) { - var item = HomeAssistantMenuItemFactory.create().group(items[i]); - addItem(item); - mListMenuItems.add(item); + addItem(HomeAssistantMenuItemFactory.create().group(items[i])); } } } } - function getItemsToUpdate() as Lang.Array { + function getItemsToUpdate() as Lang.Array { var fullList = []; - var lmi = mListMenuItems as Lang.Array; - for(var i = 0; i < mListMenuItems.size(); i++) { + var lmi = mItems as Lang.Array; + for(var i = 0; i < mItems.size(); i++) { var item = lmi[i]; if (item instanceof HomeAssistantViewMenuItem) { fullList.addAll(item.getMenuView().getItemsToUpdate()); + } else if (item instanceof HomeAssistantToggleMenuItem) { + fullList.add(item); + } else if (item instanceof HomeAssistantTemplateMenuItem) { + fullList.add(item); } } - return fullList.addAll(mListToggleItems); + return fullList; } // Called when this View is brought to the foreground. Restore