BangleApps/apps/slpquiet/boot.js

53 lines
2.1 KiB
JavaScript
Raw Normal View History

2024-03-13 21:29:28 +00:00
// first ensure that the sleeplog trigger object is available (sleeplog is enabled)
if (typeof (global.sleeplog || {}).trigger === "object") {
// then add your parameters with the function to call as object into the trigger object
sleeplog.trigger["quietMode"] = {
2024-03-13 21:29:28 +00:00
onChange: true, // false as default, if true call fn only on a status change
from: 0, // 0 as default, in ms, first time fn will be called
// to: 24*60*60*1000, // 24h as default, in ms, last time fn will be called
to: 0,
2024-03-13 21:29:28 +00:00
// reference time to from & to is rounded to full minutes
fn: function (data, thisTriggerEntry) {
2024-03-16 11:28:43 +00:00
let aSettings = require('Storage').readJSON('quietSwitch.json', 1) || {};
2024-03-13 21:29:28 +00:00
const DEFAULTS = {
'quietWhenSleep': false,
'quietMode': 1
2024-03-13 21:29:28 +00:00
};
Object.keys(DEFAULTS).forEach(k => {
if (aSettings[k] === undefined) aSettings[k] = DEFAULTS[k];
2024-03-13 21:29:28 +00:00
});
if (aSettings && aSettings['quietWhenSleep']) {
console.log("the sleep status is: " + data.status);
2024-03-16 11:28:43 +00:00
let quietMode = aSettings['quietMode'];
2024-03-13 21:29:28 +00:00
delete aSettings;
if ((data.status === 3 || data.status === 4)
&& (data.prevStatus !== 3 && data.prevStatus !== 4)) {
let bSettings = require("Storage").readJSON('setting.json', true) || {};
2024-03-16 11:28:43 +00:00
let current = 0 | bSettings.quiet;
2024-03-13 21:29:28 +00:00
console.log("quiet mode is:" + current);
if (current !== quietMode) {
2024-03-13 21:29:28 +00:00
console.log("fallen asleep");
bSettings.quiet = quietMode;
2024-03-13 21:29:28 +00:00
require("Storage").writeJSON("setting.json", bSettings);
}
delete bSettings;
2024-03-13 21:29:28 +00:00
}
if ((data.status === 2 || data.status === 1)
&& (data.prevStatus !== 2 && data.prevStatus !== 1)) {
2024-03-16 11:28:43 +00:00
let bSettings = require("Storage").readJSON('setting.json', true) || {};
let current = 0 | bSettings.quiet;
2024-03-13 21:29:28 +00:00
console.log("quiet mode is:" + current);
if (current !== 0) {
2024-03-13 21:29:28 +00:00
console.log("woken up");
bSettings.quiet = 0;
require("Storage").writeJSON("setting.json", bSettings);
}
delete bSettings;
2024-03-13 21:29:28 +00:00
}
}
}
2024-03-13 21:29:28 +00:00
};
}