Refactor HomeAssistantNumericPicker to improve value parsing and initialization

This commit is contained in:
poaudet
2026-02-28 16:50:28 -05:00
parent 7daa07f52f
commit adc04ea9a2
2 changed files with 17 additions and 15 deletions

1
.gitignore vendored
View File

@@ -7,3 +7,4 @@ Thumbs.db
source/ClientId.mc source/ClientId.mc
# Gemini API key for automated translations # Gemini API key for automated translations
gemini_api_key.txt gemini_api_key.txt
developer_key

View File

@@ -32,28 +32,29 @@ class HomeAssistantNumericPicker extends WatchUi.Picker {
) { ) {
mItem = haItem; mItem = haItem;
var picker = mItem.getPicker(); var picker = mItem.getPicker();
var min = (picker.get("min") as Lang.String).toFloat(); var minStr = picker.get("min");
var step = (picker.get("step") as Lang.String).toFloat(); var stepStr = picker.get("step");
var val = haItem.getValue(); var val = haItem.getValue();
if (min == null) { var min = 0.0;
min = 0.0; var step = 1.0;
if (minStr != null) {
min = (minStr as Lang.String).toFloat();
} }
if (step == null) { if (stepStr != null) {
step = 1.0; step = (stepStr as Lang.String).toFloat();
} }
WatchUi.Picker.initialize( WatchUi.Picker.initialize({
new WatchUi.Text({ :title => new WatchUi.Text({
:text => haItem.getLabel(), :text => haItem.getLabel(),
:locX => WatchUi.LAYOUT_HALIGN_CENTER, :locX => WatchUi.LAYOUT_HALIGN_CENTER,
:locY => WatchUi.LAYOUT_VALIGN_BOTTOM :locY => WatchUi.LAYOUT_VALIGN_BOTTOM
}), }),
[factory], :pattern => [factory],
{ :defaults => [((val - min) / step).toNumber()]
:defaults => [((val - min) / step).toNumber()] });
}
);
} }
//! Called when the user has completed picking. //! Called when the user has completed picking.
@@ -97,4 +98,4 @@ class HomeAssistantNumericPickerDelegate extends WatchUi.PickerDelegate {
mPicker.onConfirm(values[0]); mPicker.onConfirm(values[0]);
return true; return true;
} }
} }