mirror of https://github.com/espruino/BangleApps
barclock: add powerSave option, perform second updates in "ram"
parent
fed49792de
commit
91e80cc3b2
|
@ -12,3 +12,4 @@
|
|||
0.12: Add settings to hide date,widgets
|
||||
0.13: Add font setting
|
||||
0.14: Use ClockFace_menu.addItems
|
||||
0.15: Add Power saving option
|
|
@ -8,3 +8,4 @@ A simple digital clock showing seconds as a horizontal bar.
|
|||
## Settings
|
||||
* `Show date`: display date at the bottom of screen
|
||||
* `Font`: choose between bitmap or vector fonts
|
||||
* `Power saving`: (Bangle.js 2 only) don't draw the seconds bar while the watch is locked
|
|
@ -14,12 +14,10 @@ let locale = require("locale");
|
|||
}
|
||||
|
||||
function renderBar(l) {
|
||||
if (!this.fraction) {
|
||||
// zero-size fillRect stills draws one line of pixels, we don't want that
|
||||
return;
|
||||
}
|
||||
const width = this.fraction*l.w;
|
||||
g.fillRect(l.x, l.y, l.x+width-1, l.y+l.height-1);
|
||||
"ram";
|
||||
if (!this.fraction) return; // zero-size fillRect stills draws one line of pixels, we don't want that
|
||||
if (this.powerSave && Bangle.isLocked()) return;
|
||||
g.fillRect(l.x, l.y, l.x+this.fraction*l.w-1, l.y+l.height-1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -91,6 +89,7 @@ const ClockFace = require("ClockFace"),
|
|||
this.layout.update();
|
||||
},
|
||||
update: function(date, c) {
|
||||
"ram";
|
||||
if (c.m) this.layout.time.label = timeText(date);
|
||||
if (c.h) this.layout.ampm.label = ampmText(date);
|
||||
if (c.d && this.showDate) this.layout.date.label = dateText(date);
|
||||
|
@ -102,4 +101,18 @@ const ClockFace = require("ClockFace"),
|
|||
this.layout.forgetLazyState();
|
||||
},
|
||||
});
|
||||
if (clock.powerSave) {
|
||||
Bangle.on("lock", l => {
|
||||
if (l) {
|
||||
clock.precision = 60;
|
||||
clock.tick();
|
||||
const l = clock.layout.bar;
|
||||
setTimeout(() => g.clearRect(l.x, l.y, l.x+l.w-1, l.y+l.height-1), 100);
|
||||
} else {
|
||||
clock.precision = 1;
|
||||
clock.tick();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
clock.start();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "barclock",
|
||||
"name": "Bar Clock",
|
||||
"version": "0.14",
|
||||
"version": "0.15",
|
||||
"description": "A simple digital clock showing seconds as a bar",
|
||||
"icon": "clock-bar.png",
|
||||
"screenshots": [{"url":"screenshot.png"},{"url":"screenshot_pm.png"}],
|
||||
|
|
|
@ -17,10 +17,14 @@
|
|||
onchange: v => save("font", v),
|
||||
},
|
||||
};
|
||||
require("ClockFace_menu").addItems(menu, save, {
|
||||
let items = {
|
||||
showDate: s.showDate,
|
||||
loadWidgets: s.loadWidgets,
|
||||
});
|
||||
|
||||
};
|
||||
// Power saving for Bangle.js 1 doesn't make sense (no updates while screen is off anyway)
|
||||
if (process.env.HWVERSION>1) {
|
||||
items.powerSave = s.powerSave;
|
||||
}
|
||||
require("ClockFace_menu").addItems(menu, save, items);
|
||||
E.showMenu(menu);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue