From 22d93ef884d9b06f864a1359bbd818083cbfe221 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 1 Apr 2020 22:23:33 +0200 Subject: [PATCH 1/6] widget hand wash timer --- apps.json | 11 +++++++++++ apps/widhwt/ChangeLog | 1 + apps/widhwt/widget.js | 22 ++++++++++++++++++++++ apps/widhwt/widget.png | Bin 0 -> 3574 bytes 4 files changed, 34 insertions(+) create mode 100644 apps/widhwt/ChangeLog create mode 100644 apps/widhwt/widget.js create mode 100644 apps/widhwt/widget.png diff --git a/apps.json b/apps.json index a84a8010c..ce63d3b00 100644 --- a/apps.json +++ b/apps.json @@ -951,5 +951,16 @@ {"name":"chrono.app.js","url":"chrono.js"}, {"name":"chrono.img","url":"chrono-icon.js","evaluate":true} ] + }, + { "id": "widhwt", + "name": "Hand Wash Timer", + "icon": "widget.png", + "version":"0.01", + "description": "Any swip will start your personal Bangle.js hand wash timer for 35 sec. Start washing after the short buzz and stop after the long buzz.", + "tags": "widget,tool", + "type":"widget", + "storage": [ + {"name":"widhwt.wid.js","url":"widget.js"} + ] } ] diff --git a/apps/widhwt/ChangeLog b/apps/widhwt/ChangeLog new file mode 100644 index 000000000..4c21f3ace --- /dev/null +++ b/apps/widhwt/ChangeLog @@ -0,0 +1 @@ +0.01: New Widget! diff --git a/apps/widhwt/widget.js b/apps/widhwt/widget.js new file mode 100644 index 000000000..55ffec028 --- /dev/null +++ b/apps/widhwt/widget.js @@ -0,0 +1,22 @@ +/* jshint esversion: 6 */ +(() => { + var icon = require("heatshrink").decompress(atob("jEYwIKHgwCBhwCBh4CEggPCkACBmAXDBwVZ+EB+F4gEsjl8EgMP+EChk/gEMh+ehkA+YIBxwxBnF/4HggH/wEAj0AA==")); + var color = 0x4A69; + + function draw() { + g.reset().setColor(color).drawImage(icon, this.x + 1, 0); + } + + WIDGETS["widhwt"] = { area: "tr", width: 26, draw: draw }; + + Bangle.on('swipe', function() { + color = 0x41f; + Bangle.buzz(); + Bangle.drawWidgets(); + setTimeout(() => { + color = 0x4A69; + Bangle.buzz(1E3, 1); + Bangle.drawWidgets(); + }, 35E3); + }); +})(); diff --git a/apps/widhwt/widget.png b/apps/widhwt/widget.png new file mode 100644 index 0000000000000000000000000000000000000000..0021c9fa6d81ae457c8082f5944121e39915dfd5 GIT binary patch literal 3574 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 literal 0 HcmV?d00001 From ec1e6bda82dbd3110899054cc316f1bc7533459e Mon Sep 17 00:00:00 2001 From: DerGuteWolf Date: Thu, 2 Apr 2020 10:22:55 +0200 Subject: [PATCH 2/6] Take into account discussion from #167 Using now weekday abbrev, space, short dateformat with full-year removed. This should work for most locales (I hardcoded also replacing a trailing slash esp for en_IL and fr_FR) --- apps/marioclock/marioclock-app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/marioclock/marioclock-app.js b/apps/marioclock/marioclock-app.js index c0ada5e59..ecbaba38a 100644 --- a/apps/marioclock/marioclock-app.js +++ b/apps/marioclock/marioclock-app.js @@ -285,7 +285,10 @@ function drawTime() { function drawDate() { g.setFont("6x8"); g.setColor(LIGHTEST); - const dateStr = locale.date(new Date(), true); + let d = new Date(); + let dateStr = locale.date(d, true); + dateStr = dateStr.replace(d.getFullYear(), "").trim().replace(/\/$/i,""); + dateStr = locale.dow(d, true) + " " + dateStr; g.drawString(dateStr, (W - g.stringWidth(dateStr))/2, 0, true); } From 9d136b2e28b37f68a5961aede5c62da1a0ae8e0a Mon Sep 17 00:00:00 2001 From: DerGuteWolf Date: Thu, 2 Apr 2020 10:25:22 +0200 Subject: [PATCH 3/6] Update ChangeLog --- apps/marioclock/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/marioclock/ChangeLog b/apps/marioclock/ChangeLog index 79f103c48..4334ad92c 100644 --- a/apps/marioclock/ChangeLog +++ b/apps/marioclock/ChangeLog @@ -1,3 +1,4 @@ 0.01: Create mario app 0.02: Fix day of the week and add padding 0.03: use short date format from locale, take timeout from settings +0.04: modify date to display to be more at the original idea but still localized From 291342ea16d4a429ee9b3885e1299f0440dc2da1 Mon Sep 17 00:00:00 2001 From: DerGuteWolf Date: Thu, 2 Apr 2020 10:26:13 +0200 Subject: [PATCH 4/6] marioclock version 0.04 --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 019573266..1c1bf8c5c 100644 --- a/apps.json +++ b/apps.json @@ -892,7 +892,7 @@ { "id": "marioclock", "name": "Mario Clock", "icon": "marioclock.png", - "version":"0.03", + "version":"0.04", "description": "Animated Mario clock, jumps to change the time!", "tags": "clock,mario,retro", "type": "clock", From bdfcea2bf725f7f8344897a6693b080a40a66646 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Thu, 2 Apr 2020 12:04:41 +0200 Subject: [PATCH 5/6] widget hand wash timer --- apps.json | 2 +- apps/widhwt/widget.js | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/apps.json b/apps.json index ce63d3b00..644258709 100644 --- a/apps.json +++ b/apps.json @@ -956,7 +956,7 @@ "name": "Hand Wash Timer", "icon": "widget.png", "version":"0.01", - "description": "Any swip will start your personal Bangle.js hand wash timer for 35 sec. Start washing after the short buzz and stop after the long buzz.", + "description": "Swipe your wrist over the watch face to start your personal Bangle.js hand wash timer for 35 sec. Start washing after the short buzz and stop after the long buzz.", "tags": "widget,tool", "type":"widget", "storage": [ diff --git a/apps/widhwt/widget.js b/apps/widhwt/widget.js index 55ffec028..a8b15ac9b 100644 --- a/apps/widhwt/widget.js +++ b/apps/widhwt/widget.js @@ -2,6 +2,7 @@ (() => { var icon = require("heatshrink").decompress(atob("jEYwIKHgwCBhwCBh4CEggPCkACBmAXDBwVZ+EB+F4gEsjl8EgMP+EChk/gEMh+ehkA+YIBxwxBnF/4HggH/wEAj0AA==")); var color = 0x4A69; + var isActive = false; function draw() { g.reset().setColor(color).drawImage(icon, this.x + 1, 0); @@ -9,14 +10,18 @@ WIDGETS["widhwt"] = { area: "tr", width: 26, draw: draw }; - Bangle.on('swipe', function() { - color = 0x41f; - Bangle.buzz(); - Bangle.drawWidgets(); - setTimeout(() => { - color = 0x4A69; - Bangle.buzz(1E3, 1); + Bangle.on('twist', function() { + if (!isActive) { + isActive = true; + color = 0x41f; + Bangle.buzz(); Bangle.drawWidgets(); - }, 35E3); + setTimeout(() => { + color = 0x4A69; + Bangle.buzz(1E3, 1); + Bangle.drawWidgets(); + setTimeout(() => { isActive = false; }, 1E10); + }, 35E3); + } }); -})(); +})(); \ No newline at end of file From ae5f8e8f086ce7d64552742c3f2daaf3d4c0a1fd Mon Sep 17 00:00:00 2001 From: MaBecker Date: Thu, 2 Apr 2020 13:41:28 +0200 Subject: [PATCH 6/6] widget hand wash timer --- apps/widhwt/widget.js | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/apps/widhwt/widget.js b/apps/widhwt/widget.js index a8b15ac9b..3fff48800 100644 --- a/apps/widhwt/widget.js +++ b/apps/widhwt/widget.js @@ -2,7 +2,6 @@ (() => { var icon = require("heatshrink").decompress(atob("jEYwIKHgwCBhwCBh4CEggPCkACBmAXDBwVZ+EB+F4gEsjl8EgMP+EChk/gEMh+ehkA+YIBxwxBnF/4HggH/wEAj0AA==")); var color = 0x4A69; - var isActive = false; function draw() { g.reset().setColor(color).drawImage(icon, this.x + 1, 0); @@ -10,18 +9,15 @@ WIDGETS["widhwt"] = { area: "tr", width: 26, draw: draw }; - Bangle.on('twist', function() { - if (!isActive) { - isActive = true; - color = 0x41f; - Bangle.buzz(); + Bangle.on('swipe', function() { + color = 0x41f; + Bangle.buzz(); + Bangle.drawWidgets(); + setTimeout(() => { + color = 0x4A69; + Bangle.buzz(1E3, 1); Bangle.drawWidgets(); - setTimeout(() => { - color = 0x4A69; - Bangle.buzz(1E3, 1); - Bangle.drawWidgets(); - setTimeout(() => { isActive = false; }, 1E10); - }, 35E3); - } + }, 35E3); + }); })(); \ No newline at end of file