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