I know, I saw it and now it returns what is expected. But:
{"available": true, "enabled": true, "checked": true}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}: triggered 2x
{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": true}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}: triggered 2x
{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": true}{"available": true, "enabled": true, "checked": false}: triggered 2x
{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": false}{"available": true, "enabled": true, "checked": true}: triggered 2x
Why is is triggering 2x when 1x.checked is false?
Code:
async function someJavaScriptFunction() {
let triggerItem = async (menubarPath) => {
await trigger_action({
json: JSON.stringify({
"BTTPredefinedActionType": 124,
"BTTMenubarPath": menubarPath,
}), wait_for_reply: false
});
}
let isChecked = async (path) => {
let status = await get_menu_item_details(path);
let parsed = JSON.parse(status);
return parsed.checked === true;
}
let statusString = async (path) => {
return await get_menu_item_details(path);
}
var statusStrings = await statusString("View;Magnification;1x");
statusStrings += await statusString("View;Magnification;2x");
statusStrings += await statusString("View;Magnification;4x");
statusStrings += await statusString("View;Magnification;8x");
if (isChecked("View;Magnification;1x")) {
triggerItem("View;Magnification;2x");
statusStrings += ": triggered 2x";
} else if (isChecked("View;Magnification;2x")) {
triggerItem("View;Magnification;4x");
statusStrings += ": triggered 4x";
} else {
triggerItem("View;Magnification;8x");
statusStrings += ": triggered 8x";
}
alert(statusStrings);
return statusStrings;
}