BangleApps/apps/widsleepstatus/widget.js

50 lines
1.5 KiB
JavaScript
Raw Normal View History

(function() {
if (!sleeplog) return;
2022-11-15 10:59:46 +00:00
const SETTINGS_FILE = 'widsleepstatus.json';
let settings;
2022-11-15 10:59:46 +00:00
function loadSettings() {
settings = require('Storage').readJSON(SETTINGS_FILE, 1) || {};
const DEFAULTS = {
'hidewhenawake': true
};
Object.keys(DEFAULTS).forEach(k => {
if (settings[k] === undefined) settings[k] = DEFAULTS[k];
2022-11-15 10:59:46 +00:00
});
}
loadSettings();
2022-11-15 10:59:46 +00:00
WIDGETS.sleepstatus = {
area: "tr",
width: 0,
draw: function(w) {
let status = sleeplog.status || 0;
if (w.width != (status >= 2 ? 24 : 0)){
w.width = status >= 2 ? 24 : 0;
return Bangle.drawWidgets();
}
g.reset();
switch (status) {
case 0:
case 1:
break;
case 2: // awake
2022-11-16 11:03:50 +00:00
if (settings && !settings["hidewhenawake"]) g.drawImage(atob("GBiBAAAAAAAAAAAMAAA+AAAjAAEjMAGyYAGeYAzAwB5/gB4/AB4jAB4jAB4jAB4jAB//+Bv/+Bg2GB+2+B+2eB42eAAAAAAAAAAAAA=="), w.x, w.y);
break;
case 3: // light sleep
2022-11-16 11:03:50 +00:00
g.drawImage(atob("GBiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAGAAAGAAAGAAAGcf/Ge//GWwBGewBmcwBn///mAABmAABmAABgAAAAAAAAAAAA=="), w.x, w.y);
break;
case 4: // deep sleep
2022-11-16 11:03:50 +00:00
g.drawImage(atob("GBiBAAAAAAAAAAAB4APw4APxwADh8AHAAAOAAGPwAGAAAGAAAGAAAGcf/Ge//GWwBGewBmcwBn///mAABmAABmAABgAAAAAAAAAAAA=="), w.x, w.y);
break;
}
2022-11-15 10:59:46 +00:00
}
};
setInterval(()=>{
WIDGETS.sleepstatus.draw(WIDGETS.sleepstatus);
}, 60000);
2022-11-16 11:03:50 +00:00
2022-11-15 10:59:46 +00:00
Bangle.drawWidgets();
})()