From 28421a5e87156587253a23fede061c2b67c7f1c7 Mon Sep 17 00:00:00 2001 From: kirktrekkie Date: Mon, 7 Nov 2022 20:04:41 +0100 Subject: [PATCH 1/4] Added barwatch --- apps/barwatch/ChangeLog | 1 + apps/barwatch/README.md | 5 +++ apps/barwatch/app-icon.js | 1 + apps/barwatch/app.js | 80 ++++++++++++++++++++++++++++++++++++ apps/barwatch/app.png | Bin 0 -> 973 bytes apps/barwatch/barwatch.png | Bin 0 -> 1343 bytes apps/barwatch/metadata.json | 18 ++++++++ 7 files changed, 105 insertions(+) create mode 100644 apps/barwatch/ChangeLog create mode 100644 apps/barwatch/README.md create mode 100644 apps/barwatch/app-icon.js create mode 100644 apps/barwatch/app.js create mode 100644 apps/barwatch/app.png create mode 100644 apps/barwatch/barwatch.png create mode 100644 apps/barwatch/metadata.json diff --git a/apps/barwatch/ChangeLog b/apps/barwatch/ChangeLog new file mode 100644 index 000000000..7f837e50e --- /dev/null +++ b/apps/barwatch/ChangeLog @@ -0,0 +1 @@ +0.01: First version diff --git a/apps/barwatch/README.md b/apps/barwatch/README.md new file mode 100644 index 000000000..c37caa6e4 --- /dev/null +++ b/apps/barwatch/README.md @@ -0,0 +1,5 @@ +# BarWatch - an experimental watch + +For too long the watches have shown the time with digits or hands. No more! +With this stylish watch the time is represented by bars. Up to 24 as the day goes by. +Practical? Not really, but a different look! \ No newline at end of file diff --git a/apps/barwatch/app-icon.js b/apps/barwatch/app-icon.js new file mode 100644 index 000000000..f976346fb --- /dev/null +++ b/apps/barwatch/app-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("l0uwkE/4A/AH4A/AB0gicQmUB+EPgEigExh8gj8A+ECAgMQn4WCgcACyotWC34W/C34W/CycACw0wgYWFBYIWCAAc/+YGHCAgNFACkxl8hGYwAMLYUvCykQC34WycoIW/C34W0gAWTmUjkUzkbmSAFY=")) \ No newline at end of file diff --git a/apps/barwatch/app.js b/apps/barwatch/app.js new file mode 100644 index 000000000..ff43bad44 --- /dev/null +++ b/apps/barwatch/app.js @@ -0,0 +1,80 @@ +// timeout used to update every minute +var drawTimeout; + +// schedule a draw for the next minute +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + + +function draw() { + g.reset(); + g.setBgColor(0, 1, 1); + + // work out how to display the current time + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(); + //h = 13; + //m = 59; + + var battery = E.getBattery() / 100; + g.setColor(1-battery,0+battery,0); + //console.log(battery); + g.setColor(1,1,1); + + var bx_offset = 10, by_offset = 35; + var b_width = 8, b_height = 60; + var b_space = 5; + + // hour bars + for(var i=0; i 11){ + by_offset = 105; + } + var iter = i % 12; + //console.log(iter); + g.fillRect(bx_offset+(b_width*(iter+1))+(b_space*iter), + by_offset, + bx_offset+(b_width*iter)+(b_space*iter), + by_offset+b_height); + } + + // minute bar + if(h > 11){ + by_offset = 105; + } + var m_bar = h % 12; + if(m != 0){ + g.fillRect(bx_offset+(b_width*(m_bar+1))+(b_space*m_bar), + by_offset+b_height-m, + bx_offset+(b_width*m_bar)+(b_space*m_bar), + by_offset+b_height); + } + + // queue draw in one minute + queueDraw(); +} + +Bangle.loadWidgets(); + +// Clear the screen once, at startup +g.clear(); +// draw immediately at first +draw(); +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); + + +Bangle.drawWidgets(); +Bangle.setUI("clock"); \ No newline at end of file diff --git a/apps/barwatch/app.png b/apps/barwatch/app.png new file mode 100644 index 0000000000000000000000000000000000000000..134de9424bba19e3208a14cc1f755df74aeb3172 GIT binary patch literal 973 zcmV;;12X)HP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&17b-;K~!i%?U_AG zGeHo?CyDQ%D84~_K|!>Th&Fx(3keA6liF`!Av{=#f`x^pAHl-L4`3no7FJ>t-xJg% z#w6-`|38`K@R20N!{zdDKR9+~Z)R??+3e13LdHQ_kZ`qaIfBH!CP>_Cg2cVXCjR;P zDWy_LDwPU#wD0fll(E!9{`mNyUMv=+TrN{a3qRQ4f~@xt1GeDn>x=SlF<=Kj*Z_A7 zw6OhayKy?m*47s8n7O$*bAEnq=I7_B9~~W;ot+)ZsZ@%#kjKZz&HeqoiAJN;VY9ot zOL=N)%3NGrn5Cs9>Q`4+W`BR5aw3s1&LB|k@9#HHPfs?+_V%_pJUpblu&`iWUS7=N z;v)5vlM_B$u_Lad`~3XO(JvGV)G-=5N;(Q4pU<;>dwXMxQBoh+>o*7@kq9pU`}X#B z%6Jxdcz9sz+S()>4%=tzOi*m%8mz0Ui%zOT?&#>CtbG770&7ChJ3BimqYpZK z0qk%A^oK$rE2F=sr-wTF^;sHQ<7=zb{c&OxaH(7i_x*adjZiB_-NgM$khs?biF-|u zxYq=Udrd=$>lR%Pw_T$?wWt-tCaxtViX+IXW7}2P9q8wF3>)|=kbm2<-F@(Zu7wnE z$I$yKyRnIDwda(QtbeoFEOk_CudlC^Gnouq;FP1R7PSvmpVr=}_TUE_fY=%zaWzpS ziKxg0CD(a}+HYHbD?8yln3?d`2N^|K5O4aw!@rS$gp z^4|6JH7mEl!9ji_kB^V63Y{98KKRhHv$HIDZ*FdAhszxUc1RMj;d^&?$Cwin6OvA+ z`N1Y9CvEi!TK^>L`1n|o$)s#gLr;Q(IC~;@KuS))*p~U@2khs^_ z#C0D3Y~A>2uG_@*{24_%mOotr^&bJCXXt()^2dRK^TsheJS;0KE3&-2EPZ`_GBYzH v@pxPY1_rnht*)+0EEc0KYFn5^BR*R?HIDeOs`DYw@LY|;5&pN@2GirHp!;=}VK zh&yl0{U_|5S3K+9%d=vKUKv!CDi}0!zHw}Odv@j9UbqL|1b!+qwNX7e_i|(G`bekG z3Wu9}VvX+Yq(0@!mBAvlLimQf^UBhtn+%!4`&@%H8JU(Z zxe^L=-O~t@sX)rhD^`_p*hzJ;`rQwZWwHhqH0rt6tL88?%DcbfEf-Sw;CE}?R|`fa z`@SpE?|_j$cT4Q+LME0vnU&^uJR1&JXYRiCn1$nyMNs~Z$qbF2=lsJk Date: Mon, 7 Nov 2022 20:12:05 +0100 Subject: [PATCH 2/4] barwatch fixes --- apps/barwatch/app.js | 19 ++++++++---------- apps/barwatch/metadata.json | 2 +- .../barwatch/{barwatch.png => screenshot.png} | Bin 3 files changed, 9 insertions(+), 12 deletions(-) rename apps/barwatch/{barwatch.png => screenshot.png} (100%) diff --git a/apps/barwatch/app.js b/apps/barwatch/app.js index ff43bad44..d6b759706 100644 --- a/apps/barwatch/app.js +++ b/apps/barwatch/app.js @@ -13,24 +13,22 @@ function queueDraw() { function draw() { g.reset(); - g.setBgColor(0, 1, 1); + + if(g.theme.dark){ + g.setColor(1,1,1); + }else{ + g.setColor(0,0,0); + } // work out how to display the current time var d = new Date(); var h = d.getHours(), m = d.getMinutes(); - //h = 13; - //m = 59; - - var battery = E.getBattery() / 100; - g.setColor(1-battery,0+battery,0); - //console.log(battery); - g.setColor(1,1,1); + // hour bars var bx_offset = 10, by_offset = 35; var b_width = 8, b_height = 60; var b_space = 5; - // hour bars for(var i=0; i 11){ by_offset = 105; @@ -75,6 +73,5 @@ Bangle.on('lcdPower',on=>{ } }); - +Bangle.setUI("clock"); Bangle.drawWidgets(); -Bangle.setUI("clock"); \ No newline at end of file diff --git a/apps/barwatch/metadata.json b/apps/barwatch/metadata.json index f0e3b87ab..adcd44107 100644 --- a/apps/barwatch/metadata.json +++ b/apps/barwatch/metadata.json @@ -5,7 +5,7 @@ "version":"0.01", "description": "A watch that displays the time using bars. One bar for each hour.", "readme": "README.md", - "icon": "barwatch.png", + "icon": "screenshot.png", "tags": "clock", "type": "clock", "allow_emulator":true, diff --git a/apps/barwatch/barwatch.png b/apps/barwatch/screenshot.png similarity index 100% rename from apps/barwatch/barwatch.png rename to apps/barwatch/screenshot.png From 6442be55699a706a86bff73d2b3bdf81d2f450d9 Mon Sep 17 00:00:00 2001 From: kirktrekkie Date: Mon, 7 Nov 2022 20:17:32 +0100 Subject: [PATCH 3/4] Fixing app-icon.js --- apps/barwatch/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/barwatch/app-icon.js b/apps/barwatch/app-icon.js index f976346fb..82416ee28 100644 --- a/apps/barwatch/app-icon.js +++ b/apps/barwatch/app-icon.js @@ -1 +1 @@ -E.toArrayBuffer(atob("l0uwkE/4A/AH4A/AB0gicQmUB+EPgEigExh8gj8A+ECAgMQn4WCgcACyotWC34W/C34W/CycACw0wgYWFBYIWCAAc/+YGHCAgNFACkxl8hGYwAMLYUvCykQC34WycoIW/C34W0gAWTmUjkUzkbmSAFY=")) \ No newline at end of file +require("heatshrink").decompress(atob("l0uwkE/4A/AH4A/AB0gicQmUB+EPgEigExh8gj8A+ECAgMQn4WCgcACyotWC34W/C34W/CycACw0wgYWFBYIWCAAc/+YGHCAgNFACkxl8hGYwAMLYUvCykQC34WycoIW/C34W0gAWTmUjkUzkbmSAFY=")) \ No newline at end of file From 650cb3e0554a58ddd6183bd0acf4347dd383d3b7 Mon Sep 17 00:00:00 2001 From: kirktrekkie Date: Mon, 7 Nov 2022 20:29:41 +0100 Subject: [PATCH 4/4] Moving loadWidgets --- apps/barwatch/app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/barwatch/app.js b/apps/barwatch/app.js index d6b759706..e0ed15ce6 100644 --- a/apps/barwatch/app.js +++ b/apps/barwatch/app.js @@ -57,8 +57,6 @@ function draw() { queueDraw(); } -Bangle.loadWidgets(); - // Clear the screen once, at startup g.clear(); // draw immediately at first @@ -74,4 +72,5 @@ Bangle.on('lcdPower',on=>{ }); Bangle.setUI("clock"); +Bangle.loadWidgets(); Bangle.drawWidgets();