diff --git a/apps/90sclk/ChangeLog b/apps/90sclk/ChangeLog index 2286a7f70..feb008f5f 100644 --- a/apps/90sclk/ChangeLog +++ b/apps/90sclk/ChangeLog @@ -1 +1,2 @@ -0.01: New App! \ No newline at end of file +0.01: New App! +0.02: Fullscreen settings. \ No newline at end of file diff --git a/apps/90sclk/README.md b/apps/90sclk/README.md index 55fe21ce6..6f820886a 100644 --- a/apps/90sclk/README.md +++ b/apps/90sclk/README.md @@ -1,4 +1,13 @@ # 90s Clock +A watch face in 90s style: + ![](screenshot.png) + +# Settings +In the settings you can enable / disable the fullscreen mode. + + +## Creator +- [David Peer](https://github.com/peerdavid) diff --git a/apps/90sclk/app.js b/apps/90sclk/app.js index 750a129b6..367d77502 100644 --- a/apps/90sclk/app.js +++ b/apps/90sclk/app.js @@ -1,4 +1,19 @@ +const SETTINGS_FILE = "90sclk.setting.json"; const locale = require('locale'); +const storage = require('Storage'); + + +/* + * Load settings + */ +let settings = { + fullscreen: false, +}; + +let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings; +for (const key in saved_settings) { + settings[key] = saved_settings[key] +} function getImg() { @@ -60,9 +75,9 @@ function getSteps() { function draw() { - for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";} var x = g.getWidth()/2; - var y = g.getHeight()/2-20; + var y_offset = settings.fullscreen ? 0 : 10; + var y = g.getHeight()/2-20 + y_offset; g.reset().clearRect(0,24,g.getWidth(),g.getHeight()); g.drawImage(getImg(),0,0); @@ -89,6 +104,13 @@ function draw() { var steps = parseInt(getSteps() / 1000); drawBorderString(steps, g.getWidth()-10, g.getHeight()-10, 3, "#f0f"); + // Draw widgets if not fullscreen + if(settings.fullscreen){ + for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";} + } else { + Bangle.drawWidgets(); + } + // queue draw in one minute queueDraw(); } @@ -96,7 +118,7 @@ function draw() { Bangle.loadWidgets(); // Clear the screen once, at startup -g.setTheme({bg:"#fff",fg:"#fff",dark:false}).clear(); +g.setTheme({bg:"#000",fg:"#fff",dark:false}).clear(); // draw immediately at first, queue update draw(); // Stop updates when LCD is off, restart when on diff --git a/apps/90sclk/metadata.json b/apps/90sclk/metadata.json index f3cf33eae..95ef96ccf 100644 --- a/apps/90sclk/metadata.json +++ b/apps/90sclk/metadata.json @@ -1,8 +1,9 @@ { "id": "90sclk", "name": "90s Clock", - "version": "0.01", - "description": "A clock in 90s style", + "version": "0.02", + "description": "A 90s style watch-face", + "readme": "README.md", "icon": "app.png", "screenshots": [{"url":"screenshot.png"}], "type": "clock", @@ -11,6 +12,7 @@ "allow_emulator": true, "storage": [ {"name":"90sclk.app.js","url":"app.js"}, - {"name":"90sclk.img","url":"app-icon.js","evaluate":true} + {"name":"90sclk.img","url":"app-icon.js","evaluate":true}, + {"name":"90sclk.settings.js","url":"settings.js"} ] } diff --git a/apps/90sclk/settings.js b/apps/90sclk/settings.js new file mode 100644 index 000000000..8f97cd317 --- /dev/null +++ b/apps/90sclk/settings.js @@ -0,0 +1,31 @@ +(function(back) { + const SETTINGS_FILE = "90sclk.setting.json"; + + // initialize with default settings... + const storage = require('Storage') + let settings = { + fullscreen: false, + }; + let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings; + for (const key in saved_settings) { + settings[key] = saved_settings[key] + } + + function save() { + storage.write(SETTINGS_FILE, settings) + } + + + E.showMenu({ + '': { 'title': '90s Clock' }, + '< Back': back, + 'Full Screen': { + value: settings.fullscreen, + format: () => (settings.fullscreen ? 'Yes' : 'No'), + onchange: () => { + settings.fullscreen = !settings.fullscreen; + save(); + }, + } + }); + })