Fixed crash when value was int instead of float

This commit is contained in:
thmichel
2025-10-16 13:34:39 +02:00
parent b34291e41f
commit 4348c899ae
3 changed files with 9 additions and 3 deletions

View File

@@ -154,7 +154,13 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
} else if(data instanceof Lang.Float) {
var f = data as Lang.Float;
setSubLabel(f.format(mFormatString));
} else {
} else if(data instanceof Lang.Number) {
var f = data.toFloat() as Lang.Float;
setSubLabel(f.format(mFormatString));
} else if (data instanceof Lang.String){
setSubLabel(data);
}
else {
// The template must return a Float, or the item cannot be formatted locally without error.
setSubLabel(WatchUi.loadResource($.Rez.Strings.TemplateError) as Lang.String);
}

View File

@@ -275,7 +275,7 @@ class HomeAssistantViewDelegate extends WatchUi.Menu2InputDelegate {
var mPickerFactory = new HomeAssistantNumericFactory(haItem.getData());
var mPicker = new HomeAssistantNumericPicker(mPickerFactory,haItem);//{:pattern => [mPickerFactory});
var mPicker = new HomeAssistantNumericPicker(mPickerFactory,haItem);
var mPickerDelegate = new HomeAssistantNumericPickerDelegate(mPicker);
WatchUi.pushView(mPicker,mPickerDelegate,WatchUi.SLIDE_LEFT);
} else if (item instanceof HomeAssistantGroupMenuItem) {

View File

@@ -65,7 +65,7 @@ class HomeAssistantNumericFactory extends WatchUi.PickerFactory {
public function getDrawable(index as Number, selected as Boolean) as Drawable? {
var value = getValue(index);
var text = "No item";
if (value instanceof Float) {
if (value instanceof Lang.Float) {
text = value.format(mFormatString);
}
return new WatchUi.Text({:text=>text, :color=>Graphics.COLOR_WHITE,