mirror of https://github.com/espruino/BangleApps
73 lines
1.6 KiB
JavaScript
73 lines
1.6 KiB
JavaScript
|
function msToTime(duration) {
|
||
|
var milliseconds = parseInt((duration % 1000) / 100),
|
||
|
seconds = Math.floor((duration / 1000) % 60),
|
||
|
minutes = Math.floor((duration / (1000 * 60)) % 60),
|
||
|
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
|
||
|
|
||
|
hours = (hours < 10) ? "0" + hours : hours;
|
||
|
minutes = (minutes < 10) ? "0" + minutes : minutes;
|
||
|
seconds = (seconds < 10) ? "0" + seconds : seconds;
|
||
|
|
||
|
return hours + ":" + minutes + ":" + seconds;
|
||
|
}
|
||
|
|
||
|
|
||
|
var counter = 0;
|
||
|
var started = false;
|
||
|
|
||
|
function drawInterface() {
|
||
|
g.clear();
|
||
|
g.setFontAlign(0, 0);
|
||
|
g.setFont("6x8", 2);
|
||
|
g.drawString("+5m", g.getWidth() - 30, 30);
|
||
|
g.drawString("+30s", g.getWidth() - 30, g.getHeight() / 2);
|
||
|
g.drawString("+5s", g.getWidth() - 30, g.getHeight() - 30);
|
||
|
|
||
|
g.setFontAlign(0, 0); // center font
|
||
|
g.setFont("6x8", 3);
|
||
|
// draw the current counter value
|
||
|
|
||
|
g.drawString(msToTime(counter * 1000), g.getWidth() / 2 - 30, g.getHeight() / 2);
|
||
|
// optional - this keeps the watch LCD lit up
|
||
|
g.flip();
|
||
|
}
|
||
|
|
||
|
function countDown() {
|
||
|
if (counter > 0) {
|
||
|
if (started) {
|
||
|
counter--;
|
||
|
drawInterface();
|
||
|
}
|
||
|
} else {
|
||
|
if (started) {
|
||
|
Bangle.buzz();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setWatch((p) => {
|
||
|
if (p.time - p.lastTime < 0.1) {
|
||
|
counter = 0;
|
||
|
started = false;
|
||
|
} else {
|
||
|
counter += 60 * 5;
|
||
|
}
|
||
|
drawInterface();
|
||
|
}, BTN1, { repeat: true });
|
||
|
|
||
|
setWatch(() => {
|
||
|
counter += 30;
|
||
|
drawInterface();
|
||
|
}, BTN2, { repeat: true });
|
||
|
|
||
|
setWatch(() => {
|
||
|
counter += 5;
|
||
|
drawInterface();
|
||
|
}, BTN3, { repeat: true });
|
||
|
|
||
|
Bangle.on('touch', function (button) {
|
||
|
started = !started;
|
||
|
});
|
||
|
|
||
|
var interval = setInterval(countDown, 1000);
|
||
|
drawInterface();
|