Fix timer app
parent
edd1c0c7bb
commit
ef391cefbf
|
|
@ -943,13 +943,13 @@
|
||||||
{ "id": "timer",
|
{ "id": "timer",
|
||||||
"name": "Timer",
|
"name": "Timer",
|
||||||
"shortName":"Timer",
|
"shortName":"Timer",
|
||||||
"icon": "app.png",
|
"icon": "timer.png",
|
||||||
"version":"0.01",
|
"version":"0.01",
|
||||||
"description": "BTN1 => +5min, BTN2 => +30sec, BTN3 => +5sec, TOUCH => pause,play, BTN1(double click) => reset",
|
"description": "BTN1 => +5min, BTN2 => +30sec, BTN3 => +5sec, TOUCH => pause,play, BTN1(double click) => reset",
|
||||||
"tags": "Tools",
|
"tags": "Tools",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"timer.app.js","url":"app.js"},
|
{"name":"timer.app.js","url":"timer.js"},
|
||||||
{"name":"timer.img","url":"app-icon.js","evaluate":true}
|
{"name":"timer.img","url":"timer-icon.js","evaluate":true}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
var img = require("heatshrink").decompress(atob("mEwwglihGIxAWUwADBDCYTDhAXSFwQEGIxowBL4QXTx///AXWF6qnBwCTDO6EIF4KnEDwLWO/4QFx7FNdwQQEGwP4GBYUB/4QBDIYXMIgQAEDIIKCVwItJFggFEx4uKCAQUBX4QDC/B2KhASCAQP/AQQcDLpQlCLgQsCCoIGBC5IkCFon/xwxCDgIXJFwYxFHIR3ILwIkBCIeIFwQHBHgReIJAgCBOoP+MYZIHhB1EDgIRBA4ZIJC4LrEMYvoAgQXJxHvI4gtDC5OIF4QSDbYY3EC5QAKG4QXNPwg0BSBAJCIQhLCDwgXKIAwXUMo4XPFwrwKC4YOCUooVCR453DIxIXJU4IqDxwXJa45FDdgxnEC40IC4TbINQYXIRQZwDAAXv/xuBCwoXBVAgXDA4wXGSARcEC4o7BRwx4DOon+C4YiCLwxIDDAobDEYJGIGAYYBxDAD9AJDC5IwCDIYACJARGIDAapDaooWLDAZhEAoIWNMggADCqAAPA"))
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
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();
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
require("heatshrink").decompress(atob("mEwwglihGIxAWUwADBDCYTDhAXSFwQEGIxowBL4QXTx///AXWF6qnBwCTDO6EIF4KnEDwLWO/4QFx7FNdwQQEGwP4GBYUB/4QBDIYXMIgQAEDIIKCVwItJFggFEx4uKCAQUBX4QDC/B2KhASCAQP/AQQcDLpQlCLgQsCCoIGBC5IkCFon/xwxCDgIXJFwYxFHIR3ILwIkBCIeIFwQHBHgReIJAgCBOoP+MYZIHhB1EDgIRBA4ZIJC4LrEMYvoAgQXJxHvI4gtDC5OIF4QSDbYY3EC5QAKG4QXNPwg0BSBAJCIQhLCDwgXKIAwXUMo4XPFwrwKC4YOCUooVCR453DIxIXJU4IqDxwXJa45FDdgxnEC40IC4TbINQYXIRQZwDAAXv/xuBCwoXBVAgXDA4wXGSARcEC4o7BRwx4DOon+C4YiCLwxIDDAobDEYJGIGAYYBxDAD9AJDC5IwCDIYACJARGIDAapDaooWLDAZhEAoIWNMggADCqAAPA"))
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
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();
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Loading…
Reference in New Issue