From 58e8c032c7260b59f66e46452e775518ca0749a9 Mon Sep 17 00:00:00 2001 From: Felipe Manga Date: Fri, 19 Jan 2024 11:48:21 +0000 Subject: [PATCH] Call widget_utils' show/hide instead of Bangle.drawWidgets() --- apps/synthwave/app.js | 33 +++++++++++++++++++-------------- apps/warpdrive/app.js | 33 +++++++++++++++++++-------------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/apps/synthwave/app.js b/apps/synthwave/app.js index cbc6b8794..85fbfe7ad 100644 --- a/apps/synthwave/app.js +++ b/apps/synthwave/app.js @@ -623,16 +623,23 @@ let lcdBuffer = 0, start = 0; let locked = false, - charging = false; -var interval = 30; -var timeout; +let charging = false; +let stopped = true; +let interval = 30; +let timeout; function setupInterval(force) { if (timeout) clearTimeout(timeout); - let stopped = locked && !charging; - timeout = setTimeout(setupInterval, stopped ? 60000 : 60); - tick(stopped && !force); + let stop = locked && !charging; + timeout = setTimeout(setupInterval, stop ? 60000 : 60); + tick(stop && !force); + if (stop != stopped) { + stopped = stop; + let widget_utils = require("widget_utils"); + if (stop) widget_utils.show(); + else if (widget_utils.hide) widget_utils.hide(); + } } function test(addr, y) { @@ -720,30 +727,26 @@ function init() { setTimeout(probe, 1); } -function tick(widgets) { +function tick(locked) { g.reset(); - if (lcdBuffer && !widgets) { + if (lcdBuffer && !locked) { BLACK().drawRect(-1, -1, 0, 177); // dirty all the rows gfx.tick(bgColor); } var d = new Date(); var h = d.getHours(), m = d.getMinutes(); - g.setColor(widgets ? g.theme.fg : g.toColor(1,0,1)) + g.setColor(locked ? g.theme.fg : g.toColor(1,0,1)) .setBgColor(g.theme.bg) .setFontCustom(fontNum, 48, 28, 41) .setFontAlign(-1, -1) .drawString(("0" + h).substr(-2) + ("0"+m).substr(-2), 30, 30, true); - - if (widgets) - Bangle.drawWidgets(); } -init(); - Bangle.setUI("clock"); Bangle.loadWidgets(); + Bangle.on("lock", l => { locked = l; setupInterval(); @@ -753,3 +756,5 @@ Bangle.on('charging', c => { charging = c; setupInterval(); }); + +init(); diff --git a/apps/warpdrive/app.js b/apps/warpdrive/app.js index ad9b88223..855b86c78 100644 --- a/apps/warpdrive/app.js +++ b/apps/warpdrive/app.js @@ -493,17 +493,24 @@ const WHITE = g.setColor.bind(g, 0xFFFF); let lcdBuffer = 0, start = 0; -let locked = false, - charging = false; -var interval = 30, - timeout; +let locked = false; +let charging = false; +let stopped = true; +let interval = 30; +let timeout; function setupInterval(force) { if (timeout) clearTimeout(timeout); - let stopped = locked && !charging; - timeout = setTimeout(setupInterval, stopped ? 60000 : 30); - tick(stopped && !force); + let stop = locked && !charging; + timeout = setTimeout(setupInterval, stop ? 60000 : 60); + tick(stop && !force); + if (stop != stopped) { + stopped = stop; + let widget_utils = require("widget_utils"); + if (stop) widget_utils.show(); + else if (widget_utils.hide) widget_utils.hide(); + } } function test(addr, y) { @@ -655,10 +662,10 @@ function drawNode(index) { gfx.render(E.getAddressOf(translation, true)); } -function tick(widgets) { +function tick(locked) { g.reset(); - if (lcdBuffer && !widgets) { + if (lcdBuffer && !locked) { BLACK().drawRect(-1, -1, 0, 177); // dirty all the rows gfx.clear(bgColor); gfx.stars(); @@ -677,15 +684,11 @@ function tick(widgets) { .setFontAlign(0, 0.5) .setFont('6x8', 2) .drawString(time, 176 / 2, 176 - 16, true); - - if (widgets) - Bangle.drawWidgets(); } -init(); - Bangle.setUI("clock"); Bangle.loadWidgets(); + Bangle.on("lock", l => { locked = l; setupInterval(); @@ -695,3 +698,5 @@ Bangle.on('charging', c => { charging = c; setupInterval(); }); + +init();