diff --git a/apps.json b/apps.json index 36191d771..c43310997 100644 --- a/apps.json +++ b/apps.json @@ -3065,7 +3065,7 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.04", + "version": "0.05", "description": "Strike the clock on the hour. A great tool to remind you an hour has passed!", "tags": "tool,alarm", "readme": "README.md", diff --git a/apps/hourstrike/ChangeLog b/apps/hourstrike/ChangeLog index eef4c34a2..6483adc05 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -2,3 +2,4 @@ 0.02: Add different strike intervals and support for quiet time 0.03: Bug fixes for setting attributes 0.04: Add more time to strike and the strength +0.05: Add display for the next strike time diff --git a/apps/hourstrike/README.md b/apps/hourstrike/README.md index 6e3498bf1..67a131f8a 100644 --- a/apps/hourstrike/README.md +++ b/apps/hourstrike/README.md @@ -13,6 +13,7 @@ This app is slightly different from [Hour Chime](https://github.com/espruino/Ban - Strike the hour, the half hour, the quarter hour, and more - Set up a range of hours that clock will strike - Set up the strength of the strike +- Preview when the next strike will happen ## Known Issues diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 6f2b8c6b8..153ec177b 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -11,6 +11,8 @@ function resetSettings() { start: 9, end: 21, vlevel: 0.5, + next_hour: -1, + next_minute: -1, }; updateSettings(); } @@ -58,9 +60,10 @@ function showMainMenu() { settings.vlevel = v/10; updateSettings(); } - }, - '< Back': ()=>load() + } }; + mainmenu['Next strike '+settings.next_hour+':'+settings.next_minute] = function(){}; + mainmenu['< Back'] = ()=>load(); return E.showMenu(mainmenu); } diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index a30ce78a1..b3a53d9e2 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,19 +1,25 @@ (function() { - var setting = require('Storage').readJSON('hourstrike.json',1)||[]; + var settings = require('Storage').readJSON('hourstrike.json',1)||[]; var t = new Date(); var t_min_sec = t.getMinutes()*60+t.getSeconds(); - var wait_msec = setting.interval>0?(setting.interval-t_min_sec%setting.interval)*1000:-1; + var wait_msec = settings.interval>0?(settings.interval-t_min_sec%settings.interval)*1000:-1; if (wait_msec>0) { t.setMilliseconds(t.getMilliseconds()+wait_msec); var t_hour = t.getHours(); - if (t_hoursetting.end) { + if (t_hoursettings.end) { var strike = new Date(t.getTime()); - strike.setHours(setting.start); - if (t_hour>setting.end) { + strike.setHours(settings.start); + if (t_hour>settings.end) { strike.setDate(strike.getDate()+1); } wait_msec += strike-t; + settings.next_hour = strike.getHours(); + settings.next_minute = strike.getMinutes(); + } else { + settings.next_hour = t_hour; + settings.next_minute = t.getMinutes(); } + require('Storage').write('hourstrike.json', settings); setTimeout(function() {load("hourstrike.js");}, wait_msec); } })();