mirror of https://github.com/espruino/BangleApps
widdevst: draw when peripherals are on
parent
2beb1c2997
commit
535335f065
|
@ -1,9 +1,10 @@
|
|||
(() => {
|
||||
var stat = {date: 0};
|
||||
var d = Date.now();
|
||||
|
||||
WIDGETS.devst = {area: "tr", width: 22, draw: function() {
|
||||
d = Date.now();
|
||||
if (WIDGETS.devst._draw) return;
|
||||
var d = Date.now();
|
||||
var t;
|
||||
if ((d - stat.date) < 6e4) {
|
||||
t = process.memory(false);
|
||||
|
@ -20,12 +21,15 @@
|
|||
g.clearRect(x, y, x + 21, y + 23);
|
||||
g.drawRect(x + 2, y + 1, x + 20, y + 21);
|
||||
g.setFont('6x8', 1);
|
||||
if (NRF.getSecurityStatus().connected) g.drawString('B', x + 5, y + 3);
|
||||
if (Bangle.isCompassOn()) g.drawString('C', x + 13, y + 3);
|
||||
if (Bangle.isGPSOn()) g.drawString('G', x + 5, y + 12);
|
||||
if (Bangle.isHRMOn()) g.drawString('H', x + 13, y + 12);
|
||||
var again = false;
|
||||
if (NRF.getSecurityStatus().connected) g.drawString('B', x + 5, y + 3), again = true;
|
||||
if (Bangle.isCompassOn()) g.drawString('C', x + 13, y + 3), again = true;
|
||||
if (Bangle.isGPSOn()) g.drawString('G', x + 5, y + 12), again = true;
|
||||
if (Bangle.isHRMOn()) g.drawString('H', x + 13, y + 12), again = true;
|
||||
g.setColor(col(stat.sto)); g.drawRect(x + 2, y + 21, x + 2 + stat.sto * 18, y + 22);
|
||||
g.setColor(col(t)); g.drawRect(x + 1, y + 21 - t * 20, x + 2, y + 21);
|
||||
// if there's nothing active, don't queue a redraw (rely on Bangle.on(...) below)
|
||||
if (again) setTimeout(draw, drawTime());
|
||||
}};
|
||||
|
||||
function col(p) {
|
||||
|
@ -33,18 +37,13 @@
|
|||
}
|
||||
|
||||
var draw = WIDGETS.devst.draw.bind(WIDGETS.devst);
|
||||
var iid = setInterval(draw, Bangle.isLocked() ? 6e4 : 2e3);
|
||||
|
||||
Bangle.on('lcdPower', (on) => {
|
||||
if (on) {
|
||||
draw();
|
||||
if (!iid) iid = setInterval(draw, Bangle.isLocked() ? 6e4 : 2e3);
|
||||
} else if (iid) iid = clearInterval(iid);
|
||||
});
|
||||
Bangle.on('lock', (on) => {
|
||||
if (iid) {
|
||||
clearInterval(iid);
|
||||
iid = setInterval(draw, on ? 6e4 : 2e3);
|
||||
}
|
||||
});
|
||||
var drawTime = () => Bangle.isLocked() ? 6e4 : 2e3;
|
||||
var throttledDraw = () => Date.now() - d > drawTime() && draw();
|
||||
|
||||
Bangle.on("HRM", throttledDraw);
|
||||
Bangle.on("GPS", throttledDraw);
|
||||
Bangle.on("mag", throttledDraw);
|
||||
NRF.on("connect", throttledDraw);
|
||||
draw();
|
||||
})();
|
||||
|
|
Loading…
Reference in New Issue