From 9f82c9ce50621553b45584605f16f2a287244a47 Mon Sep 17 00:00:00 2001 From: Weiming Date: Sun, 28 Mar 2021 22:34:25 -0400 Subject: [PATCH] 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