2022-02-25 16:14:19 +00:00
|
|
|
/*
|
2022-03-08 18:12:35 +00:00
|
|
|
* SIMPLE TIMER
|
2022-02-25 16:14:19 +00:00
|
|
|
*
|
|
|
|
* Creator: David Peer
|
|
|
|
* Date: 02/2022
|
|
|
|
*/
|
|
|
|
|
2022-02-23 20:47:22 +00:00
|
|
|
Bangle.loadWidgets();
|
|
|
|
|
|
|
|
|
2022-03-08 18:41:44 +00:00
|
|
|
const qalarm = require('qalarm');
|
2022-03-08 18:03:23 +00:00
|
|
|
|
2022-03-08 18:28:49 +00:00
|
|
|
const TIMER_IDX = "smpltmr";
|
2022-02-23 19:10:09 +00:00
|
|
|
const screenWidth = g.getWidth();
|
|
|
|
const screenHeight = g.getHeight();
|
2022-02-23 20:53:27 +00:00
|
|
|
const cx = parseInt(screenWidth/2);
|
2022-02-25 16:55:47 +00:00
|
|
|
const cy = parseInt(screenHeight/2)-12;
|
2022-03-08 18:03:23 +00:00
|
|
|
var minutes = 5;
|
|
|
|
var interval; //used for the 1 second interval timer
|
2022-02-23 19:10:09 +00:00
|
|
|
|
|
|
|
|
2022-02-23 20:47:22 +00:00
|
|
|
setWatch(_=>load(), BTN1);
|
2022-02-23 19:10:09 +00:00
|
|
|
function draw(){
|
|
|
|
g.clear(1);
|
|
|
|
Bangle.drawWidgets();
|
|
|
|
|
2022-03-08 18:03:23 +00:00
|
|
|
if (interval) {
|
|
|
|
clearInterval(interval);
|
|
|
|
}
|
|
|
|
interval = undefined;
|
|
|
|
|
|
|
|
// Write time
|
2022-02-23 19:10:09 +00:00
|
|
|
g.setFontAlign(0, 0, 0);
|
2022-02-25 12:23:56 +00:00
|
|
|
g.setFont("Vector", 32).setFontAlign(0,-1);
|
2022-03-08 18:41:44 +00:00
|
|
|
var started = qalarm.isTimerStarted(TIMER_IDX);
|
2022-03-08 18:03:23 +00:00
|
|
|
var text = minutes + " min.";
|
|
|
|
if(started){
|
2022-03-08 18:41:44 +00:00
|
|
|
var min = qalarm.getTimerMin(TIMER_IDX);
|
2022-03-08 18:03:23 +00:00
|
|
|
text = min + " min.";
|
|
|
|
}
|
2022-03-04 16:35:34 +00:00
|
|
|
|
2022-02-25 12:23:56 +00:00
|
|
|
var rectWidth = parseInt(g.stringWidth(text) / 2);
|
2022-02-23 19:10:09 +00:00
|
|
|
|
2022-03-08 18:03:23 +00:00
|
|
|
if(started){
|
|
|
|
interval = setInterval(draw, 1000);
|
2022-02-23 19:10:09 +00:00
|
|
|
g.setColor("#ff0000");
|
2022-02-25 12:23:56 +00:00
|
|
|
} else {
|
|
|
|
g.setColor(g.theme.fg);
|
2022-02-23 19:10:09 +00:00
|
|
|
}
|
2022-02-25 12:23:56 +00:00
|
|
|
g.fillRect(cx-rectWidth-5, cy-5, cx+rectWidth, cy+30);
|
2022-02-23 18:17:44 +00:00
|
|
|
|
2022-02-25 12:23:56 +00:00
|
|
|
g.setColor(g.theme.bg);
|
|
|
|
g.drawString(text, cx, cy);
|
|
|
|
}
|
2022-02-23 20:47:22 +00:00
|
|
|
|
2022-03-08 18:03:23 +00:00
|
|
|
|
2022-02-23 19:10:09 +00:00
|
|
|
Bangle.on('touch', function(btn, e){
|
2022-02-25 12:23:56 +00:00
|
|
|
var left = parseInt(g.getWidth() * 0.25);
|
2022-02-23 19:10:09 +00:00
|
|
|
var right = g.getWidth() - left;
|
2022-02-25 12:23:56 +00:00
|
|
|
var upper = parseInt(g.getHeight() * 0.25);
|
2022-02-23 19:10:09 +00:00
|
|
|
var lower = g.getHeight() - upper;
|
|
|
|
|
|
|
|
var isLeft = e.x < left;
|
|
|
|
var isRight = e.x > right;
|
|
|
|
var isUpper = e.y < upper;
|
|
|
|
var isLower = e.y > lower;
|
2022-03-08 18:03:23 +00:00
|
|
|
var isMiddle = !isLeft && !isRight && !isUpper && !isLower;
|
2022-03-08 18:41:44 +00:00
|
|
|
var started = qalarm.isTimerStarted(TIMER_IDX);
|
2022-02-23 19:10:09 +00:00
|
|
|
|
2022-03-08 18:03:23 +00:00
|
|
|
if(isRight && !started){
|
|
|
|
minutes += 1;
|
2022-02-25 12:23:56 +00:00
|
|
|
Bangle.buzz(40, 0.3);
|
2022-03-08 18:03:23 +00:00
|
|
|
} else if(isLeft && !started){
|
|
|
|
minutes -= 1;
|
2022-02-25 12:23:56 +00:00
|
|
|
Bangle.buzz(40, 0.3);
|
2022-03-08 18:03:23 +00:00
|
|
|
} else if(isUpper && !started){
|
|
|
|
minutes += 5;
|
2022-02-25 12:23:56 +00:00
|
|
|
Bangle.buzz(40, 0.3);
|
2022-03-08 18:03:23 +00:00
|
|
|
} else if(isLower && !started){
|
|
|
|
minutes -= 5;
|
2022-02-25 12:23:56 +00:00
|
|
|
Bangle.buzz(40, 0.3);
|
2022-03-08 18:03:23 +00:00
|
|
|
} else if(isMiddle) {
|
|
|
|
if(!started){
|
2022-03-08 18:41:44 +00:00
|
|
|
qalarm.editTimer(TIMER_IDX, 0, minutes, 0);
|
2022-03-08 18:03:23 +00:00
|
|
|
} else {
|
2022-03-08 18:41:44 +00:00
|
|
|
qalarm.deleteTimer(TIMER_IDX);
|
2022-03-08 18:03:23 +00:00
|
|
|
}
|
|
|
|
Bangle.buzz(80, 0.6);
|
2022-02-23 20:53:27 +00:00
|
|
|
}
|
2022-03-08 18:43:56 +00:00
|
|
|
minutes = Math.max(0, minutes);
|
2022-02-23 20:53:27 +00:00
|
|
|
|
2022-02-23 19:10:09 +00:00
|
|
|
draw();
|
|
|
|
});
|
|
|
|
|
|
|
|
g.reset();
|
|
|
|
draw();
|