add strike time preview

master
Weiming 2021-03-30 22:07:41 -04:00
parent 107e865d3f
commit 4d1a98e009
5 changed files with 19 additions and 8 deletions

View File

@ -3065,7 +3065,7 @@
"name": "Hour Strike", "name": "Hour Strike",
"shortName": "Hour Strike", "shortName": "Hour Strike",
"icon": "app-icon.png", "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!", "description": "Strike the clock on the hour. A great tool to remind you an hour has passed!",
"tags": "tool,alarm", "tags": "tool,alarm",
"readme": "README.md", "readme": "README.md",

View File

@ -2,3 +2,4 @@
0.02: Add different strike intervals and support for quiet time 0.02: Add different strike intervals and support for quiet time
0.03: Bug fixes for setting attributes 0.03: Bug fixes for setting attributes
0.04: Add more time to strike and the strength 0.04: Add more time to strike and the strength
0.05: Add display for the next strike time

View File

@ -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 - Strike the hour, the half hour, the quarter hour, and more
- Set up a range of hours that clock will strike - Set up a range of hours that clock will strike
- Set up the strength of the strike - Set up the strength of the strike
- Preview when the next strike will happen
## Known Issues ## Known Issues

View File

@ -11,6 +11,8 @@ function resetSettings() {
start: 9, start: 9,
end: 21, end: 21,
vlevel: 0.5, vlevel: 0.5,
next_hour: -1,
next_minute: -1,
}; };
updateSettings(); updateSettings();
} }
@ -58,9 +60,10 @@ function showMainMenu() {
settings.vlevel = v/10; settings.vlevel = v/10;
updateSettings(); updateSettings();
} }
}, }
'< Back': ()=>load()
}; };
mainmenu['Next strike '+settings.next_hour+':'+settings.next_minute] = function(){};
mainmenu['< Back'] = ()=>load();
return E.showMenu(mainmenu); return E.showMenu(mainmenu);
} }

View File

@ -1,19 +1,25 @@
(function() { (function() {
var setting = require('Storage').readJSON('hourstrike.json',1)||[]; var settings = require('Storage').readJSON('hourstrike.json',1)||[];
var t = new Date(); var t = new Date();
var t_min_sec = t.getMinutes()*60+t.getSeconds(); 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) { if (wait_msec>0) {
t.setMilliseconds(t.getMilliseconds()+wait_msec); t.setMilliseconds(t.getMilliseconds()+wait_msec);
var t_hour = t.getHours(); var t_hour = t.getHours();
if (t_hour<setting.start||t_hour>setting.end) { if (t_hour<settings.start||t_hour>settings.end) {
var strike = new Date(t.getTime()); var strike = new Date(t.getTime());
strike.setHours(setting.start); strike.setHours(settings.start);
if (t_hour>setting.end) { if (t_hour>settings.end) {
strike.setDate(strike.getDate()+1); strike.setDate(strike.getDate()+1);
} }
wait_msec += strike-t; 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); setTimeout(function() {load("hourstrike.js");}, wait_msec);
} }
})(); })();