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