From 563030affbbd81c6515b17edd4ccf574a6d89d43 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Wed, 21 Jul 2021 14:09:40 +0200 Subject: [PATCH 01/16] Added HC Clock Application --- apps.json | 14 +++ apps/hcclock/ChangeLog | 2 + apps/hcclock/hcclock-icon.js | 1 + apps/hcclock/hcclock-icon.png | Bin 0 -> 590 bytes apps/hcclock/hcclock.app.js | 191 ++++++++++++++++++++++++++++++++++ 5 files changed, 208 insertions(+) create mode 100644 apps/hcclock/ChangeLog create mode 100644 apps/hcclock/hcclock-icon.js create mode 100644 apps/hcclock/hcclock-icon.png create mode 100644 apps/hcclock/hcclock.app.js diff --git a/apps.json b/apps.json index cc21f3115..5d191229c 100644 --- a/apps.json +++ b/apps.json @@ -3316,5 +3316,19 @@ {"name":"mysticclock.settings.js","url":"mystic-clock-settings.js"}, {"name":"mysticclock.img","url":"mystic-clock-icon.js","evaluate":true} ] +}, +{ "id": "hcclock", + "name": "HiContrast Clock", + "icon": "hcclock-icon.png", + "version":"0.01", + "description": "High Contrast Clock", + "tags": "clock", + "type":"clock", + "allow_emulator":true, + "storage": [ + {"name":"hcclock.app.js","url":"hcclock.app.js"}, + {"name":"hcclock.img","url":"hcclock-icon.js","evaluate":true} + ], + "sortorder" : -9 } ] diff --git a/apps/hcclock/ChangeLog b/apps/hcclock/ChangeLog new file mode 100644 index 000000000..0ca30d066 --- /dev/null +++ b/apps/hcclock/ChangeLog @@ -0,0 +1,2 @@ +0.01: base code + diff --git a/apps/hcclock/hcclock-icon.js b/apps/hcclock/hcclock-icon.js new file mode 100644 index 000000000..b41bd6fcc --- /dev/null +++ b/apps/hcclock/hcclock-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4ATiwAGFdYzlFp4xeFyYwZD49kxGt2fX6+z1uIsgxcDQtAxArCAA+zxFAGDAYFxAsJAAuIGCxcF1ouPAAOsGCouERRSUKSYguoGARgRCIiMSAAutGCDqUABNkF5yNEFzKRQLzwABxAvRdgYFBDgYFFBphgEF5lkEJwNOYIaORF7KQMBYetEJoDHAo+sF56+DF7TAMBYaBQBpwv/R97vvxCPdxAvLGAdkF7tkFxbAIF7C+MSBQAXRxovEoAvboAvNMD69DFxYvEi2sFy+sDwgvLGAryDACTsEFxrCGGCmzXh5gJSSaMFF6AwGshiPdQguSGA8WxAxK2eIRYguUGBBjBxGsGYWz1mILYwuWGJQANFq4wWFzQxSFrozNFcYA/AH4Av")) diff --git a/apps/hcclock/hcclock-icon.png b/apps/hcclock/hcclock-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..824062aedaded6605ecab000d555a519557ddd50 GIT binary patch literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s`2jv5u0Wb$%|V8>2N~8JVpx5U zVcj8yHTxJ=?PXYX48#RWtv&!EAqdC@i9l^T=394*!|0D^)Q|n3+{bZ=Ml6vn$cx?FmfJu z=|nYGZBG7NyFkWYu9|`GKL@vI-P>F}efgxFEK8y>zXwnKEyp^E(ahAYZiIW>)3mr6OV%r$25F}!S;>jsvYc^>)ZPo1~z znD6MiRJZ4K82{t2){WNhq8oRJukHH%<#y|%xX8>Waa|v8ZV YS?g0SGc5aa6O=GKUHx3vIVCg!0Fhi2)Bpeg literal 0 HcmV?d00001 diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js new file mode 100644 index 000000000..cfff16c8b --- /dev/null +++ b/apps/hcclock/hcclock.app.js @@ -0,0 +1,191 @@ +{ +////////////////////////////////////////////////////// +// Numbers Rect order (left, top, right, bottom) +// Each number defines a set of rects to draw + +const numbers = +[ + [// Zero + [0, 0, 1, 0.2], + [0, 0.8, 1, 1], + [0, 0, 0.1, 1], + [0.9, 0, 1, 1] + ], + [// One + [0.7, 0, 1, 0.2], + [0.9, 0, 1, 1] + ], + [// Two + [0, 0, 1, 0.2], + [0, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0, 0.4, 0.1, 1], + [0.9, 0, 1, 0.6] + ], + [// Three + [0, 0, 1, 0.2], + [0.5, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0.9, 0, 1, 1] + ], + [// Four + [0, 0.4, 1, 0.6], + [0, 0, 0.1, 0.6], + [0.9, 0, 1, 1] + ], + [// Five + [0, 0, 1, 0.2], + [0, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0, 0, 0.1, 0.6], + [0.9, 0.4, 1, 1] + ], + [// Six + [0, 0, 1, 0.2], + [0, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0, 0, 0.1, 1.0], + [0.9, 0.4, 1, 1] + ], + [// Seven + [0.0, 0, 1, 0.2], + [0.9, 0, 1, 1] + ], + [// Eight + [0, 0, 1, 0.2], + [0, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0, 0, 0.1, 1], + [0.9, 0, 1, 1] + ], + [// Nine + [0, 0, 1, 0.2], + [0, 0.4, 1, 0.6], + [0, 0.8, 1, 1], + [0, 0, 0.1, 0.6], + [0.9, 0, 1, 1] + ] +]; + +const months = [ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" ]; + +const interval = 1000; // in ms +const top = 32; + +let bg = 255; +let fg = 0; + +let mins = -1; +let hour = -1; +let day = -1; + +function refresh() +{ + g.setColor(bg,bg,bg); + g.fillRect(0,45,240,210); + Bangle.drawWidgets(); + updateTime(); +} + +function updateTime() +{ + let now = new Date(); + let m = now.getMinutes(); + let h = now.getHours(); + let mo = now.getMonth(); + let y = now.getFullYear(); + let d = now.getDay(); + + if(h != hour) + { + hour = h; + g.setColor(bg,bg,bg); + g.fillRect(0,60,240,110); + g.setColor(fg,fg,fg); + drawDigits(60, hour); + } + if(m != mins) + { + mins = m; + g.setColor(bg,bg,bg); + g.fillRect(0,145,240,195); + g.setColor(fg,fg,fg); + drawDigits(145, mins); + } + if(d != day) + { + day = d; + g.setFont("6x8", 2); + g.setFontAlign(0, -1, 0); + g.drawString(fmtDate(d,mo,y), 120, 120); + } +} + +function drawDigits(x, value) +{ + drawChar(Math.floor(value/10), 15, x, 115, x+50); + if(value%10 == 1) + drawChar(value%10, 55, x, 155, x+50); + else + drawChar(value%10, 125, x, 225, x+50); +} + +function drawChar(i, xMin, yMin, xMax, yMax) +{ + numbers[i].forEach(rect => { + r = place(rect, xMin, yMin, xMax, yMax); + g.setColor(fg,fg,fg); + g.fillRect(r[0], r[1], r[2], r[3]); + }); +} + +function place(array, xMin, yMin, xMax, yMax) +{ + return [ + lerp(xMin,xMax,array[0]), + lerp(yMin,yMax,array[1]), + lerp(xMin,xMax,array[2]), + lerp(yMin,yMax,array[3]) + ]; +} + +function lerp(a,b,t) +{ + return a + t*(b-a); +} + +function fmtDate(day,month,year) +{ + return months[month] + " " + day + " " + year; +} + +// Handles Flipping colors, then refreshes the UI +function flipColors() +{ + let t = bg; + bg = fg; + fg = t; + mins = -1; + hour = -1; + day = -1; + refresh(); +} + +////////////////////////////////////////// +// +// MAIN FUNCTION() +// + +// Initialize +g.clear(); +Bangle.loadWidgets(); +refresh(); + +// Define Refresh Interval +setInterval(updateTime, interval); + +// Handle Button Press +setWatch(flipColors, BTN1, true); +setWatch(Bangle.showLauncher, BTN2, false); + +} From 90988a309b8c9faaecf55568af57a5d499f92855 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Wed, 21 Jul 2021 14:21:59 +0200 Subject: [PATCH 02/16] Updated App Name and Description --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 5d191229c..6585a7c89 100644 --- a/apps.json +++ b/apps.json @@ -3318,10 +3318,10 @@ ] }, { "id": "hcclock", - "name": "HiContrast Clock", + "name": "High Contrast Clock", "icon": "hcclock-icon.png", "version":"0.01", - "description": "High Contrast Clock", + "description": "High Contrast Clock : A simple yet very bold clock that aims to be readable in high luninosity environments. Uses big 10x5 pixel digits. Use BTN 1 to switch background and foreground colors.", "tags": "clock", "type":"clock", "allow_emulator":true, From 8550b1a09a077cc6900dedccc28c94223f47da2a Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Wed, 21 Jul 2021 15:27:58 +0200 Subject: [PATCH 03/16] Fixed buttons at startup, app visibility, added AM/PM support --- apps.json | 7 +++---- apps/hcclock/hcclock.app.js | 25 ++++++++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/apps.json b/apps.json index 6585a7c89..f879fca22 100644 --- a/apps.json +++ b/apps.json @@ -3318,17 +3318,16 @@ ] }, { "id": "hcclock", - "name": "High Contrast Clock", + "name": "Hi-Contrast Clock", "icon": "hcclock-icon.png", "version":"0.01", - "description": "High Contrast Clock : A simple yet very bold clock that aims to be readable in high luninosity environments. Uses big 10x5 pixel digits. Use BTN 1 to switch background and foreground colors.", + "description": "Hi-Contrast Clock : A simple yet very bold clock that aims to be readable in high luninosity environments. Uses big 10x5 pixel digits. Use BTN 1 to switch background and foreground colors.", "tags": "clock", "type":"clock", "allow_emulator":true, "storage": [ {"name":"hcclock.app.js","url":"hcclock.app.js"}, {"name":"hcclock.img","url":"hcclock-icon.js","evaluate":true} - ], - "sortorder" : -9 + ] } ] diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index cfff16c8b..d1866c11b 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -1,4 +1,4 @@ -{ + ////////////////////////////////////////////////////// // Numbers Rect order (left, top, right, bottom) // Each number defines a set of rects to draw @@ -72,6 +72,8 @@ const months = [ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", const interval = 1000; // in ms const top = 32; +let ampm = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; + let bg = 255; let fg = 0; @@ -94,7 +96,7 @@ function updateTime() let h = now.getHours(); let mo = now.getMonth(); let y = now.getFullYear(); - let d = now.getDay(); + let d = now.getDate(); if(h != hour) { @@ -102,7 +104,9 @@ function updateTime() g.setColor(bg,bg,bg); g.fillRect(0,60,240,110); g.setColor(fg,fg,fg); - drawDigits(60, hour); + if(ampm) + h = h%12; + drawDigits(60, h); } if(m != mins) { @@ -117,7 +121,7 @@ function updateTime() day = d; g.setFont("6x8", 2); g.setFontAlign(0, -1, 0); - g.drawString(fmtDate(d,mo,y), 120, 120); + g.drawString(fmtDate(d,mo,y,hour), 120, 120); } } @@ -154,9 +158,17 @@ function lerp(a,b,t) return a + t*(b-a); } -function fmtDate(day,month,year) +function fmtDate(day,month,year,hour) { - return months[month] + " " + day + " " + year; + if(ampm) + { + let ap = "(AM)"; + if(hour == 0 || hour > 12) + ap = "(PM)"; + return months[month] + " " + day + " " + year + " "+ ap; + } + else + return months[month] + " " + day + " " + year; } // Handles Flipping colors, then refreshes the UI @@ -188,4 +200,3 @@ setInterval(updateTime, interval); setWatch(flipColors, BTN1, true); setWatch(Bangle.showLauncher, BTN2, false); -} From 19dcb38dfbe8b8e8f7cbf364f064411f18cdc7e2 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Wed, 21 Jul 2021 15:35:53 +0200 Subject: [PATCH 04/16] Shortened Months to fit width in AMPM mode --- apps/hcclock/hcclock.app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index d1866c11b..3b3906923 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -67,7 +67,7 @@ const numbers = ] ]; -const months = [ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" ]; +const months = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; const interval = 1000; // in ms const top = 32; @@ -168,7 +168,7 @@ function fmtDate(day,month,year,hour) return months[month] + " " + day + " " + year + " "+ ap; } else - return months[month] + " " + day + " " + year; + return months[month] + ". " + day + " " + year; } // Handles Flipping colors, then refreshes the UI From 42ef7f23d234784eace4cf4469f9ac361e21762d Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Wed, 21 Jul 2021 15:59:30 +0200 Subject: [PATCH 05/16] Updated Icon --- apps/hcclock/hcclock-icon.js | 2 +- apps/hcclock/hcclock-icon.png | Bin 590 -> 353 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hcclock/hcclock-icon.js b/apps/hcclock/hcclock-icon.js index b41bd6fcc..52b3d5cb6 100644 --- a/apps/hcclock/hcclock-icon.js +++ b/apps/hcclock/hcclock-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwxH+AH4A/AH4ATiwAGFdYzlFp4xeFyYwZD49kxGt2fX6+z1uIsgxcDQtAxArCAA+zxFAGDAYFxAsJAAuIGCxcF1ouPAAOsGCouERRSUKSYguoGARgRCIiMSAAutGCDqUABNkF5yNEFzKRQLzwABxAvRdgYFBDgYFFBphgEF5lkEJwNOYIaORF7KQMBYetEJoDHAo+sF56+DF7TAMBYaBQBpwv/R97vvxCPdxAvLGAdkF7tkFxbAIF7C+MSBQAXRxovEoAvboAvNMD69DFxYvEi2sFy+sDwgvLGAryDACTsEFxrCGGCmzXh5gJSSaMFF6AwGshiPdQguSGA8WxAxK2eIRYguUGBBjBxGsGYWz1mILYwuWGJQANFq4wWFzQxSFrozNFcYA/AH4Av")) +var img = E.toArrayBuffer(atob("MDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////AAf/////AAf/////AAeAAwf/AAf/+/f/AAeAA/f/AAe///f/AAeAA/f/AAf/////AAf/////AAeFBQAHAAfFZQcHAAf/////AAf/////AAeAA3/3AAf/+3/3AAf+AwAHAAf/+//3AAeAA//3AAf/////AAf/////AAf/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) diff --git a/apps/hcclock/hcclock-icon.png b/apps/hcclock/hcclock-icon.png index 824062aedaded6605ecab000d555a519557ddd50..29b113a46581a6c9a4a2802f85917b13de0454aa 100644 GIT binary patch delta 194 zcmX@d@{nnQ3Lj%}kh>GZx^prw85kH!C#n|n0cjuz^iatMQtA^INYwww1Poo3APwoB zE{-7{oyiFjtcw#G8aWaT1f)VHGEVW{!n;aCq|i)YA>-w{A=?_C1Smx^-%wq3;X%mJ z0!15!k2BXicH!}4AkZbDlay)P-;<9BHl$~En23Um-J aXJ9!0#P#+gt`?w`3=E#GelF{r5}E)qn@q|8 delta 453 zcmV;$0XqKS0?q`GBmr-cGIM`0y$(bG000zpQchC<`RtdiS2r6HwBm+%)zXp)dgO@7 zXr5#M00DYQL_t(Y$K6%w&Vn!yltV>P@aO^M2H*b~zYbrD1=^b6KPSN@b@-;@K4}n(d2)O=MMfrMMMZ(r%^(>0yk}$v*7H$e@l!Qq1yLJa?eXa=CkAvce7C4P^6~rNn-usD zKUx{$4Y8o%OH)Vmt0z_r=%C*7CkzogGMI`r!C9UQb&)1TD+v#6K2ZVsMJZA5^HYW@ z-m`m`r;@n@q?DA)BnW?%Bf9{e!bxzIr$(pXH5Uj;NhSfhmdkRPSpc&+dN&Es1?INI z(20!#Wyw_oQY?s7-Y4u1etC~Z#U&bwz!``MWro_>sAlrR)smSJMLS7xEHO8`}Es| v;$B&4 Date: Wed, 21 Jul 2021 20:45:08 +0200 Subject: [PATCH 06/16] Tentative : make icon work --- apps/hcclock/hcclock-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hcclock/hcclock-icon.js b/apps/hcclock/hcclock-icon.js index 52b3d5cb6..2a164c8e1 100644 --- a/apps/hcclock/hcclock-icon.js +++ b/apps/hcclock/hcclock-icon.js @@ -1 +1 @@ -var img = E.toArrayBuffer(atob("MDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////AAf/////AAf/////AAeAAwf/AAf/+/f/AAeAA/f/AAe///f/AAeAA/f/AAf/////AAf/////AAeFBQAHAAfFZQcHAAf/////AAf/////AAeAA3/3AAf/+3/3AAf+AwAHAAf/+//3AAeAA//3AAf/////AAf/////AAf/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) +E.toArrayBuffer(atob("MDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////AAf/////AAf/////AAeAAwf/AAf/+/f/AAeAA/f/AAe///f/AAeAA/f/AAf/////AAf/////AAeFBQAHAAfFZQcHAAf/////AAf/////AAeAA3/3AAf/+3/3AAf+AwAHAAf/+//3AAeAA//3AAf/////AAf/////AAf/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) From 54b961d7d6074bffa30ecacb75c18d1f93de213d Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Thu, 22 Jul 2021 10:11:58 +0200 Subject: [PATCH 07/16] Updated Icon --- apps/hcclock/hcclock-icon.js | 2 +- apps/hcclock/hcclock-icon.png | Bin 353 -> 368 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hcclock/hcclock-icon.js b/apps/hcclock/hcclock-icon.js index 2a164c8e1..2486c6500 100644 --- a/apps/hcclock/hcclock-icon.js +++ b/apps/hcclock/hcclock-icon.js @@ -1 +1 @@ -E.toArrayBuffer(atob("MDABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////AAf/////AAf/////AAeAAwf/AAf/+/f/AAeAA/f/AAe///f/AAeAA/f/AAf/////AAf/////AAeFBQAHAAfFZQcHAAf/////AAf/////AAeAA3/3AAf/+3/3AAf+AwAHAAf/+//3AAeAA//3AAf/////AAf/////AAf/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) +E.toArrayBuffer(atob("MDAB////////////////////////////////////////////////////////////////////////////////4AABgAAH4AABgAAH///5n//n///5n//n4AABn//n4AABn//n5///n//n5///n//n4AABgAAH4AABgAAH/////////////////////////015urF//3d+vZt//1V5uNV/////////////////5//5gAAH5//5gAAH5//5n//n5//5n//n4AABgAAH4AABgAAH///5n//n///5n//n///5gAAH///5gAAH////////////////////////////////////////////////////////////////////////////////")) diff --git a/apps/hcclock/hcclock-icon.png b/apps/hcclock/hcclock-icon.png index 29b113a46581a6c9a4a2802f85917b13de0454aa..5d5506249558a90aa6d989fb48133ef628f7ae61 100644 GIT binary patch delta 147 zcmV;E0Brx^0`LNm<$rcbL_t(YiS5(@3cw%;1<(%R6}Q7bpoUn*)0Quxt)kEmZ=mtvb*@2PYbVV!ZNx8@ytRA(s007VAMcd*Ega7~l002ovPDHLkV1nR&Fp>ZO From 09ee8a5cf9df57fe9277d854948bf7747340b285 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Thu, 22 Jul 2021 15:46:39 +0200 Subject: [PATCH 08/16] Optimized when lcd off, back lcd on screen --- apps/hcclock/hcclock.app.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index 3b3906923..dac5063cb 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -81,8 +81,14 @@ let mins = -1; let hour = -1; let day = -1; -function refresh() -{ +function redraw() { + mins = -1; + hour = -1; + day = -1; + refresh(); +} + +function refresh() { g.setColor(bg,bg,bg); g.fillRect(0,45,240,210); Bangle.drawWidgets(); @@ -127,6 +133,9 @@ function updateTime() function drawDigits(x, value) { + if(!Bangle.isLCDOn()) // No need to draw when LCD Off + return; + drawChar(Math.floor(value/10), 15, x, 115, x+50); if(value%10 == 1) drawChar(value%10, 55, x, 155, x+50); @@ -177,10 +186,7 @@ function flipColors() let t = bg; bg = fg; fg = t; - mins = -1; - hour = -1; - day = -1; - refresh(); + redraw(); } ////////////////////////////////////////// @@ -191,7 +197,7 @@ function flipColors() // Initialize g.clear(); Bangle.loadWidgets(); -refresh(); +redraw(); // Define Refresh Interval setInterval(updateTime, interval); @@ -200,3 +206,5 @@ setInterval(updateTime, interval); setWatch(flipColors, BTN1, true); setWatch(Bangle.showLauncher, BTN2, false); +// Handle redraw on LCD on +Bangle.on('lcdPower', (on) => { if(on) redraw(); }); From 627dee86bfcc884e269bcbb8580033fa4da452ea Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Thu, 22 Jul 2021 15:59:40 +0200 Subject: [PATCH 09/16] Added Readme --- apps/hcclock/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 apps/hcclock/README.md diff --git a/apps/hcclock/README.md b/apps/hcclock/README.md new file mode 100644 index 000000000..328f1fe03 --- /dev/null +++ b/apps/hcclock/README.md @@ -0,0 +1,13 @@ +# Hi-Contrast Clock + +A High-contrast, black-on-white or white-on-black clock displaying huge pixel digits. It is purposed for being both elegant and readable in high luminosity environments. The goal is to keep the clock as simple and efficient as possible. + +## Usage + +* BTN 1 switches between the two modes : black-on-white or white-on-black +* That's it! + +## Issues and Requests + +If you have issues, feel free to contact me at https://github.com/peeweek/ + From 452c27b1bed832c4ca508ae546860c2fef01c2e4 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Fri, 23 Jul 2021 15:52:51 +0200 Subject: [PATCH 10/16] Notify Hide callback to redraw clock --- apps/hcclock/hcclock.app.js | 2 ++ apps/notify/notify.js | 5 ++++- apps/notifyfs/notify.js | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index dac5063cb..d060c4b2f 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -208,3 +208,5 @@ setWatch(Bangle.showLauncher, BTN2, false); // Handle redraw on LCD on Bangle.on('lcdPower', (on) => { if(on) redraw(); }); +// Handle redraw on Dismissed Notifications +Bangle.on('notifyHide', () => { redraw(); } ); diff --git a/apps/notify/notify.js b/apps/notify/notify.js index 230cf9d10..89c843246 100644 --- a/apps/notify/notify.js +++ b/apps/notify/notify.js @@ -156,7 +156,10 @@ exports.hide = function(options) { Bangle.removeListener("touch", exports.hide); function anim() { pos += 4; - if (pos > 0) pos = 0; + if (pos > 0){ + pos = 0; + Bangle.emit('notifyHide'); + } Bangle.setLCDOffset(pos); if (pos < 0) setTimeout(anim, 10); } diff --git a/apps/notifyfs/notify.js b/apps/notifyfs/notify.js index 07801cedb..71d56acb6 100644 --- a/apps/notifyfs/notify.js +++ b/apps/notifyfs/notify.js @@ -126,4 +126,5 @@ exports.hide = function(options) { global["\xff"].watches[Bangle.btnWatches[0]].callback(); global["\xff"].watches[Bangle.btnWatches[1]].callback(); } + Bangle.emit('notifyHide'); }; From 72d82c641ff1148ff630f7170d3a219747f0bdf0 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Fri, 23 Jul 2021 16:06:35 +0200 Subject: [PATCH 11/16] nofity.js emits a 'notifyHide' event upon dismiss --- apps/notify/ChangeLog | 1 + apps/notifyfs/ChangeLog | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/notify/ChangeLog b/apps/notify/ChangeLog index 2b7a4f990..c27ce5e2c 100644 --- a/apps/notify/ChangeLog +++ b/apps/notify/ChangeLog @@ -5,3 +5,4 @@ 0.06: Support background color 0.07: Auto-calculate height, and pad text down even when there's no title (so it stays on-screen) 0.08: Don't turn on screen during Quiet Mode +0.09: Emits a 'notifyHide' event when dismissing notifications \ No newline at end of file diff --git a/apps/notifyfs/ChangeLog b/apps/notifyfs/ChangeLog index 974e138f7..b49b7dab4 100644 --- a/apps/notifyfs/ChangeLog +++ b/apps/notifyfs/ChangeLog @@ -6,3 +6,4 @@ 0.06: Adjust position of notification src text and notifications without title 0.07: Support background color 0.08: Don't turn on screen during Quiet Mode +0.09: Emits a 'notifyHide' event when dismissing notifications \ No newline at end of file From 1088c6bf53d0fdf6b9b8d0ac26b39693493500be Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Fri, 23 Jul 2021 16:12:15 +0200 Subject: [PATCH 12/16] Bumped versions of notify and notifyfx --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index da22623f8..579a8f740 100644 --- a/apps.json +++ b/apps.json @@ -94,7 +94,7 @@ "name": "Notifications (default)", "shortName":"Notifications", "icon": "notify.png", - "version":"0.08", + "version":"0.09", "description": "A handler for displaying notifications that displays them in a bar at the top of the screen", "tags": "widget", "type": "notify", @@ -107,7 +107,7 @@ "name": "Fullscreen Notifications", "shortName":"Notifications", "icon": "notify.png", - "version":"0.08", + "version":"0.09", "description": "A handler for displaying notifications that displays them fullscreen. This may not fully restore the screen after on some apps. See `Notifications (default)` for more information about the notifications library.", "tags": "widget", "type": "notify", From 12894bf1b3a637df2d4c9ccbaeb6e689e933999c Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Mon, 26 Jul 2021 21:45:53 +0200 Subject: [PATCH 13/16] Rolled back non-fullscreen notify.js as emit was not necesary + added comment in notifyfs about the emit() --- apps.json | 2 +- apps/notify/ChangeLog | 3 +-- apps/notify/notify.js | 5 +---- apps/notifyfs/notify.js | 1 + 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/apps.json b/apps.json index 579a8f740..85379d1cb 100644 --- a/apps.json +++ b/apps.json @@ -94,7 +94,7 @@ "name": "Notifications (default)", "shortName":"Notifications", "icon": "notify.png", - "version":"0.09", + "version":"0.08", "description": "A handler for displaying notifications that displays them in a bar at the top of the screen", "tags": "widget", "type": "notify", diff --git a/apps/notify/ChangeLog b/apps/notify/ChangeLog index c27ce5e2c..ffbda52f0 100644 --- a/apps/notify/ChangeLog +++ b/apps/notify/ChangeLog @@ -4,5 +4,4 @@ 0.05: Adjust position of notification src text 0.06: Support background color 0.07: Auto-calculate height, and pad text down even when there's no title (so it stays on-screen) -0.08: Don't turn on screen during Quiet Mode -0.09: Emits a 'notifyHide' event when dismissing notifications \ No newline at end of file +0.08: Don't turn on screen during Quiet Mode \ No newline at end of file diff --git a/apps/notify/notify.js b/apps/notify/notify.js index 89c843246..230cf9d10 100644 --- a/apps/notify/notify.js +++ b/apps/notify/notify.js @@ -156,10 +156,7 @@ exports.hide = function(options) { Bangle.removeListener("touch", exports.hide); function anim() { pos += 4; - if (pos > 0){ - pos = 0; - Bangle.emit('notifyHide'); - } + if (pos > 0) pos = 0; Bangle.setLCDOffset(pos); if (pos < 0) setTimeout(anim, 10); } diff --git a/apps/notifyfs/notify.js b/apps/notifyfs/notify.js index 71d56acb6..6d3501b8c 100644 --- a/apps/notifyfs/notify.js +++ b/apps/notifyfs/notify.js @@ -126,5 +126,6 @@ exports.hide = function(options) { global["\xff"].watches[Bangle.btnWatches[0]].callback(); global["\xff"].watches[Bangle.btnWatches[1]].callback(); } + // Emits a notifyHide event that other apps can catch in order to redraw, if previous statements were unsuccessful. Bangle.emit('notifyHide'); }; From 827e1538a88578adeacfdfbf85882159eb07f04f Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Tue, 27 Jul 2021 11:59:23 +0200 Subject: [PATCH 14/16] Test : removing callback attachment to notifyHide to evaluate if lcdPower On is enough --- apps/hcclock/hcclock.app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index d060c4b2f..45295d5a7 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -209,4 +209,4 @@ setWatch(Bangle.showLauncher, BTN2, false); // Handle redraw on LCD on Bangle.on('lcdPower', (on) => { if(on) redraw(); }); // Handle redraw on Dismissed Notifications -Bangle.on('notifyHide', () => { redraw(); } ); +// Bangle.on('notifyHide', () => { redraw(); } ); From ba10201442cf1b44f54cb50db9c7271f90b04e98 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Tue, 27 Jul 2021 13:44:50 +0200 Subject: [PATCH 15/16] Removed emit from notifyfs as lcdPower event works --- apps.json | 2 +- apps/hcclock/hcclock.app.js | 4 +--- apps/notifyfs/ChangeLog | 3 +-- apps/notifyfs/notify.js | 2 -- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/apps.json b/apps.json index 0d5c8c563..7c97c326a 100644 --- a/apps.json +++ b/apps.json @@ -107,7 +107,7 @@ "name": "Fullscreen Notifications", "shortName":"Notifications", "icon": "notify.png", - "version":"0.09", + "version":"0.08", "description": "A handler for displaying notifications that displays them fullscreen. This may not fully restore the screen after on some apps. See `Notifications (default)` for more information about the notifications library.", "tags": "widget", "type": "notify", diff --git a/apps/hcclock/hcclock.app.js b/apps/hcclock/hcclock.app.js index 45295d5a7..98abbc6f3 100644 --- a/apps/hcclock/hcclock.app.js +++ b/apps/hcclock/hcclock.app.js @@ -206,7 +206,5 @@ setInterval(updateTime, interval); setWatch(flipColors, BTN1, true); setWatch(Bangle.showLauncher, BTN2, false); -// Handle redraw on LCD on +// Handle redraw on LCD on / fullscreen notifications dismissed Bangle.on('lcdPower', (on) => { if(on) redraw(); }); -// Handle redraw on Dismissed Notifications -// Bangle.on('notifyHide', () => { redraw(); } ); diff --git a/apps/notifyfs/ChangeLog b/apps/notifyfs/ChangeLog index b49b7dab4..125a9fab5 100644 --- a/apps/notifyfs/ChangeLog +++ b/apps/notifyfs/ChangeLog @@ -5,5 +5,4 @@ 0.05: Fix `g` corruption issue if .hide gets called twice 0.06: Adjust position of notification src text and notifications without title 0.07: Support background color -0.08: Don't turn on screen during Quiet Mode -0.09: Emits a 'notifyHide' event when dismissing notifications \ No newline at end of file +0.08: Don't turn on screen during Quiet Mode \ No newline at end of file diff --git a/apps/notifyfs/notify.js b/apps/notifyfs/notify.js index 6d3501b8c..07801cedb 100644 --- a/apps/notifyfs/notify.js +++ b/apps/notifyfs/notify.js @@ -126,6 +126,4 @@ exports.hide = function(options) { global["\xff"].watches[Bangle.btnWatches[0]].callback(); global["\xff"].watches[Bangle.btnWatches[1]].callback(); } - // Emits a notifyHide event that other apps can catch in order to redraw, if previous statements were unsuccessful. - Bangle.emit('notifyHide'); }; From 9c058a51f7c00381dd1b22386a86d4dbf40ca107 Mon Sep 17 00:00:00 2001 From: peeweek <4037271+peeweek@users.noreply.github.com> Date: Tue, 27 Jul 2021 13:49:13 +0200 Subject: [PATCH 16/16] Fixed newlines --- apps/notify/ChangeLog | 2 +- apps/notifyfs/ChangeLog | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/notify/ChangeLog b/apps/notify/ChangeLog index ffbda52f0..2b7a4f990 100644 --- a/apps/notify/ChangeLog +++ b/apps/notify/ChangeLog @@ -4,4 +4,4 @@ 0.05: Adjust position of notification src text 0.06: Support background color 0.07: Auto-calculate height, and pad text down even when there's no title (so it stays on-screen) -0.08: Don't turn on screen during Quiet Mode \ No newline at end of file +0.08: Don't turn on screen during Quiet Mode diff --git a/apps/notifyfs/ChangeLog b/apps/notifyfs/ChangeLog index 125a9fab5..974e138f7 100644 --- a/apps/notifyfs/ChangeLog +++ b/apps/notifyfs/ChangeLog @@ -5,4 +5,4 @@ 0.05: Fix `g` corruption issue if .hide gets called twice 0.06: Adjust position of notification src text and notifications without title 0.07: Support background color -0.08: Don't turn on screen during Quiet Mode \ No newline at end of file +0.08: Don't turn on screen during Quiet Mode