From 130a847c3234c725f801cc819f3e282d4bdf65a8 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Thu, 25 Aug 2022 21:16:43 +0100 Subject: [PATCH] New medical alert widget Signed-off-by: James Taylor --- apps/widmeda/ChangeLog | 1 + apps/widmeda/README.md | 23 +++++++++++++++++++++++ apps/widmeda/metadata.json | 15 +++++++++++++++ apps/widmeda/screenshot_light.png | Bin 0 -> 2958 bytes apps/widmeda/widget.js | 30 ++++++++++++++++++++++++++++++ apps/widmeda/widget.png | Bin 0 -> 1669 bytes 6 files changed, 69 insertions(+) create mode 100644 apps/widmeda/ChangeLog create mode 100644 apps/widmeda/README.md create mode 100644 apps/widmeda/metadata.json create mode 100644 apps/widmeda/screenshot_light.png create mode 100644 apps/widmeda/widget.js create mode 100644 apps/widmeda/widget.png diff --git a/apps/widmeda/ChangeLog b/apps/widmeda/ChangeLog new file mode 100644 index 000000000..7415150e6 --- /dev/null +++ b/apps/widmeda/ChangeLog @@ -0,0 +1 @@ +0.01: Initial Medical Alert Widget! diff --git a/apps/widmeda/README.md b/apps/widmeda/README.md new file mode 100644 index 000000000..0bbfc4dc3 --- /dev/null +++ b/apps/widmeda/README.md @@ -0,0 +1,23 @@ +# Medical Alert Widget + +Shows a medical alert logo in the top right widget area, and a medical alert message in the bottom widget area. + +**Note:** this is not a replacement for a medical alert band but hopefully a useful addition. + +## Features + +Implemented: + +- Basic medical alert logo and message +- Only display bottom widget on clocks +- High contrast colours depending on theme + +Future: + +- Configure when to show bottom widget (always/never/clocks) +- Configure medical alert text +- Show details when touched + +## Creator + +James Taylor ([jt-nti](https://github.com/jt-nti)) diff --git a/apps/widmeda/metadata.json b/apps/widmeda/metadata.json new file mode 100644 index 000000000..346306b8e --- /dev/null +++ b/apps/widmeda/metadata.json @@ -0,0 +1,15 @@ +{ "id": "widmeda", + "name": "Medical Alert Widget", + "shortName":"Medical Alert", + "version":"0.01", + "description": "Display a medical alert in the bottom widget section.", + "icon": "widget.png", + "type": "widget", + "tags": "health,medical,tools,widget", + "supports" : ["BANGLEJS2"], + "readme": "README.md", + "screenshots": [{"url":"screenshot_light.png"}], + "storage": [ + {"name":"widmeda.wid.js","url":"widget.js"} + ] +} diff --git a/apps/widmeda/screenshot_light.png b/apps/widmeda/screenshot_light.png new file mode 100644 index 0000000000000000000000000000000000000000..bf92d753d65f54207701578fa8c4929640d7e7cf GIT binary patch literal 2958 zcmdUxdpOe%7r?*Y?>3h$rZQ&bmM)}Ks3>8|om`4x`=#}h@seE1XhlOv<@U?h=Eh{`vm({_*~C&gVJjdCv2kbDr~@bJ9KC9aWGx zBme*^&Q5m6*I4~;QBqjbRowA_HGt=jJ01Zldp3&!0OjOtXX_moFk394Z8l$*JhpUY zde&dp<8kK}aOS{(>dM26Gy^Z*j+rNtNy!4e`RBB*QDixE3R?D@%3b6_ke}ZB3f_=! z671TU+kQ=&vRaF3gq-ws%Wg1rs>QXwxg}Q$HRmxLe5WHOVb0*#s z1P>eD4X`1B;rf~N9$o*bEVl{JfH@lLF|z)j-6BPk&nZ8j4y9^T&B(U*Y%c(MCOgY6 z(?#(Qw=gud%BX?JZ_pj>-+e?_#lIa;qCobEPZ0=swS@&~twVM3E&;%eL?%X!=lE_( zI_@ZXi+^4_>})~@?>tl3)>pv*=6u{`4?HRABK|w2`0O00hU2Ux;;cMgNJ092CXGgY zrt~g1EBT00KIa~5Z4)RHP|rhtc`chefA=td2U7EE%U{PTY0jSC!Q*r=={<$(yqX2e zWWXV5Zr^Q8=)QA9h17O()s~6UoGj*_CNdPo;eoPAEYJj1M<=mDY<9-DFh-LFL2=&I z!e#BTB9(%?d1(TD|LWv8=OV7g;YpN1^62-unJ@g*nNaix;@OU=f*>evO%cL23G%K>I_C;o(s;f#sA1z#J+RR?^Dis#e&;P0H1sA%O7TrqwSeEJR zo9KEv`y>B6S~MsxN$+GyPF8rx>_#t*lp^-xZX0@n}Yn1yY)mq6-$ zb55Vdw)2+iMAC)gqJ23vel=#I^zpu{(^J3x>bOIu>&5gM_}iqvghvigXi)CUJ%KDv za4@>rO;dZ7|p=6W~Ql6od3h@VCHE03$_kvW}N0X6F zEUU<)yJ#qinBUS%JUBizZQW4G^Su({VHx=KZq2=^N8qCBZl~X5S2KAvz?sF18g2%G zwv4hVwWJOV?#({|TJCHjD`q2)c=W;z(XneQJgwO`n1cm`rR^9?iy%DtTIcH#Kg*9`*Cj z%TQbk--^KREYtiH($c)j$1;IA@0|Tb84@>G%OK2m>r~0&>3$eEawPjx&Gy=;Gu)5W z8>)vDS$W}UiYxO;fU05IVti~nS(uvJK66lzCmRy=lwd(rLJCr(x$nl8vM2$x+| zn0mSPDi-vNf%Wxj>sS+Q z&*T^Q5R475Hy0{LZ@JcdFblfFSxL}*F|AQ%T};Ao5CP!?qnn80x9(P2)XgM1*!5F5 z24*t;W}MOHhu&o;^xZp-Sw1zPqY}9|Q})9G;h<+tN40e^%cV#qkyO>lW^FAV2D1m7 z*+bIK0NVHm<)g=jo(FU$JH}=g<4dkM(GT!#eUd@AK@9I0jGG^xVCl+i03q)-PBnB zz8xUD(jVgUG zV70k%-|;Ri7Sl)a?>N8G9q@UHF$t!=WVOI0Hh@!w7L<*Q_*dxu23Ro}@KT%K= zWXg{)GRfE8Dz9YLl{gd7_ut|w5)#`de{D~g>Ei%1+w?1{*veFCM*o5aCH z%N%RW?GxZ*Xv*!Rzccvh7fL_pK7oqxPBd#|zP}4WSeN?@{@N7r=M2ru89?d=BfVM( zvZ%G}R@te?xMzp#WHEpqX=ZdXQi)=i1DUQ}*8gqj=Y^H|DFjnp5AnxZ2Dfm`Itv7R z@55VVf9!m%_*oJ>^krcJU4e;RC60Q1yzf#B7zlIX-%ScYNmnQv+rV;k4IhP$d z7+y+yKDOK??wt<$?voE*2J6cQ=P?Hl<3zC&6$paQ@A(vBiUVLqF3=$07Y>J+A4~;6YL9z5yx;7SM$L4PByXQYF*|~ zBUeRYm9}r>&WXgZYm#ohw@RJt+c`wx;-%o$U{ctl44{qpDes`&*9D{kET~E`(|sOv z*qec*9?K8Q4v?2HWWmB1ZTT+K7DJwK^tExzr&I1Kd&#y2Z?|rcga?H-thWf+P(L!? z1Bd{Jzp# z&8dYyLmS6m-GB6TiL& { + // Top right star of life logo + WIDGETS["widmedatr"]={ + area: "tr", + width: 24, + draw: function() { + g.reset(); + g.setColor("#f00"); + g.drawImage(atob("FhYBAAAAA/AAD8AAPwAc/OD/P8P8/x/z/n+/+P5/wP58A/nwP5/x/v/n/P+P8/w/z/Bz84APwAA/AAD8AAAAAA=="), this.x + 1, this.y + 1); + } + }; + + // Bottom medical alert message + WIDGETS["widmedabl"]={ + area: "bl", + width: Bangle.CLOCK?Bangle.appRect.w:0, + draw: function() { + // Only show the widget on clocks + if (!Bangle.CLOCK) return; + + g.reset(); + g.setBgColor(g.theme.dark ? "#fff" : "#f00"); + g.setColor(g.theme.dark ? "#f00" : "#fff"); + g.setFont("Vector",18); + g.setFontAlign(0,0); + g.clearRect(this.x, this.y, this.x + this.width - 1, this.y + 23); + g.drawString("MEDICAL ALERT", this.width / 2, this.y + ( 23 / 2 )); + } + }; +})(); diff --git a/apps/widmeda/widget.png b/apps/widmeda/widget.png new file mode 100644 index 0000000000000000000000000000000000000000..249bf15bf3bf58df23dbc8ce5868f409ca7694b5 GIT binary patch literal 1669 zcmV;027394P)s^PmL`lHL*_p$GXB~Uj`!6#jip2Lc_ug~9^PM~Q&b>2t;4+8!L83b`GKZ`d(;-le zy={;S4yHy0)N5>C5*UwKdjx(_Q(%$jng)}Pd5vv&B>)h(wN@WhUF}C~UlO>K_$Gl% zjj~UT6J6mY&Q$JU5lJ)-B;UVSq5vj3+iq3Wu(2rc%JTli*;0086L2PTeF~4Ls-11O zUQ$PP1mnq1{g-u}r(Q z{gX)KTR!VX*RHJ_Z?_)B)Q?oy44424KONr~x~-I7$plPO_T))sgTPe?&nz*|9LaQq zA{8{{MD>RvavxxqGt6{^BH3WW`y%WGzEh}COm>&@U2q}Gv|C*WZ&VNn$gpELJ%%GM z0O5kh{{&;Hl>nKjbsV^^pgrLjy2WseKG2O7Ln#jghf@88)kSw;w5zoNp|`Sl0NrS) zd;qK|Zc=B#>+@JM<6DJz0HJrZtF@u9x+sCb7sjuEl~s`fD0RTnvNndCQTU{wcB$)I zEmpeP=2Ootj77pNh-|Ncv?>HdL%~?;Mj+{lNM!q1B-}E$YF+{X(|!h6>?z1>Fyo{A z<+6eFna?(CSPCrj$hz3oIE&c?CZg+G6@AcS00jOE{G=(Ci~=Y~CTewmxoGMr@I9~m ziat2rVOjZdARi=)@f_Z_*L{vm?r0u7^aadxN)~eu=)Z9h zNj&V01bMe9mb@2WG}?M?9f4i$9rfj%qX5oSAaKp~ZzoO}04s-5pDEf6Ok60Vs{R3H zR`3Ak$BJ&^>k&VpX!rGRCr-hf9&e7N_to3yR)O{c)3vgy=nViZ!v~Jo4r>H{3A_VL z`6PTAw71?qx2ido-j}aju!l}`w%%Ynf!&~;H3qmp7)uY&tsL)Idxfy*E|7;%x-Lw+ z446jl@#O;}|0-%J=Qhz9y2o+kx4`$Sj-|YZFeDD~#ye7flby`2!kPBAUPOx)qcZrX zVd!Ix1L^&x3@VOM4Tl5SCFiz)JPll3LvVnT3h$bRzS=mD-ai^`y*7Y3R)ydHL7!?m zTlaz_61j4Q7xj(I6w|D1RU0nu5Qdeoo@-{p*)IIpbcGZh;Lo@XeK3 z-6Z~BWZlwfGw>wHR-nF?5Q@Ik97{im2L24ksp;NAfN716DD@39_38;)h7R=0vQ#tw`$#ggk#9sou?a_6BcJf1Jio5a~@ z+w1No%m>JDFqUl3mu4OibqDeIP9Vs>rdaaF`SQF8mb1+#fX}@In1wnwqg#IL`vd zt0ooB0jJB_s4fOp71W+~eXGTBSKB-kC9tA@WD;dtb(}Knh~5GmE^ZQI!RzxlJmV|F z3$ztO*|ws8WU?qsDf>)E=ufEpphWXgM0b&?eFh%t(fj1WrKM%pd zbiC$Rt1MryS^Kbe_26%&5%SQ*F2PZ z5nFB&WiM{$3B24qlsZ((uk87N(Gciyrg9%%%mWVh{9(&PXWR4n1CDa`WfO2uMtIfF? literal 0 HcmV?d00001