Queue draw based on current time.
parent
c7a1d9e368
commit
5460a95b8e
|
|
@ -50,9 +50,6 @@ const screenWidth = g.getWidth();
|
||||||
const screenHeight = g.getHeight();
|
const screenHeight = g.getHeight();
|
||||||
const halfWidth = screenWidth / 2;
|
const halfWidth = screenWidth / 2;
|
||||||
const scale = screenWidth / 240;
|
const scale = screenWidth / 240;
|
||||||
const REFRESH_RATE = 10E3;
|
|
||||||
|
|
||||||
let interval = 0;
|
|
||||||
let showingDate = false;
|
let showingDate = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -107,20 +104,22 @@ function drawClock(num){
|
||||||
|
|
||||||
|
|
||||||
function draw(date){
|
function draw(date){
|
||||||
|
queueDraw();
|
||||||
|
|
||||||
let d = new Date();
|
let d = new Date();
|
||||||
let l1, l2;
|
let l1, l2;
|
||||||
|
|
||||||
showingDate = date;
|
showingDate = date;
|
||||||
|
|
||||||
if (date) {
|
if (date) {
|
||||||
setUpdateInt(0);
|
|
||||||
|
|
||||||
l1 = ('0' + (new Date()).getDate()).substr(-2);
|
l1 = ('0' + (new Date()).getDate()).substr(-2);
|
||||||
l2 = ('0' + ((new Date()).getMonth() + 1)).substr(-2);
|
l2 = ('0' + ((new Date()).getMonth() + 1)).substr(-2);
|
||||||
|
|
||||||
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
drawTimeout = undefined;
|
||||||
|
|
||||||
setTimeout(_ => {
|
setTimeout(_ => {
|
||||||
draw();
|
draw();
|
||||||
setUpdateInt(1);
|
|
||||||
}, 5000);
|
}, 5000);
|
||||||
} else {
|
} else {
|
||||||
l1 = ('0' + (d.getHours() % (is12hour ? 12 : 24))).substr(-2);
|
l1 = ('0' + (d.getHours() % (is12hour ? 12 : 24))).substr(-2);
|
||||||
|
|
@ -137,34 +136,32 @@ function draw(date){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function setUpdateInt(set){
|
/*
|
||||||
if (interval) {
|
* Draw watch face
|
||||||
clearInterval(interval);
|
*/
|
||||||
}
|
var drawTimeout;
|
||||||
|
function queueDraw() {
|
||||||
if (set) {
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
interval = setInterval(draw, REFRESH_RATE);
|
drawTimeout = setTimeout(function() {
|
||||||
}
|
drawTimeout = undefined;
|
||||||
|
draw();
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
}
|
||||||
|
|
||||||
g.clear(1);
|
|
||||||
|
|
||||||
Bangle.setUI("clock");
|
|
||||||
|
|
||||||
setUpdateInt(1);
|
|
||||||
draw();
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Event handlers
|
||||||
|
*/
|
||||||
if (settings.showDate) {
|
if (settings.showDate) {
|
||||||
Bangle.on('touch', () => draw(!showingDate));
|
Bangle.on('touch', () => draw(!showingDate));
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.on('lcdPower', function(on){
|
Bangle.on('lcdPower', function(on){
|
||||||
if (on){
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
setUpdateInt(1);
|
drawTimeout = undefined;
|
||||||
|
|
||||||
|
if (on) {
|
||||||
draw();
|
draw();
|
||||||
} else {
|
|
||||||
setUpdateInt(0);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -172,6 +169,14 @@ Bangle.on('lock', function(isLocked) {
|
||||||
draw();
|
draw();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Draw first time
|
||||||
|
*/
|
||||||
|
g.clear(1);
|
||||||
|
Bangle.setUI("clock");
|
||||||
|
draw();
|
||||||
|
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
|
|
||||||
if(settings.fullscreen){
|
if(settings.fullscreen){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue