mirror of
				https://github.com/house-of-abbey/GarminHomeAssistant.git
				synced 2025-10-30 23:38:15 +00:00 
			
		
		
		
	Using a picker object to configure the picker now, deriving display format from steps.
This commit is contained in:
		| @@ -630,7 +630,6 @@ class HomeAssistantApp extends Application.AppBase { | ||||
|                                 (item as HomeAssistantToggleMenuItem).updateToggleState(data[i.toString() + "t"]); | ||||
|                             } | ||||
|                             if (item instanceof HomeAssistantNumericMenuItem) { | ||||
|                                // (item as HomeAssistantNumericMenuItem).updateNumericState("22"); | ||||
|                                 (item as HomeAssistantNumericMenuItem).updateNumericState(data[i.toString() + "n"].toString()); | ||||
|                             } | ||||
|                         } | ||||
|   | ||||
| @@ -68,15 +68,6 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem { | ||||
|         mLabel                = label; | ||||
|         mHomeAssistantService = haService; | ||||
|  | ||||
|         var val = data.get("display_format"); | ||||
|         if (val != null) { | ||||
|             mFormatString = val.toString(); | ||||
|         }    | ||||
|         else { | ||||
|             mFormatString = "%.1f"; | ||||
|         } | ||||
|          | ||||
|  | ||||
|         HomeAssistantMenuItem.initialize( | ||||
|             label, | ||||
|             template, | ||||
| @@ -170,9 +161,13 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem { | ||||
|     function getNumericTemplate() as Lang.String? { | ||||
|         var entity_id = mData.get("entity_id"); | ||||
|         if (entity_id != null) { | ||||
|             return "{{state_attr('" + entity_id.toString() + "','" + mData.get("attribute").toString() +"')}}"; | ||||
|         } | ||||
|         return null; | ||||
|             if (mData.get("attribute")!=null) | ||||
|             { | ||||
|                 return "{{state_attr('" + entity_id.toString() + "','" + mData.get("attribute").toString() +"')}}"; | ||||
|             } | ||||
|             return ""; | ||||
|        } | ||||
|         return ""; | ||||
|     } | ||||
|  | ||||
|     function updateNumericState(data as Lang.String or Lang.Dictionary or Null) as Void { | ||||
| @@ -181,7 +176,6 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem { | ||||
|             return; | ||||
|         } else if(data instanceof Lang.String) { | ||||
|             mValue=data; | ||||
|  | ||||
|         } else { | ||||
|             // Catch possible error | ||||
|             mValue="0"; | ||||
|   | ||||
| @@ -47,6 +47,7 @@ class HomeAssistantView extends WatchUi.Menu2 { | ||||
|                 var content    = items[i].get("content")    as Lang.String?; | ||||
|                 var entity     = items[i].get("entity")     as Lang.String?; | ||||
|                 var tap_action = items[i].get("tap_action") as Lang.Dictionary?; | ||||
|                 var picker     = items[i].get("picker")     as Lang.Dictionary?; // optional for numeric items | ||||
|                 var service    = items[i].get("service")    as Lang.String?; // Deprecated schema | ||||
|                 var confirm    = false                      as Lang.Boolean?; | ||||
|                 var pin        = false                      as Lang.Boolean?; | ||||
| @@ -132,7 +133,7 @@ class HomeAssistantView extends WatchUi.Menu2 { | ||||
|                             entity, | ||||
|                             content, | ||||
|                             service, | ||||
|                             data, | ||||
|                             picker, | ||||
|                             { | ||||
|                                 :exit    => exit, | ||||
|                                 :confirm => confirm, | ||||
|   | ||||
| @@ -44,11 +44,15 @@ class HomeAssistantNumericFactory extends WatchUi.PickerFactory { | ||||
|         if (val != null) { | ||||
|             mStep = val.toString().toFloat(); | ||||
|         }  | ||||
|        val = data.get("display_format"); | ||||
|         if (val != null) { | ||||
|             mFormatString = val.toString(); | ||||
|         }  | ||||
|  | ||||
|         if (mStep < 0.01) { | ||||
|             mFormatString="%.3f"; | ||||
|         } else if (mStep < 0.1) { | ||||
|             mFormatString="%2f"; | ||||
|         } else if (mStep < 1) { | ||||
|             mFormatString="%.1f"; | ||||
|         } else { | ||||
|             mFormatString="%d"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     //! Get the index of a number item | ||||
|   | ||||
		Reference in New Issue
	
	Block a user