berlinc - Enable fastload
parent
cdbc331b17
commit
e9724edb9e
|
|
@ -1,3 +1,6 @@
|
||||||
|
// timeout used to update every minute
|
||||||
|
let drawTimeout;
|
||||||
|
{
|
||||||
// Berlin Clock see https://en.wikipedia.org/wiki/Mengenlehreuhr
|
// Berlin Clock see https://en.wikipedia.org/wiki/Mengenlehreuhr
|
||||||
// https://github.com/eska-muc/BangleApps
|
// https://github.com/eska-muc/BangleApps
|
||||||
const fields = [4, 4, 11, 4];
|
const fields = [4, 4, 11, 4];
|
||||||
|
|
@ -6,18 +9,15 @@ const width = g.getWidth() - 2 * offset;
|
||||||
const height = g.getHeight() - 2 * offset;
|
const height = g.getHeight() - 2 * offset;
|
||||||
const rowHeight = height / 4;
|
const rowHeight = height / 4;
|
||||||
|
|
||||||
var show_date = false;
|
let show_date = false;
|
||||||
var show_time = false;
|
let show_time = false;
|
||||||
var yy = 0;
|
let yy = 0;
|
||||||
|
|
||||||
var rowlights = [];
|
let rowlights = [];
|
||||||
var time_digit = [];
|
let time_digit = [];
|
||||||
|
|
||||||
// timeout used to update every minute
|
|
||||||
var drawTimeout;
|
|
||||||
|
|
||||||
// schedule a draw for the next minute
|
// schedule a draw for the next minute
|
||||||
function queueDraw() {
|
let queueDraw = () => {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(function() {
|
drawTimeout = setTimeout(function() {
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
|
|
@ -25,7 +25,7 @@ function queueDraw() {
|
||||||
}, 60000 - (Date.now() % 60000));
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw() {
|
let draw = () => {
|
||||||
g.reset().clearRect(0,24,g.getWidth(),g.getHeight());
|
g.reset().clearRect(0,24,g.getWidth(),g.getHeight());
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
|
|
||||||
|
|
@ -84,28 +84,32 @@ function draw() {
|
||||||
queueDraw();
|
queueDraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleDate() {
|
let toggleDate = () => {
|
||||||
show_date = ! show_date;
|
show_date = ! show_date;
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleTime() {
|
let toggleTime = () => {
|
||||||
show_time = ! show_time;
|
show_time = ! show_time;
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let clear = () => {
|
||||||
|
if (global.drawTimeout) clearTimeout(global.drawTimeout);
|
||||||
|
delete global.drawTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
// Stop updates when LCD is off, restart when on
|
// Stop updates when LCD is off, restart when on
|
||||||
Bangle.on('lcdPower',on=>{
|
Bangle.on('lcdPower',on=>{
|
||||||
if (on) {
|
if (on) {
|
||||||
draw(); // draw immediately, queue redraw
|
draw(); // draw immediately, queue redraw
|
||||||
} else { // stop draw timer
|
} else { // stop draw timer
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
clear();
|
||||||
drawTimeout = undefined;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Show launcher when button pressed, handle up/down
|
// Show launcher when button pressed, handle up/down
|
||||||
Bangle.setUI("clockupdown", dir=> {
|
Bangle.setUI({mode: "clockupdown", remove: clear}, dir=> {
|
||||||
if (dir<0) toggleTime();
|
if (dir<0) toggleTime();
|
||||||
if (dir>0) toggleDate();
|
if (dir>0) toggleDate();
|
||||||
});
|
});
|
||||||
|
|
@ -114,3 +118,4 @@ g.clear();
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
draw();
|
draw();
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue