mirror of https://github.com/espruino/BangleApps
commit
86dedcaa43
|
@ -1 +1,4 @@
|
||||||
0.01: First version
|
0.01: First version
|
||||||
|
0.02: Load settings only once
|
||||||
|
Better icons
|
||||||
|
Read sleep status on every draw
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "widsleepstatus",
|
"id": "widsleepstatus",
|
||||||
"name": "Sleep Status Widget",
|
"name": "Sleep Status Widget",
|
||||||
"version": "0.01",
|
"version": "0.02",
|
||||||
"description": "Shows current status of sleep from sleeplog app.",
|
"description": "Shows current status of sleep from sleeplog app.",
|
||||||
"icon": "widget.png",
|
"icon": "widget.png",
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
|
|
|
@ -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("GBiBAAAAAAAAAAAMAAA+AAAjAAEjMAGyYAGeYAzAwB5/gB4/AB4jAB4jAB4jAB4jAB//+Bv/+Bg2GB+2+B+2eB42eAAAAAAAAAAAAA=="), 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("GBiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAGAAAGAAAGAAAGcf/Ge//GWwBGewBmcwBn///mAABmAABmAABgAAAAAAAAAAAA=="), 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("GBiBAAAAAAAAAAAB4APw4APxwADh8AHAAAOAAGPwAGAAAGAAAGAAAGcf/Ge//GWwBGewBmcwBn///mAABmAABmAABgAAAAAAAAAAAA=="), w.x, w.y);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}};
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
setInterval(()=>{
|
||||||
|
WIDGETS.sleepstatus.draw(WIDGETS.sleepstatus);
|
||||||
|
}, 60000);
|
||||||
|
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
})()
|
})()
|
||||||
|
|
Loading…
Reference in New Issue