From 9f82c9ce50621553b45584605f16f2a287244a47 Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 22:34:25 -0400 Subject: [PATCH 01/22] add hourstrike -- a new app --- apps.json | 17 +++++++++- apps/hourstrike/ChangeLog | 1 + apps/hourstrike/READMS.md | 17 ++++++++++ apps/hourstrike/app-icon.js | 1 + apps/hourstrike/app-icon.png | Bin 0 -> 1311 bytes apps/hourstrike/app.js | 62 +++++++++++++++++++++++++++++++++++ apps/hourstrike/boot.js | 21 ++++++++++++ 7 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 apps/hourstrike/ChangeLog create mode 100644 apps/hourstrike/READMS.md create mode 100644 apps/hourstrike/app-icon.js create mode 100644 apps/hourstrike/app-icon.png create mode 100644 apps/hourstrike/app.js create mode 100644 apps/hourstrike/boot.js diff --git a/apps.json b/apps.json index 19fa93262..d902a9054 100644 --- a/apps.json +++ b/apps.json @@ -3059,5 +3059,20 @@ {"name":"waypoints.json","url":"waypoints.json","evaluate":false}, {"name":"kitchen.img","url":"kitchen.icon.js","evaluate":true} ] -} +}, +{ + "id": "hourstrike", + "name": "Hour Strike", + "shortName": "Hour Strike", + "icon": "app.png", + "version": "0.01", + "description": "Strike the clock on the hour. A great tool to remind you an hour has passed!", + "tags": "tool,alarm,widget", + "readme": "README.md", + "storage": [ + {"name":"hourstrike.app.js","url":"app.js"}, + {"name":"hourstrike.boot.js","url":"boot.js"}, + {"name":"hourstrike.img","url":"app-icon.js","evaluate":true} + ] +} ] diff --git a/apps/hourstrike/ChangeLog b/apps/hourstrike/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/hourstrike/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/hourstrike/READMS.md b/apps/hourstrike/READMS.md new file mode 100644 index 000000000..64423695d --- /dev/null +++ b/apps/hourstrike/READMS.md @@ -0,0 +1,17 @@ +# Hour Strike + +![icon](app-icon.png) + +Time passes too fast! + +This app configures your `Bangle.js` so that it buzzes on the hour or on the half hour. + +## Features + +- Strikes the hour or the half hour +- Set up a quiet time + +## Creator + +[Weiming Hu](https://weiming-hu.github.io/), using coding from the [Default Alarm](https://github.com/espruino/BangleApps/tree/master/apps/alarm). + diff --git a/apps/hourstrike/app-icon.js b/apps/hourstrike/app-icon.js new file mode 100644 index 000000000..7f2040745 --- /dev/null +++ b/apps/hourstrike/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkGswAHogAEBxAAHsgXFowXPCwowQFwwwQCIUjn/zmQwPFwUj/4ACDAQwMBwNDCgPwh4DBmgwMFwU/C4vzGBgMBoRECC4f/kgwLIwgXFJBgLBl4XH+QXNLwQXFMAQXPmEDC6K8DiEBAoYXSgA1DI6MxgETL6gYBgIGBC5ynDCYMQAwKnOa4YABmTXQoQXEAAUkC5dkMAx2EowXJJBBGNAAMUBwMjMAgHBoIXLiIPBDAM/+YWCokRC5gwCAAtBC5owDAAgJBC5dBiAwGoMBigXLokQgIXFA4QXMoEAAANNqAECggXR7oXXAYQXSgvUC6sEC60N6oXW6AXUinu8IXTgPuAAMQC6UEC4SsDC58OC4XgC9RHXO66nCoLXVAAoXmABQX1A")) diff --git a/apps/hourstrike/app-icon.png b/apps/hourstrike/app-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f7ca232cf1accf5f85a29c48c13ba11cd85d8576 GIT binary patch literal 1311 zcmV+)1>pLLP)M$;2DO%Gm#cp_0lJk$h}MomNy^cEK49v0hlnqEYlFe02Y{EmMI7!05$WH)5~SzT-x!fwVqplW_SRqWbB)vNo{izNlV`|SPtcl74b z4WRbeh?rm2_L`R|4^^ZWOA55<&7m8BEEBeRZ>@pm*|qbv14xoXvo9?f0a&A8C`?g_ z_Jq}=!p$WFwmv7^UKpT!TgK1}D;Nq3w-p8`@s(-DJ3Bj9uDiOrH0zd@1w?I#0~8b% zYsQguSkuU`|JnVMwy<_%FB zh5!~<|47L)k#ilo8wUabnwpw$I@d0;m(Ki@ZF{|#UZ5u304aqxfce#B1AV*sXpXPABf*(|S_@(A#yM z$Zx-_DN_^$yNx%G9sl}Ay?G3O(0uS#t>X50SPcPC9;%>vUoAx?F3t9dyKyf6`g6ve zR}_VbJL7!veY+t~8QZ}1G?z?rXMCJ=h{0Ht;r<&0w}uIZ!npha3jY73yq}mRK03@$ zEXvT$K2oxr)qL{4`eJ7pz-kDW+l^#@IE_-W%s}5Y2Kuh)&XrOW;)3Qu;5C}RVFR!P z(Q&yKIVHXgNGS?uBGDD|%ejrnFo4JFBQHN6fWbSH!Vt^m{~ntFATKWukJn>3k6{42 z-G@IGuQWKJ0egFU1uJ%>lb4;r02Uryp2?_@e#%nmR3Y6C8YgmXA8N z@a^Ry&3s;;4@oj^9!zW{B!_l~Re_~7@9N0<&$YuLbRU5neGhCYkSQ-&B)MQGHg5Lh zQCm3ys17dO{qB)`Jc0uUL_&qew*%IOH`dH&7Ha)3NZA?%$er9k&1 z7ymW+VU<)r=dXL)^BF;8reKyt9j z>*0r%XYjcmgSSxAVLwk6W)5cYCW#LZ`K{ v?"ON":"OFF", + onchange: v => { + settings.on_hour = v; + updateSettings(); + } + }, + 'On half hour': { + value: settings.on_half_hour, + format: v => v?"ON":"OFF", + onchange: v => { + settings.on_half_hour = v; + updateSettings(); + } + }, + 'Start hour': { + value: settings.start_hour, + min: 0, max: 23, + onchange: v=> { + settings.start_hour = v; + updateSettings(); + } + }, + 'End hour': { + value: settings.end_hour, + min: 0, max: 23, + onchange: v=> { + settings.end_hour = v; + updateSettings(); + } + }, + '< Back': ()=>load() + }; + return E.showMenu(mainmenu); +} + +showMainMenu(); \ No newline at end of file diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js new file mode 100644 index 000000000..901784613 --- /dev/null +++ b/apps/hourstrike/boot.js @@ -0,0 +1,21 @@ +(function() { + var setting = require('Storage').readJSON('hourstrike.json',1)||[]; + if (setting.on_hour || setting.on_harlf_hour) { + var cur = new Date(); + var cur_hour = cur.getHours(); + if (setting.start_hour<=cur_hour&&cur_hour<=setting.end_hour) { + var cur_sec = cur.getMinutes()*60+cur.getSeconds(); + var notify_on = [1800, 3600]; + var t=cur_sec new Promise(resolve => setTimeout(resolve,200))) + .then(() => Bangle.buzz(100, 0.5)); + }; + if (t>0) { + setTimeout(notify_func, t*1000); + setTimeout(load, t*1000 + 600); + } + } + } +})(); \ No newline at end of file From 170d07690e6090ce8c40baf2697202761fd31e4c Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 22:36:03 -0400 Subject: [PATCH 02/22] change the icon png file path --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index d902a9054..8018a4064 100644 --- a/apps.json +++ b/apps.json @@ -3064,10 +3064,10 @@ "id": "hourstrike", "name": "Hour Strike", "shortName": "Hour Strike", - "icon": "app.png", + "icon": "app-icon.png", "version": "0.01", "description": "Strike the clock on the hour. A great tool to remind you an hour has passed!", - "tags": "tool,alarm,widget", + "tags": "tool,alarm", "readme": "README.md", "storage": [ {"name":"hourstrike.app.js","url":"app.js"}, From 1807651001c8b6fde33c431834c3dfe55a19d454 Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 23:28:15 -0400 Subject: [PATCH 03/22] update text --- apps/hourstrike/READMS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/hourstrike/READMS.md b/apps/hourstrike/READMS.md index 64423695d..555182290 100644 --- a/apps/hourstrike/READMS.md +++ b/apps/hourstrike/READMS.md @@ -6,11 +6,17 @@ Time passes too fast! This app configures your `Bangle.js` so that it buzzes on the hour or on the half hour. +This app is slightly different from [Hour Chime](https://github.com/espruino/BangleApps/tree/master/apps/widchime). `Hour Chimee` runs as a widget but `Hour Strike` runs as a background task, without showing a widget. + ## Features - Strikes the hour or the half hour - Set up a quiet time +## Known Issues + +1. This app does not know or check whether your clock already chimes on the hour. + ## Creator [Weiming Hu](https://weiming-hu.github.io/), using coding from the [Default Alarm](https://github.com/espruino/BangleApps/tree/master/apps/alarm). From 794b85834ce6fec4795c58c4ccd41face72dea3f Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 23:28:23 -0400 Subject: [PATCH 04/22] rename --- apps/hourstrike/{READMS.md => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/hourstrike/{READMS.md => README.md} (100%) diff --git a/apps/hourstrike/READMS.md b/apps/hourstrike/README.md similarity index 100% rename from apps/hourstrike/READMS.md rename to apps/hourstrike/README.md From 4574726f5db68ec21f98a65c9ae7950863c4db2d Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 23:28:45 -0400 Subject: [PATCH 05/22] trying to resolve the issue for quiet time --- apps/hourstrike/boot.js | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index 901784613..13748901f 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,21 +1,29 @@ (function() { var setting = require('Storage').readJSON('hourstrike.json',1)||[]; + var notify_on = []; + if (setting.on_hour || setting.on_harlf_hour) { var cur = new Date(); - var cur_hour = cur.getHours(); - if (setting.start_hour<=cur_hour&&cur_hour<=setting.end_hour) { - var cur_sec = cur.getMinutes()*60+cur.getSeconds(); - var notify_on = [1800, 3600]; - var t=cur_sec new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(100, 0.5)); - }; - if (t>0) { - setTimeout(notify_func, t*1000); - setTimeout(load, t*1000 + 600); - } + var cur_hour = cur.getHours(), cur_sec = cur.getMinutes()*60+cur.getSeconds(); + var notify_on = [1800, 3600]; + var notify_func = function() { + Bangle.buzz(200, 0.5) + .then(() => new Promise(resolve => setTimeout(resolve,200))) + .then(() => Bangle.buzz(200, 0.5)); + }; + var wait_sec = -1, notify_hour = cur_hour; + if (cur_sec0) { + if (setting.start_hour<=notify_hour&¬ify_hour<=setting.end_hour) { + setTimeout(notify_func, wait_sec*1000); + setTimeout(load, wait_sec*1000 + 800); + } else { + setTimeout(load, t*1000 + 800); + } } -})(); \ No newline at end of file +})(); From 314ea623a7c747413d8f44a843b287ebea5f6ee4 Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 16:59:00 -0400 Subject: [PATCH 06/22] add quiet time and intervals --- apps.json | 3 ++- apps/hourstrike/ChangeLog | 3 ++- apps/hourstrike/README.md | 6 +++--- apps/hourstrike/app.js | 34 ++++++++++++++-------------------- apps/hourstrike/boot.js | 30 ++++-------------------------- apps/hourstrike/hourstrike.js | 25 +++++++++++++++++++++++++ 6 files changed, 50 insertions(+), 51 deletions(-) create mode 100644 apps/hourstrike/hourstrike.js diff --git a/apps.json b/apps.json index 8018a4064..00c19f810 100644 --- a/apps.json +++ b/apps.json @@ -3065,13 +3065,14 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.01", + "version": "0.02", "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 5560f00bc..769b8ebeb 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -1 +1,2 @@ -0.01: New App! +0.01: New App +0.02: Add different strike intervals and support for quiet time diff --git a/apps/hourstrike/README.md b/apps/hourstrike/README.md index 555182290..4fe9595c0 100644 --- a/apps/hourstrike/README.md +++ b/apps/hourstrike/README.md @@ -10,12 +10,12 @@ This app is slightly different from [Hour Chime](https://github.com/espruino/Ban ## Features -- Strikes the hour or the half hour -- Set up a quiet time +- Strike the hour, the half hour, or the quarter hour +- Set up a range of hours that clock will strike ## Known Issues -1. This app does not know or check whether your clock already chimes on the hour. +- This app does not know or check whether your clock already chimes on the hour. ## Creator diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 4e39d689e..64d3c34d9 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -7,10 +7,9 @@ function updateSettings() { function resetSettings() { settings = { - on_hour: true, - on_half_hour: true, - start_hour: 9, - end_hour: 21, + interval: 3600, + start: 9, + end: 21, }; updateSettings(); } @@ -19,28 +18,22 @@ settings = storage.readJSON('hourstrike.json', 1); if (!settings) resetSettings(); function showMainMenu() { - var mode = ['off', 'v', 'b', 'vb', 'bv']; + var mode_txt = ['Off', 'Hour', 'Half', 'Quarter']; + var mode_interval = [-1, 3600, 1800, 900]; const mainmenu = { - '': { 'title': 'Time Passed' }, - 'On hour': { - value: settings.on_hour, - format: v => v?"ON":"OFF", + '': { 'title': 'Hour Strike' }, + 'Mode': { + value: mode_interval.indexOf(settings.mode), + format: v => mode_txt[v], onchange: v => { - settings.on_hour = v; + settings.interval = mode_interval[v]; updateSettings(); } }, - 'On half hour': { - value: settings.on_half_hour, - format: v => v?"ON":"OFF", - onchange: v => { - settings.on_half_hour = v; - updateSettings(); - } - }, - 'Start hour': { + 'Start': { value: settings.start_hour, min: 0, max: 23, + format: v => v+':00', onchange: v=> { settings.start_hour = v; updateSettings(); @@ -49,6 +42,7 @@ function showMainMenu() { 'End hour': { value: settings.end_hour, min: 0, max: 23, + format: v => v+':59', onchange: v=> { settings.end_hour = v; updateSettings(); @@ -59,4 +53,4 @@ function showMainMenu() { return E.showMenu(mainmenu); } -showMainMenu(); \ No newline at end of file +showMainMenu(); diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index 13748901f..a67e9a6d2 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,29 +1,7 @@ (function() { var setting = require('Storage').readJSON('hourstrike.json',1)||[]; - var notify_on = []; - - if (setting.on_hour || setting.on_harlf_hour) { - var cur = new Date(); - var cur_hour = cur.getHours(), cur_sec = cur.getMinutes()*60+cur.getSeconds(); - var notify_on = [1800, 3600]; - var notify_func = function() { - Bangle.buzz(200, 0.5) - .then(() => new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(200, 0.5)); - }; - var wait_sec = -1, notify_hour = cur_hour; - if (cur_sec0) { - if (setting.start_hour<=notify_hour&¬ify_hour<=setting.end_hour) { - setTimeout(notify_func, wait_sec*1000); - setTimeout(load, wait_sec*1000 + 800); - } else { - setTimeout(load, t*1000 + 800); - } - } + 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); })(); diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js new file mode 100644 index 000000000..4d3650d58 --- /dev/null +++ b/apps/hourstrike/hourstrike.js @@ -0,0 +1,25 @@ +clearInterval(); + +var setting = require('Storage').readJSON('hourstrike.json',1)||[]; +var cur = new Date(); +var cur_hour = cur.getHours(); +var cur_min = cur.getMinutes(); +var cur_sec = cur.getSeconds(); + +var wait_sec; +if (cur_hoursetting.end) { + wait_sec = ((23-cur_hour+setting.start)*60+59-cur_min)*60+60-cur_sec; +} else { + wait_sec = 0; +} + +var notify_func = function () { + Bangle.buzz(200, 0.5) + .then(() => new Promise(resolve => setTimeout(resolve,200))) + .then(() => Bangle.buzz(200, 0.5)); +}; + +setTimeout(notify_func, wait_sec*1000); +setTimeout(load, wait_sec*1000+800); From d867ff35e3b63748d1440e3aa70bdd91e87e81f6 Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:03:53 -0400 Subject: [PATCH 07/22] bug fix --- apps/hourstrike/app.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 64d3c34d9..cb4509561 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -23,7 +23,8 @@ function showMainMenu() { const mainmenu = { '': { 'title': 'Hour Strike' }, 'Mode': { - value: mode_interval.indexOf(settings.mode), + value: mode_interval.indexOf(settings.interval), + min: 0, max: 3, format: v => mode_txt[v], onchange: v => { settings.interval = mode_interval[v]; @@ -31,20 +32,20 @@ function showMainMenu() { } }, 'Start': { - value: settings.start_hour, + value: settings.start, min: 0, max: 23, format: v => v+':00', onchange: v=> { - settings.start_hour = v; + settings.start = v; updateSettings(); } }, - 'End hour': { - value: settings.end_hour, + 'End': { + value: settings.end, min: 0, max: 23, format: v => v+':59', onchange: v=> { - settings.end_hour = v; + settings.end = v; updateSettings(); } }, From 9605c628dea1bfc5f4d8f2a446f4790546ab9e8a Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:06:45 -0400 Subject: [PATCH 08/22] update version --- apps.json | 2 +- apps/hourstrike/ChangeLog | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 00c19f810..c90d710b8 100644 --- a/apps.json +++ b/apps.json @@ -3065,7 +3065,7 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.02", + "version": "0.03", "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 769b8ebeb..fd27e4c88 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -1,2 +1,3 @@ 0.01: New App 0.02: Add different strike intervals and support for quiet time +0.03: Bug fixes for setting attributes From ebc535d7eb4998c74b6640bd001d64bc98765418 Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:11:28 -0400 Subject: [PATCH 09/22] check menu --- apps/hourstrike/app.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index cb4509561..037e57341 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -34,7 +34,6 @@ function showMainMenu() { 'Start': { value: settings.start, min: 0, max: 23, - format: v => v+':00', onchange: v=> { settings.start = v; updateSettings(); @@ -43,7 +42,6 @@ function showMainMenu() { 'End': { value: settings.end, min: 0, max: 23, - format: v => v+':59', onchange: v=> { settings.end = v; updateSettings(); From 137ed3ee2d9830ea01da86aac6e2fefaf81cc7fb Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:21:32 -0400 Subject: [PATCH 10/22] testing --- apps/hourstrike/app.js | 2 +- apps/hourstrike/boot.js | 1 + apps/hourstrike/hourstrike.js | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 037e57341..8203e6f10 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -7,7 +7,7 @@ function updateSettings() { function resetSettings() { settings = { - interval: 3600, + interval: 60, start: 9, end: 21, }; diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index a67e9a6d2..ea8fd36a8 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -3,5 +3,6 @@ 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; + console.log(notify_sec); if (notify_sec>0) setTimeout(load('hourstrike.js'), notify_sec*1000); })(); diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index 4d3650d58..9f18513da 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -15,6 +15,8 @@ if (cur_hour new Promise(resolve => setTimeout(resolve,200))) From 686e0cd09113a569384b4400c2c7a4e5fec03b6d Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:26:02 -0400 Subject: [PATCH 11/22] buzz --- apps/hourstrike/.boot.js.swp | Bin 0 -> 12288 bytes apps/hourstrike/boot.js | 1 + 2 files changed, 1 insertion(+) create mode 100644 apps/hourstrike/.boot.js.swp diff --git a/apps/hourstrike/.boot.js.swp b/apps/hourstrike/.boot.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..ea6ab4d6de5f6e415b322ad0994c482da4663c2f GIT binary patch literal 12288 zcmeI&-D(p-6bJCBcNP3VUtmsBE2*4UpPD2GqY!AevpfhNt0JQyL>fnGk@J=?ALbse)yCY zM>~uSUB8`F`F~tF>0D$7Qk9J@X)Yf8bzHESOWSv8^RZBQL0f}C*%Z~SubnBaksqm< zYHi~W<;9iI0|5wJO2FA(WAz$)&~A;t()aG(;kR$?U#bKKLjVF0fB*y_009U<00Q$Z zUM>G(C00bZa0SG_<0uX=z1Rwwb2+W~?$QXNhov~9N)&KwJ zzyE*VVC;vFZ$94oxa#ANAM?}4_w(^{xL+(80uX=z1Rwwb2tWV=5P$##{ttmKQ5dZ= z&Sj5>N?X}GdRJ0+Gl_Ufc26FVb~Y@u$iiT9VBDV-526)58Nb|0l4M+`t5vBBiVK}j z)f;!69YBv$HyWMIc__?O4ZcxLX{E|zsVtd8QEVoUW>byX#8TIpYRPMjR<)0+W}Wc` z{iir5yDOEmREE*=!{mOQ>yTe+=5teT`8N~|`4eGjlCLN9eTF_cX($XjRvVF15XFW> g_N?>b`HYTM!AdJSK7RdXorOK8x>jlxM*K7T3!z1)uK)l5 literal 0 HcmV?d00001 diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index ea8fd36a8..dacf155aa 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -3,6 +3,7 @@ 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; + Bangle.buzz(); console.log(notify_sec); if (notify_sec>0) setTimeout(load('hourstrike.js'), notify_sec*1000); })(); From d45c91aa4ea91f6244bc85e5f7ded6b4ae6678f1 Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 17:35:19 -0400 Subject: [PATCH 12/22] remove testing code --- apps/hourstrike/.boot.js.swp | Bin 12288 -> 0 bytes apps/hourstrike/app.js | 4 ++-- apps/hourstrike/boot.js | 2 -- apps/hourstrike/hourstrike.js | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 apps/hourstrike/.boot.js.swp diff --git a/apps/hourstrike/.boot.js.swp b/apps/hourstrike/.boot.js.swp deleted file mode 100644 index ea6ab4d6de5f6e415b322ad0994c482da4663c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI&-D(p-6bJCBcNP3VUtmsBE2*4UpPD2GqY!AevpfhNt0JQyL>fnGk@J=?ALbse)yCY zM>~uSUB8`F`F~tF>0D$7Qk9J@X)Yf8bzHESOWSv8^RZBQL0f}C*%Z~SubnBaksqm< zYHi~W<;9iI0|5wJO2FA(WAz$)&~A;t()aG(;kR$?U#bKKLjVF0fB*y_009U<00Q$Z zUM>G(C00bZa0SG_<0uX=z1Rwwb2+W~?$QXNhov~9N)&KwJ zzyE*VVC;vFZ$94oxa#ANAM?}4_w(^{xL+(80uX=z1Rwwb2tWV=5P$##{ttmKQ5dZ= z&Sj5>N?X}GdRJ0+Gl_Ufc26FVb~Y@u$iiT9VBDV-526)58Nb|0l4M+`t5vBBiVK}j z)f;!69YBv$HyWMIc__?O4ZcxLX{E|zsVtd8QEVoUW>byX#8TIpYRPMjR<)0+W}Wc` z{iir5yDOEmREE*=!{mOQ>yTe+=5teT`8N~|`4eGjlCLN9eTF_cX($XjRvVF15XFW> g_N?>b`HYTM!AdJSK7RdXorOK8x>jlxM*K7T3!z1)uK)l5 diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 8203e6f10..be12e0da7 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -7,7 +7,7 @@ function updateSettings() { function resetSettings() { settings = { - interval: 60, + interval: 3600, start: 9, end: 21, }; @@ -23,7 +23,7 @@ function showMainMenu() { const mainmenu = { '': { 'title': 'Hour Strike' }, 'Mode': { - value: mode_interval.indexOf(settings.interval), + value: 1 | mode_interval.indexOf(settings.interval), min: 0, max: 3, format: v => mode_txt[v], onchange: v => { diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index dacf155aa..a67e9a6d2 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -3,7 +3,5 @@ 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; - Bangle.buzz(); - console.log(notify_sec); if (notify_sec>0) setTimeout(load('hourstrike.js'), notify_sec*1000); })(); diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index 9f18513da..4d3650d58 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -15,8 +15,6 @@ if (cur_hour new Promise(resolve => setTimeout(resolve,200))) From 1701e79f0cda34b513262cb94d1c686d1dd9b2f6 Mon Sep 17 00:00:00 2001 From: Weiming Date: Mon, 29 Mar 2021 21:49:35 -0400 Subject: [PATCH 13/22] add strength and more strike times --- apps.json | 2 +- apps/hourstrike/ChangeLog | 1 + apps/hourstrike/README.md | 3 ++- apps/hourstrike/app.js | 22 +++++++++++++++++----- apps/hourstrike/boot.js | 5 +++-- apps/hourstrike/hourstrike.js | 10 ++++++---- 6 files changed, 30 insertions(+), 13 deletions(-) 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); + + From d923201c79e69175dc45578586a9177f2df3cbe1 Mon Sep 17 00:00:00 2001 From: Weiming Date: Tue, 30 Mar 2021 10:05:53 -0400 Subject: [PATCH 14/22] fix bug for quiet time --- apps/hourstrike/boot.js | 21 ++++++++++++++++----- apps/hourstrike/hourstrike.js | 23 ++++------------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index 0e4ee7542..a787dcc14 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -1,8 +1,19 @@ (function() { 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-cur_sec%setting.interval:-1; - if (notify_sec>0) setTimeout(function() {load("hourstrike.js");}, notify_sec*1000); + 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; + if (wait_msec>0) { + t.setMilliseconds(t.getMilliseconds()+wait_msec); + var t_hour = t.getHours(); + if (t_hoursetting.end) { + var strike = new Date(t); + strike.setHours(setting.start); + if (t_hour>setting.end) { + strike.setDate(strike.getDate()+1); + } + wait_msec += strike-t; + } + setTimeout(function() {load("hourstrike.js");}, wait_msec); + } })(); - diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index 493edd8d7..c258d338a 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -1,27 +1,12 @@ clearInterval(); var setting = require('Storage').readJSON('hourstrike.json',1)||[]; -var cur = new Date(); -var cur_hour = cur.getHours(); -var cur_min = cur.getMinutes(); -var cur_sec = cur.getSeconds(); - -var wait_sec; -if (cur_hoursetting.end) { - wait_sec = ((23-cur_hour+setting.start)*60+59-cur_min)*60+60-cur_sec; -} else { - wait_sec = 0; -} function notify_func () { - Bangle.buzz(200, setting.vlevel) + Bangle.buzz(200, setting.vlevel||0.5) .then(() => new Promise(resolve => setTimeout(resolve,200))) - .then(() => Bangle.buzz(200, setting.vlevel)); + .then(() => Bangle.buzz(200, setting.vlevel||0.5)); } -setTimeout(notify_func, wait_sec*1000); -setTimeout(load, wait_sec*1000+800); - - +notify_func; +setTimeout(load, 800); From 107e865d3f6461a6cd225cdbe4430d9ef9672995 Mon Sep 17 00:00:00 2001 From: Weiming Date: Tue, 30 Mar 2021 20:28:58 -0400 Subject: [PATCH 15/22] bug fix when cloning a date object --- apps/hourstrike/boot.js | 2 +- apps/hourstrike/hourstrike.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index a787dcc14..a30ce78a1 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -7,7 +7,7 @@ t.setMilliseconds(t.getMilliseconds()+wait_msec); var t_hour = t.getHours(); if (t_hoursetting.end) { - var strike = new Date(t); + var strike = new Date(t.getTime()); strike.setHours(setting.start); if (t_hour>setting.end) { strike.setDate(strike.getDate()+1); diff --git a/apps/hourstrike/hourstrike.js b/apps/hourstrike/hourstrike.js index c258d338a..f21d44fb8 100644 --- a/apps/hourstrike/hourstrike.js +++ b/apps/hourstrike/hourstrike.js @@ -8,5 +8,5 @@ function notify_func () { .then(() => Bangle.buzz(200, setting.vlevel||0.5)); } -notify_func; +notify_func(); setTimeout(load, 800); From 4d1a98e009593c5861b9207580c1eb4d58bda8b8 Mon Sep 17 00:00:00 2001 From: Weiming Date: Tue, 30 Mar 2021 22:07:41 -0400 Subject: [PATCH 16/22] add strike time preview --- apps.json | 2 +- apps/hourstrike/ChangeLog | 1 + apps/hourstrike/README.md | 1 + apps/hourstrike/app.js | 7 +++++-- apps/hourstrike/boot.js | 16 +++++++++++----- 5 files changed, 19 insertions(+), 8 deletions(-) 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); } })(); From bd68c53d0ba379be2cc07e68fb5f2275fb0b6f89 Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 31 Mar 2021 08:33:38 -0400 Subject: [PATCH 17/22] fix a bug when strike time is outside the working range --- apps/hourstrike/boot.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index b3a53d9e2..e71a2a0dd 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -9,6 +9,7 @@ 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); } From 08e0ae7320665406dd5b167d6d3d6b501cc36827 Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 31 Mar 2021 09:51:07 -0400 Subject: [PATCH 18/22] change next strike time when strike is off --- apps/hourstrike/app.js | 4 ++++ apps/hourstrike/boot.js | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 153ec177b..8a61517ee 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -31,6 +31,10 @@ function showMainMenu() { format: v => mode_txt[v], onchange: v => { settings.interval = mode_interval[v]; + if (v===0) { + settings.next_hour = -1; + settings.next_minute = -1; + } updateSettings(); } }, diff --git a/apps/hourstrike/boot.js b/apps/hourstrike/boot.js index e71a2a0dd..d260795b2 100644 --- a/apps/hourstrike/boot.js +++ b/apps/hourstrike/boot.js @@ -20,7 +20,10 @@ settings.next_hour = t_hour; settings.next_minute = t.getMinutes(); } - require('Storage').write('hourstrike.json', settings); setTimeout(function() {load("hourstrike.js");}, wait_msec); + } else { + settings.next_hour = -1; + settings.next_minute = -1; } + require('Storage').write('hourstrike.json', settings); })(); From 6a861afea3545aff195140930bb01efef4def43d Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 31 Mar 2021 18:20:05 -0400 Subject: [PATCH 19/22] update app menu --- apps/hourstrike/app.js | 62 ++++++++++++------------------------------ 1 file changed, 18 insertions(+), 44 deletions(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 8a61517ee..1bf520321 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -23,50 +23,24 @@ if (!settings) resetSettings(); function showMainMenu() { 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' }, - 'Notify every': { - value: mode_interval.indexOf(settings.interval), - min: 0, max: 6, - format: v => mode_txt[v], - onchange: v => { - settings.interval = mode_interval[v]; - if (v===0) { - settings.next_hour = -1; - settings.next_minute = -1; - } - updateSettings(); - } - }, - 'Start': { - value: settings.start, - min: 0, max: 23, - format: v=>v+':00', - onchange: v=> { - settings.start = v; - updateSettings(); - } - }, - '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(); - } - } - }; - mainmenu['Next strike '+settings.next_hour+':'+settings.next_minute] = function(){}; + const mainmenu = {'': { 'title': 'Hour Strike' }}; + mainmenu['Next strike at '+settings.next_hour+':'+settings.next_minute] = function(){}; + mainmenu['Notify every'] = { + value: mode_interval.indexOf(settings.interval), + min: 0, max: 6, format: v => mode_txt[v], + onchange: v => { + settings.interval = mode_interval[v]; + if (v===0) {settings.next_hour = -1; settings.next_minute = -1;} + updateSettings();}}; + mainmenu.Start = { + value: settings.start, min: 0, max: 23, format: v=>v+':00', + onchange: v=> {settings.start = v; updateSettings();}}; + mainmenu.End = { + value: settings.end, min: 0, max: 23, format: v=>v+':59', + onchange: v=> {settings.end = v; updateSettings();}}; + mainmenu.Strength = { + value: settings.vlevel*10, min: 1, max: 10, format: v=>v/10, + onchange: v=> {settings.vlevel = v/10; updateSettings();}}; mainmenu['< Back'] = ()=>load(); return E.showMenu(mainmenu); } From 24a0e239a18a4d5e2e365027fd7a5b937c7f653f Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 31 Mar 2021 18:22:36 -0400 Subject: [PATCH 20/22] too many texts, remove some --- apps/hourstrike/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hourstrike/app.js b/apps/hourstrike/app.js index 1bf520321..c70fa2d41 100644 --- a/apps/hourstrike/app.js +++ b/apps/hourstrike/app.js @@ -24,7 +24,7 @@ function showMainMenu() { 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' }}; - mainmenu['Next strike at '+settings.next_hour+':'+settings.next_minute] = function(){}; + mainmenu['Next strike '+settings.next_hour+':'+settings.next_minute] = function(){}; mainmenu['Notify every'] = { value: mode_interval.indexOf(settings.interval), min: 0, max: 6, format: v => mode_txt[v], From df6d34b9510f891d088d8d974f0868f6d5ee653f Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 31 Mar 2021 18:32:11 -0400 Subject: [PATCH 21/22] update version --- apps.json | 2 +- apps/hourstrike/ChangeLog | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index c43310997..641fd5831 100644 --- a/apps.json +++ b/apps.json @@ -3065,7 +3065,7 @@ "name": "Hour Strike", "shortName": "Hour Strike", "icon": "app-icon.png", - "version": "0.05", + "version": "0.06", "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 6483adc05..b66c4ba60 100644 --- a/apps/hourstrike/ChangeLog +++ b/apps/hourstrike/ChangeLog @@ -3,3 +3,4 @@ 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 +0.06: Move the next strike time to the first row of display From 10c7e2e8d6ad4bbeeb84754cf926372fec630f7f Mon Sep 17 00:00:00 2001 From: Weiming Date: Fri, 2 Apr 2021 22:22:08 -0400 Subject: [PATCH 22/22] update boot code --- apps.json | 3 +- apps/hourstrike/ChangeLog | 1 + apps/hourstrike/boot.js | 56 +++++++++++++++++++++-------------- apps/hourstrike/hourstrike.js | 12 -------- 4 files changed, 35 insertions(+), 37 deletions(-) delete mode 100644 apps/hourstrike/hourstrike.js 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);