diff --git a/apps.json b/apps.json index ecb20ff83..04c2f637d 100644 --- a/apps.json +++ b/apps.json @@ -1725,7 +1725,7 @@ { "id": "rndmclk", "name": "Random Clock Loader", "icon": "rndmclk.png", - "version":"0.01", + "version":"0.02", "description": "Load a different clock whenever the LCD is switched on.", "readme": "README.md", "tags": "widget,clock", diff --git a/apps/rndmclk/ChangeLog b/apps/rndmclk/ChangeLog index 55cda0f21..2d387a04b 100644 --- a/apps/rndmclk/ChangeLog +++ b/apps/rndmclk/ChangeLog @@ -1 +1,2 @@ 0.01: New widget +0.02: Less invasive, change default clock setting instead of directly loading the new clock (no longer breaks Gadgetbridge notifications) diff --git a/apps/rndmclk/README.md b/apps/rndmclk/README.md index 3bfaf0e89..86138e0e7 100644 --- a/apps/rndmclk/README.md +++ b/apps/rndmclk/README.md @@ -1,6 +1,6 @@ # Summary - Random Clock is a widget that will randomly show one of the installed watch faces each time the LCD is turned on. -## Disclaimer -This is an early version and will load a clock each time the LCD is turned on no matter what app was running before the screen went to standby. Also the next watch face is only loaded after the last one is shown for a few tens of seconds. \ No newline at end of file +# How it works +Everytime the LCD is turned off, the widget randomly changes the clock. When you long press BTN 3 the next time, +you might (or might not, it's random after all) see another watch face. \ No newline at end of file diff --git a/apps/rndmclk/widget.js b/apps/rndmclk/widget.js index 1c3b3d7bc..566d8eed5 100644 --- a/apps/rndmclk/widget.js +++ b/apps/rndmclk/widget.js @@ -1,4 +1,5 @@ (() => { + let currentClock = ""; /** * Random value between zero (inclusive) and max (exclusive) @@ -15,13 +16,18 @@ if (clockApps && clockApps.length > 0) { var clockIndex = getRandomInt(clockApps.length); - load(clockApps[clockIndex].src); + // Only update the file if the clock really change to be nice to the FLASH mem + if (clockApps[clockIndex].src != currentClock) { + currentClock = clockApps[clockIndex].src; + settings = require("Storage").readJSON('setting.json', 1); + settings.clock = clockApps[clockIndex].src; + require("Storage").write('setting.json', settings); + } } } Bangle.on('lcdPower', (on) => { - if (on) { - // TODO: Only run if the current app is a clock as well + if (!on) { loadRandomClock(); } });