mirror of https://github.com/espruino/BangleApps
Update widget.js
* Load settings only once * Better icons * Read sleep status on every drawpull/2283/head
parent
668a099df0
commit
a8ad6d94a1
|
@ -1,38 +1,49 @@
|
|||
(function(){
|
||||
if (!sleeplog) return; // sleeplog not installed
|
||||
|
||||
(function() {
|
||||
if (!sleeplog) return;
|
||||
const SETTINGS_FILE = 'widsleepstatus.json';
|
||||
let settings;
|
||||
|
||||
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];
|
||||
Object.keys(DEFAULTS).forEach(k => {
|
||||
if (settings[k] === undefined) settings[k] = DEFAULTS[k];
|
||||
});
|
||||
}
|
||||
loadSettings();
|
||||
|
||||
const status = sleeplog.status || 0;
|
||||
WIDGETS["sleepstatus"]={area:"tr",width:status >= 2 ? 24 : 0,draw:function(w) {
|
||||
g.reset();
|
||||
// Icons from https://icons8.com/icon/set/household/small
|
||||
switch (status) {
|
||||
case 0: // unknown
|
||||
case 1: // not worn
|
||||
// No icon here. Width is set to 0
|
||||
break;
|
||||
case 2: // awake
|
||||
loadSettings();
|
||||
if (settings && !settings["hidewhenawake"]) g.drawImage(atob("GBjBAP//AAAAAAAAAAAADAAAPgAAIwABIzABsmABnmAMwMAef4AePwAeIwAeIwAeIwAeIwAf//gb//gYNhgftvgftngeNngAAAAAAAAAAAA="), w.x, w.y);
|
||||
break;
|
||||
case 3: // light sleep
|
||||
g.drawImage(atob("GBjBAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAABgAABgAABgAABnH/xnv/xlsARnsAZnMAZ///5gAAZgAAZgAAYAAAAAAAAAAAA="), w.x, w.y);
|
||||
break;
|
||||
case 4: // deep sleep
|
||||
g.drawImage(atob("GBjBAP//AAAAAAAAAAAAAeAD8OAD8cAA4fABwAADgABj8ABgAABgAABgAABnH/xnv/xlsARnsAZnMAZ///5gAAZgAAZgAAYAAAAAAAAAAAA="), w.x, w.y);
|
||||
break;
|
||||
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
|
||||
if (settings && !settings["hidewhenawake"]) g.drawImage(atob("GBiBAf////////////j///h///p///h//////5///5h//5h//5J//5JgA5JAA5tP+5vP+ZjP+YAAAZ//+Z//+Z//+f///////////w=="), w.x, w.y);
|
||||
break;
|
||||
case 3: // light sleep
|
||||
g.drawImage(atob("GBiBAf///////////////////////////////5///5///5///5///5jgA5hAA5pP+5hP+ZjP+YAAAZ//+Z//+Z//+f///////////w=="), w.x, w.y);
|
||||
break;
|
||||
case 4: // deep sleep
|
||||
g.drawImage(atob("GBiBAf/////////+H/wPH/wOP/8eD/4///x//5wP/5///5///5///5jgA5hAA5pP+5hP+ZjP+YAAAZ//+Z//+Z//+f///////////w=="), w.x, w.y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}};
|
||||
};
|
||||
|
||||
setInterval(()=>{
|
||||
WIDGETS.sleepstatus.draw(WIDGETS.sleepstatus);
|
||||
}, 60000);
|
||||
|
||||
Bangle.drawWidgets();
|
||||
})()
|
||||
|
|
Loading…
Reference in New Issue