mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-12-15 18:48:14 +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