From f4109eb6bd620b7943bc66b3b41c359a14297336 Mon Sep 17 00:00:00 2001 From: kamilkrz Date: Sat, 21 Sep 2024 00:09:09 +0200 Subject: [PATCH 1/2] clkinfomsg: initial commit --- apps/clkinfomsg/ChangeLog | 1 + apps/clkinfomsg/README.md | 18 +++++++ apps/clkinfomsg/app.png | Bin 0 -> 326 bytes apps/clkinfomsg/clkinfo.js | 88 +++++++++++++++++++++++++++++++++ apps/clkinfomsg/metadata.json | 15 ++++++ apps/clkinfomsg/screenshot.png | Bin 0 -> 2130 bytes 6 files changed, 122 insertions(+) create mode 100644 apps/clkinfomsg/ChangeLog create mode 100644 apps/clkinfomsg/README.md create mode 100644 apps/clkinfomsg/app.png create mode 100644 apps/clkinfomsg/clkinfo.js create mode 100644 apps/clkinfomsg/metadata.json create mode 100644 apps/clkinfomsg/screenshot.png diff --git a/apps/clkinfomsg/ChangeLog b/apps/clkinfomsg/ChangeLog new file mode 100644 index 000000000..7b83706bf --- /dev/null +++ b/apps/clkinfomsg/ChangeLog @@ -0,0 +1 @@ +0.01: First release diff --git a/apps/clkinfomsg/README.md b/apps/clkinfomsg/README.md new file mode 100644 index 000000000..90baa3d70 --- /dev/null +++ b/apps/clkinfomsg/README.md @@ -0,0 +1,18 @@ +# Messages Clockinfo + +A simple messages counter for clockinfo enabled watchfaces + +## Usage + +You can choose between read and unread counter. +Tap to go to messages UI. + +## Todo / Known Issues + +* GB triggers for message read on phone are not handled +* Icons are not consistent +* Maybe use messageicons for handling icon from last notification + +## Attributions + +All icons used in this app are from [icons8](https://icons8.com). \ No newline at end of file diff --git a/apps/clkinfomsg/app.png b/apps/clkinfomsg/app.png new file mode 100644 index 0000000000000000000000000000000000000000..81a968a40bede287afad3a3a8441efcfdccb433f GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oVGw3ym^DWNDEPzE z#WAE}&f6P?T!#!qj(xP>#XaxPQRR|1yk9u(EzA}>m|VeP-o9>cbMx^R?}QgRap=1F z_$+$Qo}aPsLcdMirKTXSl?SvIoZO-{pMh)uUfh~sxjGjT|A3x9Au zY(ZztMdl;(zUuKl=-OMjvxIADTG1@0NR|l=!pGX#3R>qF*nz~pn9Q2-^R;Nk{W~+# z4(NUOxU2VP^wDh$emnn$37%)re( !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + } + return msgAll; + } + + + var getUnreadMGS = function() { + if (msgUnread === undefined) { + debug("msgUnread is undefined"); + msgUnread = msgs.getMessages().filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + } + return msgUnread; + } + + var msgCounter = function(type, msg) { + var msgsNow = msgs.getMessages(msg); + msgUnread = msgsNow.filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + if (msgUnread === undefined) { + msgUnread = "?"; + } + msgAll = msgsNow.filter(m => !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + if (msgAll === undefined) { + msgAll = "?"; + } + info.items[0].emit("redraw"); + } + + var info = { + name: "Messages", + img: unreadImg(), + items: [ + { name : "Unread", + get : () => { + return { + text : getUnreadMGS(), + img : unreadImg() + }; + }, + show : function() { + Bangle.on("message", msgCounter); + }, + hide : function() { + Bangle.removeListener("message", msgCounter); + }, + run : () => { + require("messages").openGUI(); + } + }, + { name : "All", + get : () => { + return { + text : getAllMGS(), + img : allImg() // TODO This is omited if category image is not set + }; + }, + show : function() { + Bangle.on("message", msgCounter); + }, + hide : function() { + Bangle.removeListener("message", msgCounter); + }, + run : () => { + require("messages").openGUI(); + } + } + ] + }; + return info; +}) diff --git a/apps/clkinfomsg/metadata.json b/apps/clkinfomsg/metadata.json new file mode 100644 index 000000000..e675b69f7 --- /dev/null +++ b/apps/clkinfomsg/metadata.json @@ -0,0 +1,15 @@ +{ "id": "clkinfomsg", + "name": "Messages Clockinfo", + "version":"0.01", + "description": "For clocks that display 'clockinfo', this displays the messages count", + "icon": "app.png", + "type": "clkinfo", + "screenshots": [{"url":"screenshot.png"}], + "readme":"README.md", + "tags": "clkinfo", + "supports" : ["BANGLEJS2"], + "dependencies" : { "messages":"app" }, + "storage": [ + {"name":"clkinfomsg.clkinfo.js","url":"clkinfo.js"} + ] +} diff --git a/apps/clkinfomsg/screenshot.png b/apps/clkinfomsg/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..e46415ad517ecde03e9e039cf172dc8a27bf90ac GIT binary patch literal 2130 zcmeHJ>r<0=8vVTl%0+I18WaMwTB*h;76lYSya5Z!{Srk8AUMdK2q6ieePN+079yo! z371eKXrc*ZM8ptiED9D&5P?vxhJ+I2X4nuQfVk}b0sC!dzwC$SIdjg;`S3h5XXf1U z^>#PV+ocBpF!1=>8UIbJ|JUezvAOG>O%OH#O7(X?1-K%M4*=-sdz?8LNFmHs4yVf; z^)-t>f1a8piZVK6C3#M)#(07kRN%Jt-cLU$KdDqI|Ehu=CYgFUpL?*=vMJ<`D;gq`Mj zF`f_b?lIWPr=ceY%!F0a<6VL_$?r2-a^h%iFs<-b#__naw89ir zrNgwnebEcFbbjLGquvJzVS_V* z))?6XaNSZ}`r-m{Oll(zI*JQts9vw#`AcP;`NPB2$PaJYeGmz{8SBpIgFiAe6J1j$ zhYpyCh(}gbh$b| zCo`PU6_kgWzN?a~6}jsiYA9l@jr^={T^7&POzAu1V+9-)@KRG>RE3t$KzxHC24(&S zeN2p+^gE3doQt^q+sp5W#9Zgld$!qFBi7(5qfVJLLUTf7rhg~?!&4au2oMiBMyn8x zT^x_QSpurQH-n3rZ|S0~QB0FQATrEZYa`%WtjM_v_~-)vb?0!uFS>hh@o|E0yb{-1 zGqs3>!_%_9_6_iD$)S=GE0a%dkQ-#~zjq|gSC}-{O1DGvW6tL!rhI;v3ql>1iWNH_ z-Ue2r09S>=7LSD3K}99K8S#F{G7+}mv;2hCo-I&S}m&hI5iuP}3|y0Fh=d>kNHoN{RDNKPs`b$!MPK#I@{8Z$sm< zF|b{6lWbN@6wl@~F)crqmzO-Br%%|_YhN;YU8=4!v&4+Wj{MS*Ki>ZiN+EN1z?i=a z@)#WD4i`?%*&7apF?NCL1yhQN5Bw;~RV;U(mn8OzAfP){e0!Jju17ZRbUf8Wt0Vs| z3(bDf85uh(T5beB=Qt15rdU$tCcEyD?V+c}4Pk)t=24Dxe&omzaLYMF8n4^HCV6vD$55NF+&u?zp zfWlPY=l&0^9bY+LpAp$y8}@$b3ksW_rpzhvZjgef23c#TsW=?xN^s=b;zy_3M-Z?T znAfN?iBTbq-6Eb#LqMysusenz5-ycOk}Vop3<=N|HX^ivd-uz3VNjtlEeHBD$;#9W zPV_t|(0~u6eLfC^u=N}OXP+4@0DZ(eLr|Z# hW^5$1{qKlE9CLw*b;(+|xmgl`hpYD)?x~2Je*$q#(mMbE literal 0 HcmV?d00001 From 8673330457ebc84f969107f23d4fc7d091d06a5c Mon Sep 17 00:00:00 2001 From: kamilkrz Date: Mon, 30 Sep 2024 12:07:12 +0200 Subject: [PATCH 2/2] Typos and garbage removal --- apps/clkinfomsg/clkinfo.js | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/apps/clkinfomsg/clkinfo.js b/apps/clkinfomsg/clkinfo.js index d5e74d690..bbb950f3f 100644 --- a/apps/clkinfomsg/clkinfo.js +++ b/apps/clkinfomsg/clkinfo.js @@ -14,10 +14,10 @@ var msgAll; var msgs = require("messages"); - var getAllMGS = function() { + var getAllMSGs = function() { if (msgAll === undefined) { debug("msgAll is undefined"); - msgAll = msgs.getMessages().filter(m => !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + msgAll = msgs.getMessages().filter(m => !['call', 'map', 'music'].includes(m.id)).length; } return msgAll; } @@ -26,22 +26,18 @@ var getUnreadMGS = function() { if (msgUnread === undefined) { debug("msgUnread is undefined"); - msgUnread = msgs.getMessages().filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; + msgUnread = msgs.getMessages().filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).length; } return msgUnread; } var msgCounter = function(type, msg) { var msgsNow = msgs.getMessages(msg); - msgUnread = msgsNow.filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; - if (msgUnread === undefined) { - msgUnread = "?"; - } - msgAll = msgsNow.filter(m => !['call', 'map', 'music'].includes(m.id)).map(m => m.src).length; - if (msgAll === undefined) { - msgAll = "?"; - } + msgUnread = msgsNow.filter(m => m.new && !['call', 'map', 'music'].includes(m.id)).length; + msgAll = msgsNow.filter(m => !['call', 'map', 'music'].includes(m.id)).length; + //TODO find nicer way to redraw current shown CI counter info.items[0].emit("redraw"); + info.items[1].emit("redraw"); } var info = { @@ -68,8 +64,8 @@ { name : "All", get : () => { return { - text : getAllMGS(), - img : allImg() // TODO This is omited if category image is not set + text : getAllMSGs(), + img : allImg() }; }, show : function() {