diff --git a/apps/berlinc/berlin-clock.js b/apps/berlinc/berlin-clock.js index 0dd8ff8ee..7e61a6db4 100644 --- a/apps/berlinc/berlin-clock.js +++ b/apps/berlinc/berlin-clock.js @@ -1,3 +1,6 @@ +// timeout used to update every minute +let drawTimeout; +{ // Berlin Clock see https://en.wikipedia.org/wiki/Mengenlehreuhr // https://github.com/eska-muc/BangleApps const fields = [4, 4, 11, 4]; @@ -6,18 +9,15 @@ const width = g.getWidth() - 2 * offset; const height = g.getHeight() - 2 * offset; const rowHeight = height / 4; -var show_date = false; -var show_time = false; -var yy = 0; +let show_date = false; +let show_time = false; +let yy = 0; -var rowlights = []; -var time_digit = []; - -// timeout used to update every minute -var drawTimeout; +let rowlights = []; +let time_digit = []; // schedule a draw for the next minute -function queueDraw() { +let queueDraw = () => { if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = setTimeout(function() { drawTimeout = undefined; @@ -25,7 +25,7 @@ function queueDraw() { }, 60000 - (Date.now() % 60000)); } -function draw() { +let draw = () => { g.reset().clearRect(0,24,g.getWidth(),g.getHeight()); var now = new Date(); @@ -84,28 +84,32 @@ function draw() { queueDraw(); } -function toggleDate() { +let toggleDate = () => { show_date = ! show_date; draw(); } -function toggleTime() { +let toggleTime = () => { show_time = ! show_time; draw(); } +let clear = () => { + if (global.drawTimeout) clearTimeout(global.drawTimeout); + delete global.drawTimeout; +} + // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ if (on) { draw(); // draw immediately, queue redraw } else { // stop draw timer - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; + clear(); } }); // 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) toggleDate(); }); @@ -114,3 +118,4 @@ g.clear(); Bangle.loadWidgets(); Bangle.drawWidgets(); draw(); +} \ No newline at end of file