From a78672662215a0807fb6d2b258e2927269f2ac91 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Sat, 2 Oct 2021 14:54:25 +0200 Subject: [PATCH] barclock: use theme colors --- apps.json | 2 +- apps/barclock/ChangeLog | 1 + apps/barclock/clock-bar.js | 12 ++---------- apps/barclock/screenshot.png | Bin 2764 -> 7183 bytes apps/barclock/screenshot_pm.png | Bin 2595 -> 6495 bytes 5 files changed, 4 insertions(+), 11 deletions(-) diff --git a/apps.json b/apps.json index 11b1ea146..23b570203 100644 --- a/apps.json +++ b/apps.json @@ -1381,7 +1381,7 @@ { "id": "barclock", "name": "Bar Clock", "icon": "clock-bar.png", - "version":"0.07", + "version":"0.08", "description": "A simple digital clock showing seconds as a bar", "tags": "clock", "type":"clock", diff --git a/apps/barclock/ChangeLog b/apps/barclock/ChangeLog index 9589a1902..314ef89f2 100644 --- a/apps/barclock/ChangeLog +++ b/apps/barclock/ChangeLog @@ -5,3 +5,4 @@ 0.05: Clock does not start if app Languages is not installed 0.06: Improve accuracy 0.07: Update to use Bangle.setUI instead of setWatch +0.08: Use theme colors \ No newline at end of file diff --git a/apps/barclock/clock-bar.js b/apps/barclock/clock-bar.js index 5069faa39..396c2984a 100644 --- a/apps/barclock/clock-bar.js +++ b/apps/barclock/clock-bar.js @@ -28,7 +28,6 @@ const screen = { // hardcoded "settings" const settings = { time: { - color: -1, font: '6x8', size: (is12Hour && locale.hasMeridian) ? 6 : 8, middle: screen.middle, @@ -40,14 +39,12 @@ const settings = { }, }, date: { - color: -1, font: 'Vector', size: 20, middle: screen.height - 20, // at bottom of screen center: screen.center, }, bar: { - color: -1, top: 155, // just below time thickness: 6, // matches 24h time "pixel" size }, @@ -82,13 +79,11 @@ const dateText = function (date) { const drawDateTime = function (date) { const t = settings.time - g.setColor(t.color) g.setFont(t.font, t.size) g.setFontAlign(0, 0) // centered g.drawString(timeText(date), t.center, t.middle, true) if (is12Hour && locale.hasMeridian) { const a = settings.time.ampm - g.setColor(a.color) g.setFont(a.font, a.size) g.setFontAlign(1, -1) // right top // at right edge of screen, aligned with time bottom @@ -98,7 +93,6 @@ const drawDateTime = function (date) { } const d = settings.date - g.setColor(d.color) g.setFont(d.font, d.size) g.setFontAlign(0, 0) // centered g.drawString(dateText(date), d.center, d.middle, true) @@ -113,14 +107,12 @@ const drawBar = function (date) { } const fraction = seconds / SECONDS_PER_MINUTE, width = fraction * screen.width - g.setColor(b.color) - g.fillRect(0, b.top, width, b.top + b.thickness) + g.setColor(g.theme.fg2).fillRect(0, b.top, width, b.top + b.thickness) } const clearScreen = function () { - g.setColor(0) const timeTop = settings.time.middle - (settings.time.size * 4) - g.fillRect(0, timeTop, screen.width, screen.height) + g.clearRect(0, timeTop, screen.width, screen.height) } let lastSeconds, tTick diff --git a/apps/barclock/screenshot.png b/apps/barclock/screenshot.png index d37ee9cae2680e73889600e8eb29f87ba2956f87..9c2b7a50f707be2ca5ddcc2bf88fd9b000d5a960 100644 GIT binary patch literal 7183 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 W0$kbz>U96Qnex&qQsok#0{;y^kc`3r literal 2764 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