diff --git a/apps.json b/apps.json index c90d710b8..36191d771 100644 --- a/apps.json +++ b/apps.json @@ -3065,7 +3065,7 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.03", + "version": "0.04", "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 fd27e4c88..eef4c34a2 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -1,3 +1,4 @@ 0.01: New App 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 diff --git a/apps/hourstrike/README.md b/apps/hourstrike/README.md index 4fe9595c0..6e3498bf1 100644 --- a/apps/hourstrike/README.md +++ b/apps/hourstrike/README.md @@ -10,8 +10,9 @@ This app is slightly different from [Hour Chime](https://github.com/espruino/Ban ## Features -- Strike the hour, the half hour, or the quarter hour +- 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 ## Known Issues diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index be12e0da7..6f2b8c6b8 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -10,6 +10,7 @@ function resetSettings() { interval: 3600, start: 9, end: 21, + vlevel: 0.5, }; updateSettings(); } @@ -18,13 +19,13 @@ settings = storage.readJSON('hourstrike.json', 1); if (!settings) resetSettings(); function showMainMenu() { - var mode_txt = ['Off', 'Hour', 'Half', 'Quarter']; - var mode_interval = [-1, 3600, 1800, 900]; + var mode_txt = ['Off','1 min','5 min','10 min','1/4 h','1/2 h','1 h']; + var mode_interval = [-1,60,300,600,900,1800,3600]; const mainmenu = { '': { 'title': 'Hour Strike' }, - 'Mode': { - value: 1 | mode_interval.indexOf(settings.interval), - min: 0, max: 3, + 'Notify every': { + value: mode_interval.indexOf(settings.interval), + min: 0, max: 6, format: v => mode_txt[v], onchange: v => { settings.interval = mode_interval[v]; @@ -34,6 +35,7 @@ function showMainMenu() { 'Start': { value: settings.start, min: 0, max: 23, + format: v=>v+':00', onchange: v=> { settings.start = v; updateSettings(); @@ -42,11 +44,21 @@ function showMainMenu() { 'End': { value: settings.end, min: 0, max: 23, + format: v=>v+':59', onchange: v=> { settings.end = v; updateSettings(); } }, + 'Strength': { + value: settings.vlevel*10, + min: 1, max: 10, + format: v=>v/10, + onchange: v=> { + settings.vlevel = v/10; + updateSettings(); + } + }, '< Back': ()=>load() }; return E.showMenu(mainmenu); diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index a67e9a6d2..0e4ee7542 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -2,6 +2,7 @@ var setting = require('Storage').readJSON('hourstrike.json',1)||[]; var cur = new Date(); var cur_sec = cur.getMinutes()*60+cur.getSeconds(); - var notify_sec = setting.interval>0?setting.interval-setting.interval%cur_sec:-1; - if (notify_sec>0) setTimeout(load('hourstrike.js'), notify_sec*1000); + var notify_sec = setting.interval>0?setting.interval-cur_sec%setting.interval:-1; + if (notify_sec>0) setTimeout(function() {load("hourstrike.js");}, notify_sec*1000); })(); + diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index 4d3650d58..493edd8d7 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -15,11 +15,13 @@ if (cur_hour new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(200, 0.5)); -}; + .then(() => Bangle.buzz(200, setting.vlevel)); +} setTimeout(notify_func, wait_sec*1000); setTimeout(load, wait_sec*1000+800); + +