diff --git a/apps/barclock/ChangeLog b/apps/barclock/ChangeLog index 5df032c4d..d30ec04de 100644 --- a/apps/barclock/ChangeLog +++ b/apps/barclock/ChangeLog @@ -9,3 +9,4 @@ 0.09: Fix time/date disappearing after fullscreen notification 0.10: Use ClockFace library 0.11: Use ClockFace.is12Hour +0.12: Add settings to hide date,widgets diff --git a/apps/barclock/README.md b/apps/barclock/README.md index 4b92313c5..af10d4c6c 100644 --- a/apps/barclock/README.md +++ b/apps/barclock/README.md @@ -4,3 +4,6 @@ A simple digital clock showing seconds as a horizontal bar. | 24hr style | 12hr style | | --- | --- | | ![24-hour bar clock](screenshot.png) | ![12-hour bar clock with meridian](screenshot_pm.png) | + +## Settings +* `Show date`: display date at the bottom of screen \ No newline at end of file diff --git a/apps/barclock/clock-bar.js b/apps/barclock/clock-bar.js index 987d41cc6..afbe46f1b 100644 --- a/apps/barclock/clock-bar.js +++ b/apps/barclock/clock-bar.js @@ -51,6 +51,7 @@ function dateText(date) { const ClockFace = require("ClockFace"), clock = new ClockFace({ precision:1, + settingsFile:'barclock.settings.json', init: function() { const Layout = require("Layout"); this.layout = new Layout({ @@ -62,8 +63,8 @@ const ClockFace = require("ClockFace"), ], }, {id: "bar", type: "custom", fraction: 0, fillx: 1, height: 6, col: g.theme.fg2, render: renderBar}, - {height: 40}, - {id: "date", type: "txt", font: "10%", valign: 1}, + this.showDate ? {height: 40} : {}, + this.showDate ? {id: "date", type: "txt", font: "10%", valign: 1} : {}, ], }, {lazy: true}); // adjustments based on screen size and whether we display am/pm @@ -82,7 +83,7 @@ const ClockFace = require("ClockFace"), update: function(date, c) { if (c.m) this.layout.time.label = timeText(date); if (c.h) this.layout.ampm.label = ampmText(date); - if (c.d) this.layout.date.label = dateText(date); + if (c.d && this.showDate) this.layout.date.label = dateText(date); const SECONDS_PER_MINUTE = 60; if (c.s) this.layout.bar.fraction = date.getSeconds()/SECONDS_PER_MINUTE; this.layout.render(); diff --git a/apps/barclock/metadata.json b/apps/barclock/metadata.json index 7bc61096d..5a81593d4 100644 --- a/apps/barclock/metadata.json +++ b/apps/barclock/metadata.json @@ -1,7 +1,7 @@ { "id": "barclock", "name": "Bar Clock", - "version": "0.11", + "version": "0.12", "description": "A simple digital clock showing seconds as a bar", "icon": "clock-bar.png", "screenshots": [{"url":"screenshot.png"},{"url":"screenshot_pm.png"}], @@ -12,6 +12,10 @@ "allow_emulator": true, "storage": [ {"name":"barclock.app.js","url":"clock-bar.js"}, + {"name":"barclock.settings.js","url":"settings.js"}, {"name":"barclock.img","url":"clock-bar-icon.js","evaluate":true} + ], + "data": [ + {"name":"barclock.settings.json"} ] } diff --git a/apps/barclock/settings.js b/apps/barclock/settings.js new file mode 100644 index 000000000..60f459a26 --- /dev/null +++ b/apps/barclock/settings.js @@ -0,0 +1,19 @@ +(function(back) { + let s = require('Storage').readJSON("barclock.settings.json", true) || {}; + + function saver(key) { + return value => { + s[key] = value; + require('Storage').writeJSON("barclock.settings.json", s); + } + } + + const menu = { + "": {"title": /*LANG*/"Bar Clock"}, + /*LANG*/"< Back": back, + /*LANG*/"Show date": require("ClockFace_menu").showDate(s.showDate, saver('showDate')), + /*LANG*/"Load widgets": require("ClockFace_menu").loadWidgets(s.loadWidgets, saver('loadWidgets')), + } + + E.showMenu(menu); +});