From 1fb7c5c36831a176f777fa2d95b9f4a8b92f3939 Mon Sep 17 00:00:00 2001 From: Ryan Taylor <35360143+r-j-taylor@users.noreply.github.com> Date: Sun, 24 Sep 2023 19:07:35 +0000 Subject: [PATCH] Adding settings and the ability to show widgets --- apps/mtnclock/ChangeLog | 3 ++- apps/mtnclock/app.js | 5 +++++ apps/mtnclock/metadata.json | 3 ++- apps/mtnclock/settings.js | 29 +++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 apps/mtnclock/settings.js diff --git a/apps/mtnclock/ChangeLog b/apps/mtnclock/ChangeLog index 98cd0cc94..1ec9bfb49 100644 --- a/apps/mtnclock/ChangeLog +++ b/apps/mtnclock/ChangeLog @@ -1,3 +1,4 @@ 0.01: New App! 0.02: Get weather from weather.json -0.03: Address unexpected undefined when reading weather.json \ No newline at end of file +0.03: Address unexpected undefined when reading weather.json +0.04: Adding settings and the ability to show the widgets bar \ No newline at end of file diff --git a/apps/mtnclock/app.js b/apps/mtnclock/app.js index a65382dec..345d38290 100644 --- a/apps/mtnclock/app.js +++ b/apps/mtnclock/app.js @@ -196,6 +196,11 @@ g.clear(); (color.clock == undefined) ? g.setColor(0xFFFF) : g.setColor(color.clock); g.setFont("Vector", py(20)).setFontAlign(-1, -1).drawString((require("locale").time(new Date(), 1).replace(" ", "")), px(2), py(67)); g.setFont("Vector", py(10)).drawString(require('locale').dow(new Date(), 1)+" "+new Date().getDate()+" "+require('locale').month(new Date(), 1)+((data.temp == undefined) ? "" : " | "+require('locale').temp(Math.round(data.temp-273.15)).replace(".0", "")), px(2), py(87)); + + if (data.showWidgets) { + Bangle.loadWidgets(); + Bangle.drawWidgets(); + } } var i = 0; diff --git a/apps/mtnclock/metadata.json b/apps/mtnclock/metadata.json index 2d3d0a02f..d26557583 100644 --- a/apps/mtnclock/metadata.json +++ b/apps/mtnclock/metadata.json @@ -2,7 +2,7 @@ "id": "mtnclock", "name": "Mountain Pass Clock", "shortName": "Mtn Clock", - "version": "0.03", + "version": "0.04", "description": "A clock that changes scenery based on time and weather.", "readme":"README.md", "icon": "app.png", @@ -19,6 +19,7 @@ "allow_emulator": true, "storage": [ {"name":"mtnclock.app.js","url":"app.js"}, + {"name":"mtnclock.settings.js","url":"settings.js"}, {"name":"mtnclock.img","url":"app-icon.js","evaluate":true} ], "data": [{"name":"mtnclock.json"}] diff --git a/apps/mtnclock/settings.js b/apps/mtnclock/settings.js new file mode 100644 index 000000000..2c677485b --- /dev/null +++ b/apps/mtnclock/settings.js @@ -0,0 +1,29 @@ +(function(back) { + var STORAGE = require('Storage') + + var FILE = "mtnclock.json"; + + // Load settings + var SETTINGS = Object.assign({ + // default values + showWidgets: false, + }, STORAGE.readJSON(FILE, true) || {}); + + function writeSettings() { + STORAGE.writeJSON(FILE, SETTINGS); + } + + // Show the menu + E.showMenu({ + "" : { "title" : "Mountain Clock" }, + "< Back" : () => back(), + 'Show widgets': { + value: !!SETTINGS.showWidgets, // !! converts undefined to false + format: value => value ? "On" : "Off", + onchange: value => { + SETTINGS.showWidgets = value; + writeSettings(); + } + }, + }); +}) \ No newline at end of file