From 88e0322e97358a5a3faa6ea673ee4160e812337c Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Sat, 19 Apr 2025 16:49:22 -0400 Subject: [PATCH] bugfix and added readme --- apps/jsonclock/README.md | 19 +++++++++++++++++++ apps/jsonclock/app.js | 2 +- apps/jsonclock/dark.png | Bin 0 -> 3681 bytes apps/jsonclock/light.png | Bin 0 -> 3317 bytes apps/jsonclock/no_location.png | Bin 0 -> 3336 bytes apps/jsonclock/no_steps.png | Bin 0 -> 3132 bytes 6 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 apps/jsonclock/README.md create mode 100644 apps/jsonclock/dark.png create mode 100644 apps/jsonclock/light.png create mode 100644 apps/jsonclock/no_location.png create mode 100644 apps/jsonclock/no_steps.png diff --git a/apps/jsonclock/README.md b/apps/jsonclock/README.md new file mode 100644 index 000000000..d449daad7 --- /dev/null +++ b/apps/jsonclock/README.md @@ -0,0 +1,19 @@ +# JSON Clock ![](app.png) + + *JSON view of the time.* + +Written by: [David Volvoskiy](https://github.com/voloved) and fully +inspired by [This FitBit face](https://github.com/Sharkgrammer/clockface.json) + +* Displays a JSON that shows the date, time, step count, sunrise/set and battery. +* If the Bangle's theme is dark, then it'll show in dark view (`Settings>System>Theme>Dark BW`) +* It'll show 12 hrs if it's set so in `Settings>System>Locale>Time Format` +* Along with the physical button, you can leave the clock by pressing the `X` next to the `clockface.json` in the tab. +* If the steps cannot be gotten, they won't display +* If the location isn't set, then the JSON array will ignore the sun info and instead display the time as a struct. + +## Screenshots +![](dark.png) +![](white.png) +![](no_steps.png) +![](no_location.png) diff --git a/apps/jsonclock/app.js b/apps/jsonclock/app.js index 00b267e52..2bfd549b5 100644 --- a/apps/jsonclock/app.js +++ b/apps/jsonclock/app.js @@ -61,7 +61,7 @@ function getHr(h) { function extractTime(d) { const out = getHr(d.getHours()); - const hr = out[0]; + const h = out[0]; const amPm = out[1]; const m = d.getMinutes(); return `${h}:${("0"+m).substr(-2)}${amPm}`; diff --git a/apps/jsonclock/dark.png b/apps/jsonclock/dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fcbc3e6fffdcf2b56c3ef09f97e0cbcdd8146292 GIT binary patch literal 3681 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 literal 0 HcmV?d00001 diff --git a/apps/jsonclock/light.png b/apps/jsonclock/light.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ecef0d603c596cd494cd71092f13d70b4345d1 GIT binary patch literal 3317 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