From bf906e1469d33c78cc9be476c83390bbdfc740cf Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 11:50:05 +0100 Subject: [PATCH 1/6] add a mixed clock app --- apps.json | 12 ++++++ apps/clock-mixed-icon.js | 1 + apps/clock-mixed.js | 86 +++++++++++++++++++++++++++++++++++++++ apps/clock-mixed.json | 6 +++ apps/clock-mixed.png | Bin 0 -> 707 bytes 5 files changed, 105 insertions(+) create mode 100644 apps/clock-mixed-icon.js create mode 100644 apps/clock-mixed.js create mode 100644 apps/clock-mixed.json create mode 100755 apps/clock-mixed.png diff --git a/apps.json b/apps.json index fe846bfba..ffaa51c51 100644 --- a/apps.json +++ b/apps.json @@ -396,5 +396,17 @@ {"name":"-scolor","url":"show-color.js"}, {"name":"*scolor","url":"show-color-icon.js","evaluate":true} ] + }, + { "id": "mclock", + "name": "A mix of analog and digital Clock", + "icon": "clock-mixed.png", + "description": "Mixed AD Clock", + "tags": "mclock", + "type":"clock", + "storage": [ + {"name":"+mclock","url":"clock-mixed.json"}, + {"name":"-mclock","url":"clock-mixed.js"}, + {"name":"*mclock","url":"clock-mixed-icon.js","evaluate":true} + ] } ] diff --git a/apps/clock-mixed-icon.js b/apps/clock-mixed-icon.js new file mode 100644 index 000000000..3ca3b0612 --- /dev/null +++ b/apps/clock-mixed-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4ATiwAGFdYzlFp4xeFyYwZD49kxGs2fX6+z1mIsgxcDQtAxArCAA+zxFAGDAYFxAsJAAuIGCxcF1omHgEABI+sGCouERRIvJSgKTEFzovLGAJgRCIiMIF5ySGF57qMF5nXsgvORoggLF5yRPLyAvO6+IF6LsKF6JgEF5lkD5gvPYIiOaF6CQMBYesD5oAP1gvPXxpfDAQIAFYCILDJ5wvP64veACCPeAB6PQd4p9EQQ4MLd6GIF7uIF5YwDsgiNAY4vHsguLYBJfXXxiQKL66ONF4lAL7dAF5pgIF6y9DFxYvEi2sF6+sDwgvLGAryEACLsEFxrCGGCmzXh5gJSQYAPRgovQGA1kMR7qEFyQwHi2IGJWzxCLEFygwIMYOI1gzC2esxBbGFywxKABotXGCwuaGKQtdGZorjAH4A/AF4=")) diff --git a/apps/clock-mixed.js b/apps/clock-mixed.js new file mode 100644 index 000000000..b2197c8e6 --- /dev/null +++ b/apps/clock-mixed.js @@ -0,0 +1,86 @@ +/* jshint esversion: 6 */ +(function() { + + const Radius = { "center": 8, "hour": 78, "min": 95, "dots": 102 }; + const Center = { "x": 120, "y": 132 }; + + function rotatePoint(x, y, d) { + rad = -1 * d / 180 * Math.PI; + var sin = Math.sin(rad); + var cos = Math.cos(rad); + xn = ((Center.x + x * cos - y * sin) + 0.5) | 0; + yn = ((Center.y + x * sin - y * cos) + 0.5) | 0; + p = [xn, yn]; + return p; + } + + function drawMixedClock() { + + var date = new Date(); + var dateArray = date.toString().split(" "); + var point = []; + var minute = date.getMinutes(); + var hour = date.getHours(); + var radius; + + // draw date + g.setColor(0x7be0); + g.setFont("6x8", 2); + g.setFontAlign(-1, 0); + g.drawString(dateArray[0] + ' ', 4, 35, true); + g.drawString(' ' + dateArray[2], 4, 225, true); + g.setFontAlign(1, 0); + g.drawString(dateArray[1], 237, 35, true); + g.drawString(dateArray[3], 237, 225, true); + + // draw hour and minute dots + g.setColor(0xFD20); // orange + for (i = 0; i < 60; i++) { + radius = (i % 5) ? 2 : 4; + point = rotatePoint(0, Radius.dots, i * 6); + g.fillCircle(point[0], point[1], radius); + } + + // erase last minutes hand + g.setColor(0); + point = rotatePoint(0, Radius.min, (minute - 1) * 6); + g.drawLine(Center.x, Center.y, point[0], point[1]); + + // erase last two hour hands + g.setColor(0); + p = rotatePoint(0, Radius.hour, hour % 12 * 30 + (minute - 2) / 2 | 0); + g.drawLine(Center.x, Center.y, p[0], p[1]); + point = rotatePoint(0, Radius.hour, hour % 12 * 30 + (minute - 1) / 2 | 0); + g.drawLine(Center.x, Center.y, point[0], point[1]); + + // draw digital time + g.setFont("6x8", 3); + g.setColor(0x7be0); + g.setFontAlign(0, 0); + g.drawString(dateArray[4].substr(0, 5), 120, 180, true); + + // draw new minute hand + point = rotatePoint(0, Radius.min, minute * 6); + g.setColor(0xFFFF); + g.drawLine(Center.x, Center.y, point[0], point[1]); + // draw new hour hand + point = rotatePoint(0, Radius.hour, hour % 12 * 30 + date.getMinutes() / 2 | 0); + g.setColor(0xFFFF); + g.drawLine(Center.x, Center.y, point[0], point[1]); + + // draw center + g.setColor(0xFD20); + g.fillCircle(Center.x, Center.y, Radius.center); + } + Bangle.on('lcdPower', function(on) { + if (on) { + drawMixedClock(); + drawWidgets(); + } + }); + + g.clear(); + setInterval(drawMixedClock, 5E3); + drawMixedClock(); + +})(); diff --git a/apps/clock-mixed.json b/apps/clock-mixed.json new file mode 100644 index 000000000..196246e23 --- /dev/null +++ b/apps/clock-mixed.json @@ -0,0 +1,6 @@ +{ + "name":"Mixed Clock","type":"clock", + "icon":"*mclock", + "src":"-mclock", + "sortorder":-10 +} diff --git a/apps/clock-mixed.png b/apps/clock-mixed.png new file mode 100755 index 0000000000000000000000000000000000000000..f02ad5e9ee3a0bf215beed0d8cf9d8765015b314 GIT binary patch literal 707 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sa{_!qT!A#h<|7Pi4ua5HFbQJp zXIKqmL!}Nu)d0C0Pcy7Jz_11^0@Skh5J>T=0}N|{f(PHddk0d?KpYl@w4E=7yS=i zxccJNmV1x&cAi=$dl2LS>5?G7UISE7D(w3b_%UOgE( z!JUDDakr<7V~EG`yP-FyH5u@PGO{{49xq+BhH24`GiUz)zdd0UuRzrOz0Y4P%*~r^ z^3wOc^2PfW$F^^ch$ue%@mKy?_tOv8wJo#`nl<}Y!u3NA#!tV+Ut7og%jMagZw4Ro zD+SXcBV3mLpK;O3d1mj=M~eJ2945&Bcv5j~qy6^p{*u`W)<5Ssp1<(p+x6)W>;C`p z3VJ8nDW3M<$&K?(MdQ}6C(HPLH`@wLU`&6ZR(N8+k=Fwa1-{)A<4;`gJjwBfM{>>c z8cx2{A}0pFom;hAf1Q+6R8U%>z2_FMi@*vFMwf@2O~Ji+KCTI=sgF3C8s!3+ex-06 z+9M_U_34bQ6GPO39UE5ho#gzj{==f>4kuHJVwiB!2^Pf@jV!N(Sa-QJv#~!|Z+c+C z$0%h{#`U7Y;n#AH_zS$7dNNADCQfRTuuEo+=SNS!1CN9YDl1R>cR1RFJz@0Zc*HnS zebxyM&iX|mESHpDAK~wE@J`d4(r9#9Gv%fJEz{OB%YrfsR@$(yU1ZI@a!N;`)YYRF zPKIG8Y9&<@W!gPU>QC*}eH|kldpAJCXZALo+aczz+i!}5FaDl;y|`zksYFC@^4_=K b?F9c{ecS$I?dMmTpw#H;>gTe~DWM4f>^e@f literal 0 HcmV?d00001 From f9e419a4d0034b275c9f08f41f493f0960d94249 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 11:58:43 +0100 Subject: [PATCH 2/6] update id --- apps.json | 10 +++++----- apps/clock-mixed.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps.json b/apps.json index ffaa51c51..2535b3f6a 100644 --- a/apps.json +++ b/apps.json @@ -397,16 +397,16 @@ {"name":"*scolor","url":"show-color-icon.js","evaluate":true} ] }, - { "id": "mclock", + { "id": "miclock", "name": "A mix of analog and digital Clock", "icon": "clock-mixed.png", "description": "Mixed AD Clock", - "tags": "mclock", + "tags": "miclock", "type":"clock", "storage": [ - {"name":"+mclock","url":"clock-mixed.json"}, - {"name":"-mclock","url":"clock-mixed.js"}, - {"name":"*mclock","url":"clock-mixed-icon.js","evaluate":true} + {"name":"+miclock","url":"clock-mixed.json"}, + {"name":"-miclock","url":"clock-mixed.js"}, + {"name":"*miclock","url":"clock-mixed-icon.js","evaluate":true} ] } ] diff --git a/apps/clock-mixed.json b/apps/clock-mixed.json index 196246e23..b5396287a 100644 --- a/apps/clock-mixed.json +++ b/apps/clock-mixed.json @@ -1,6 +1,6 @@ { "name":"Mixed Clock","type":"clock", - "icon":"*mclock", - "src":"-mclock", + "icon":"*miclock", + "src":"-miclock", "sortorder":-10 } From 9e5d53620610dd86afdaccf52586fce04438e519 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 12:03:17 +0100 Subject: [PATCH 3/6] update apps record --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 2535b3f6a..4137fbc5e 100644 --- a/apps.json +++ b/apps.json @@ -398,9 +398,9 @@ ] }, { "id": "miclock", - "name": "A mix of analog and digital Clock", + "name": "Mixed Clock", "icon": "clock-mixed.png", - "description": "Mixed AD Clock", + "description": "A mix of analog and digital Clock", "tags": "miclock", "type":"clock", "storage": [ From 7c276e3ac1cb2513f88535d09f98aed41af345e7 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 12:19:20 +0100 Subject: [PATCH 4/6] flip draws --- apps/clock-mixed.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/clock-mixed.js b/apps/clock-mixed.js index b2197c8e6..4ab1dbcf1 100644 --- a/apps/clock-mixed.js +++ b/apps/clock-mixed.js @@ -74,8 +74,8 @@ } Bangle.on('lcdPower', function(on) { if (on) { - drawMixedClock(); drawWidgets(); + drawMixedClock(); } }); From 0487c0f97b00803ee44ba5f880434309a13739f5 Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 13:41:56 +0100 Subject: [PATCH 5/6] do set color before the image draw Image charging sometimes get displayed with the last app coller setting instead of white. --- apps/widget-battery.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widget-battery.js b/apps/widget-battery.js index 818e8a170..0e30daabe 100644 --- a/apps/widget-battery.js +++ b/apps/widget-battery.js @@ -7,12 +7,12 @@ function draw() { var s = 63; var x = xpos, y = 0; g.clearRect(x,y,x+s,y+23); + g.setColor(1,1,1); if (Bangle.isCharging()) { g.drawImage(img_charge,x,y); x+=16; s-=16; } - g.setColor(1,1,1); g.fillRect(x,y+2,x+s-4,y+21); g.clearRect(x+2,y+4,x+s-6,y+19); g.fillRect(x+s-3,y+10,x+s,y+14); From f94af8a72d4d321cd8226158741a19c661144bca Mon Sep 17 00:00:00 2001 From: MaBecker Date: Wed, 13 Nov 2019 18:25:01 +0100 Subject: [PATCH 6/6] include widgets during start --- apps/clock-mixed.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/clock-mixed.js b/apps/clock-mixed.js index 4ab1dbcf1..97c73c0aa 100644 --- a/apps/clock-mixed.js +++ b/apps/clock-mixed.js @@ -81,6 +81,7 @@ g.clear(); setInterval(drawMixedClock, 5E3); + drawWidgets(); drawMixedClock(); })();