diff --git a/apps.json b/apps.json index 641fd5831..aaa6be4ed 100644 --- a/apps.json +++ b/apps.json @@ -3065,14 +3065,13 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.06", + "version": "0.07", "description": "Strike the clock on the hour. A great tool to remind you an hour has passed!", "tags": "tool,alarm", "readme": "README.md", "storage": [ {"name":"hourstrike.app.js","url":"app.js"}, {"name":"hourstrike.boot.js","url":"boot.js"}, - {"name":"hourstrike.js","url":"hourstrike.js"}, {"name":"hourstrike.img","url":"app-icon.js","evaluate":true} ] } diff --git a/apps/hourstrike/ChangeLog b/apps/hourstrike/ChangeLog index b66c4ba60..73b8cb168 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -4,3 +4,4 @@ 0.04: Add more time to strike and the strength 0.05: Add display for the next strike time 0.06: Move the next strike time to the first row of display +0.07: Change the boot function to avoid reloading the entire watch diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index d260795b2..8ddad31af 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,29 +1,39 @@ (function() { - var settings = require('Storage').readJSON('hourstrike.json',1)||[]; - var t = new Date(); - var t_min_sec = t.getMinutes()*60+t.getSeconds(); - 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_hoursettings.end) { - var strike = new Date(t.getTime()); - strike.setHours(settings.start); - strike.setMinutes(0); - if (t_hour>settings.end) { - strike.setDate(strike.getDate()+1); + function setup () { + var settings = require('Storage').readJSON('hourstrike.json',1)||[]; + var t = new Date(); + var t_min_sec = t.getMinutes()*60+t.getSeconds(); + 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_hoursettings.end) { + var strike = new Date(t.getTime()); + strike.setHours(settings.start); + strike.setMinutes(0); + 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(); } - wait_msec += strike-t; - settings.next_hour = strike.getHours(); - settings.next_minute = strike.getMinutes(); + setTimeout(strike_func, wait_msec); } else { - settings.next_hour = t_hour; - settings.next_minute = t.getMinutes(); + settings.next_hour = -1; + settings.next_minute = -1; } - setTimeout(function() {load("hourstrike.js");}, wait_msec); - } else { - settings.next_hour = -1; - settings.next_minute = -1; + require('Storage').write('hourstrike.json', settings); } - require('Storage').write('hourstrike.json', settings); + function strike_func () { + var setting = require('Storage').readJSON('hourstrike.json',1)||[]; + Bangle.buzz(200, setting.vlevel||0.5) + .then(() => new Promise(resolve => setTimeout(resolve,200))) + .then(() => Bangle.buzz(200, setting.vlevel||0.5)); + setup(); + } + setup(); })(); diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js deleted file mode 100644 index f21d44fb8..000000000 --- a/apps/hourstrike/hourstrike.js +++ /dev/null @@ -1,12 +0,0 @@ -clearInterval(); - -var setting = require('Storage').readJSON('hourstrike.json',1)||[]; - -function notify_func () { - Bangle.buzz(200, setting.vlevel||0.5) - .then(() => new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(200, setting.vlevel||0.5)); -} - -notify_func(); -setTimeout(load, 800);