mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-11-13 04:28:14 +00:00
Fix for numeric menu items over Wi-Fi/LTE
Turns out the sync service will not run unless the picker has not only been popped but the display also updated.
This commit is contained in:
@@ -48,7 +48,7 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
|
|||||||
function initialize(
|
function initialize(
|
||||||
label as Lang.String or Lang.Symbol,
|
label as Lang.String or Lang.Symbol,
|
||||||
template as Lang.String,
|
template as Lang.String,
|
||||||
action as Lang.String?,
|
action as Lang.String?,
|
||||||
data as Lang.Dictionary?,
|
data as Lang.Dictionary?,
|
||||||
picker as Lang.Dictionary,
|
picker as Lang.Dictionary,
|
||||||
options as {
|
options as {
|
||||||
@@ -154,27 +154,25 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
|
|||||||
//! @param b Ignored. It is included in order to match the expected function prototype of the callback method.
|
//! @param b Ignored. It is included in order to match the expected function prototype of the callback method.
|
||||||
//
|
//
|
||||||
function onConfirm(b as Lang.Boolean) as Void {
|
function onConfirm(b as Lang.Boolean) as Void {
|
||||||
var dataAttribute = mPicker["data_attribute"];
|
var dataAttribute = mPicker["data_attribute"] as Lang.String?;
|
||||||
if (dataAttribute == null) {
|
var entity_id = mData["entity_id"] as Lang.String?;
|
||||||
//return without call action if no data attribute is set to avoid crash
|
|
||||||
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var entity_id = mData["entity_id"];
|
|
||||||
if (entity_id == null) {
|
|
||||||
//return without call action if no entity_id is set to avoid crash
|
|
||||||
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mHomeAssistantService.call(
|
|
||||||
mAction,
|
|
||||||
{
|
|
||||||
"entity_id" => entity_id.toString(),
|
|
||||||
dataAttribute.toString() => mValue
|
|
||||||
},
|
|
||||||
mExit
|
|
||||||
);
|
|
||||||
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
WatchUi.popView(WatchUi.SLIDE_RIGHT);
|
||||||
|
WatchUi.requestUpdate();
|
||||||
|
if (dataAttribute == null or entity_id == null) {
|
||||||
|
// Return without service call if no data attribute or entity ID is set to avoid crash.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mAction != null) {
|
||||||
|
mHomeAssistantService.call(
|
||||||
|
mAction,
|
||||||
|
{
|
||||||
|
"entity_id" => entity_id.toString(),
|
||||||
|
dataAttribute.toString() => mValue
|
||||||
|
},
|
||||||
|
mExit
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Return a numeric menu item's fetch state template.
|
//! Return a numeric menu item's fetch state template.
|
||||||
@@ -182,8 +180,9 @@ class HomeAssistantNumericMenuItem extends HomeAssistantMenuItem {
|
|||||||
//! @return A string with the menu item's template definition (or null).
|
//! @return A string with the menu item's template definition (or null).
|
||||||
//
|
//
|
||||||
function getNumericTemplate() as Lang.String? {
|
function getNumericTemplate() as Lang.String? {
|
||||||
var entity_id = mData["entity_id"];
|
var entity_id = mData["entity_id"] as Lang.String?;
|
||||||
var attribute = mPicker["attribute"] as Lang.String?;
|
var attribute = mPicker["attribute"] as Lang.String?;
|
||||||
|
|
||||||
if (entity_id == null) {
|
if (entity_id == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user