From 23b7e65250d16bc237a892817eaa978b6429e9bc Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:43:17 -0400 Subject: [PATCH 01/19] Create --- apps/modclock | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/modclock diff --git a/apps/modclock b/apps/modclock new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/apps/modclock @@ -0,0 +1 @@ + From e49cebf3bf2eab04344f5c47ac794b4805be88c9 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:44:17 -0400 Subject: [PATCH 02/19] Delete apps/modclock --- apps/modclock | 1 - 1 file changed, 1 deletion(-) delete mode 100644 apps/modclock diff --git a/apps/modclock b/apps/modclock deleted file mode 100644 index 8b1378917..000000000 --- a/apps/modclock +++ /dev/null @@ -1 +0,0 @@ - From 8e5cd170f9bfc8f2bc748807413a8284d810189f Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:44:41 -0400 Subject: [PATCH 03/19] Create placeholder --- apps/modclock/placeholder | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/modclock/placeholder diff --git a/apps/modclock/placeholder b/apps/modclock/placeholder new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/apps/modclock/placeholder @@ -0,0 +1 @@ + From e4836d8117a3e7c49034a855a7bd5c8e2c375fa2 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:44:57 -0400 Subject: [PATCH 04/19] Delete apps/modclock/placeholder --- apps/modclock/placeholder | 1 - 1 file changed, 1 deletion(-) delete mode 100644 apps/modclock/placeholder diff --git a/apps/modclock/placeholder b/apps/modclock/placeholder deleted file mode 100644 index 8b1378917..000000000 --- a/apps/modclock/placeholder +++ /dev/null @@ -1 +0,0 @@ - From 4e9fcd7c28f5c73bb60ceab19b3517a04730511e Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:45:21 -0400 Subject: [PATCH 05/19] Create placehlder --- apps/modclock/placehlder | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/modclock/placehlder diff --git a/apps/modclock/placehlder b/apps/modclock/placehlder new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/apps/modclock/placehlder @@ -0,0 +1 @@ + From 26a55f44765247f3466769636c3d0f6d8f721c5f Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:45:58 -0400 Subject: [PATCH 06/19] Add files via upload --- apps/modclock/README.md | 24 +++++ apps/modclock/Screenshot1.png | Bin 0 -> 20814 bytes apps/modclock/Screenshot2.png | Bin 0 -> 20384 bytes apps/modclock/app-icon.js | 1 + apps/modclock/app.js | 187 ++++++++++++++++++++++++++++++++++ apps/modclock/app.png | Bin 0 -> 3809 bytes apps/modclock/metadata.json | 20 ++++ 7 files changed, 232 insertions(+) create mode 100644 apps/modclock/README.md create mode 100644 apps/modclock/Screenshot1.png create mode 100644 apps/modclock/Screenshot2.png create mode 100644 apps/modclock/app-icon.js create mode 100644 apps/modclock/app.js create mode 100644 apps/modclock/app.png create mode 100644 apps/modclock/metadata.json diff --git a/apps/modclock/README.md b/apps/modclock/README.md new file mode 100644 index 000000000..48427f6b3 --- /dev/null +++ b/apps/modclock/README.md @@ -0,0 +1,24 @@ +# Modern Clock + + + +A beautifully simple, modern clock with two Clock Infos, and a clean UI. Fast-Loads. + +![](Screenshot1.png) + + + +## Features + +* Has 2 Clock Infos, that are individually changeable. +* Low battery consumption. +* Uses locale for time and date. +* Bold time font, for quicker readability. +* Has Fast Loading, for quicker access to launcher. + + +## Creator + +RKBoss6 + +Github: https://github.com/RKBoss6 diff --git a/apps/modclock/Screenshot1.png b/apps/modclock/Screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..524b5ab0410a518163deaeb0e74e11fd53196e39 GIT binary patch literal 20814 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 literal 0 HcmV?d00001 diff --git a/apps/modclock/Screenshot2.png b/apps/modclock/Screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..bda2a6099bd2d87b095c272f1905c3cf6a16a31f GIT binary patch literal 20384 zcmdqHXH*oy);3C#C|N*|EQm@}B!?kMl#Jwz#9;e*8OpR-CnD@s;l<1ckNx(T~Akcf}V~VB{>T@9v&X0hPsLY z9v;3WF4>Y2<7&>!JFoEYZfm(JE9+?}D|703gPmO69r5tg6EaLlObvfB=35wW5s|7W zXl`lKyrWalBo&M}<&M`>Cy1eQP|~X^NFpz{QmOn>%9+SUQ)Oqu*t>7eNb#6|*S@p7 zg$&pegp)c2=PR0 zJDGkI<`x%wLP&^b+Oq;A@V~fMNIisOr*CYMGWB?v@FG+cb04Hrcyq~<;w|vJ?LWrj z)Z_xoi|KyvDdn1Yr%1w8Zm@Ej!NXwX8AID2XL_dY*b6eeSAOy~nfMW^5^H9cQMZeg z<3O0rb8|nH;y0Dt2|-J_zJ>BKNRqra?XKS_-HtDrqfHsKY`93`*Z;6$ zPj5uoZkpFN9ujXWzf%KsM(F-P$M<845@26hu!c_Kh@ue!q z9aCXB^wmF~5S}c&$nuiHpnclPhDi#s63_i*)e2Kxof9FLs}Bx}PL|v~M)8Ely=1gB zKm}H=;S|cLm#{kZd_-&BAzGl8cQ`#7}hnHA%mQE06F7w#uBK6au({5)|W>D$=s>@E3&NctM6@AVjPbSx0&lHSh|B1}qRNrPvqfDdH( zaJxF90bbfhu}~5eg~#zjftUtAF3ibR#oi{B$l5^>|AL;I_APbF$-yo|WXO+jwywug zN1R1X(h;Xv`9e)`2)UOKDWTM%^+*v9^C>63Y~-5@4)!BEhK{@5wl7gP!C?`YAx}>F zh2e+9POnBt1QH^9@a##S#JeQjTas^JVyCJItCU`KpL5_$IY7k}#fW#^@1j(aSsvo? z`s^N`<)A1tM!hqvJCl0Z3H$Voe?K)?*{}GGs2AZO=`WsgWba9CGy(j_5A|&D>?9NNX zEfE}~M4vh7dLns5XoH|+la04u+!F1S)g#jE@UA3IkJh&3FD7X24AY~|?$GdLv?MU; zp!8%a&!;*h@Qn^w5{=^IiFqwT6WT*mrLsrs9Fu&(8L2Kw7tO;}qE5`Mc<0B9SMml? zWh(ve1l7f=siofJst9p{ez2`^{Yhw1mH&MAd&!RmXSb7;`93jk-KoX1 ziV%7}@LSWD$viG!MfkJCZ~xO`v-eIV@XYcS=>d{gM~)Lq>8O@@7jso(@D z^hB(TZMRE)MI|?~#*?HWO8F3C8KK+hysCBR-9lc`t-CsT7zdHSCM(>(OSeasPsDD= z$`vh=p{MeY*PV}*J2x`8B>FH#o#$!7gi1gI)BAX{9_Ak29?BlM9{L{f6$g9j1eHI0 z)9+g}-tovkN;Oh3SDSe*t<$8r!x_q1`cC`D&>E-rQ!^zYo~*QhwA6PMY0!57!)K2& z@91jsJXimyW2QQ->iX64o3Ea{A-s6P2<*lxmL#2Ot_my6|GZGprf+B{YIvfTWK3T= z_>$jnw$$Gm`FTdo59BA~S00quq!e0mMRi8M6EL>;+vOR5HizKHOf?J5(rpFP9r>DY`CeTsqZSEazpe>9RoW^8C&Xtca*zgo`iz)84n(RNWhN~Fsn=9S8Nyam+`6>D5b97|kW z$_s=iLJ1Ls$ht46`XJTv$?@C|uui#-l+JAKe##$q2I=pfMyth>L;gbqo8+6j1+E3r zs>96lB3Btntw}!|3kE4C+tMj z;i*#W+Uy*1^Rg$h=fT+Z^`#6Xe02Bn?(UN>PiFgMQQ{{X!Qdm0bGys0SMDg+bFs7a zYvU{VW6^W^E6{mxU)B06FMluVE1AmyH1%csW{|hDmoAYlekXn}J}h!3@+fjWk~->F z)YB-psHSMEXlEiQDOXHPY#C`|ujmRHWV~fx@BFvf=c4YhZu{>3ZuZ#O*nzHlh%XMx zh;o)-;jX7jbov}*+=1^(xewIL)U*?%>9pUZB$mgAv4}o)a{AS1s=D`eDzEBb1-+Wt zJD*&iVA3PO_nY2;?mPVgA2Cn)3wI6)@3}IsthC!{JsOlhzpllsA%DuP5+W*?7vHU9 z8>D;tM4iRB(hI$K_Thu*(H74Y5B4izNz7Q!SYC2yzis~t6y+FN`8D(O-p4%g=D?K8 z+*>}<8^pt~Y_+^Bxr0fiqOOcs@Fw37*wVJvc0URMxOHP>_*I{WzX|>uxcu$;1^3aH ziQWRH3JWyM)HI~3r{rtx+5lZ=S`r}js&Q{~p>SKvBCAnwwjsB{vKqZXzR2*BA8yQ8 z7SiIj_q}PnY`nL0vHWB0hEj>v_BZ$#JQ0p`Ty~_~6_^mTIWLs0L951w_vW9y-esx? zZ&z$s-cfB&hUdHy&v3u0HEX#K=X2ohtLUV*$)d+%!4t3O{bkfNU| zC^-?_vIH3>+fFEd&&^4`jTU4N1pHC*^gLVHsZMZ49nF2kRU-a!f=~_s%)UjTTpG_*mJYarV^THCAM-6|b#J?e@UM`mMRot?a3C;_^{7H_#2a;F? zFSKQNmtyJ;Q71A|0oItzo7v4~p99)`hQ-Mio2!mP#r1=__5;@dAmB=5$!?%vN-cnc zg1sHW9e!Ns&}ld``p5af@OP*T0K9X1r{x%N0g$#TK?{ z$A&gf=FHCWuMb>=wiDddV+Z}ghqMynnbYCjhIo8UG0CI8CjTNmisCwiR_@%MHkrdK zj=eb@u{u21V8jcq$G5$8w*3fCWdtw&1aE6=B-(FDU@~Ceh>=_No;wvbJ2QtEtF51> z5q=o#LXrMm$kydrSi>i3Lq;ia9QSsS=xD0pq^*tj7*{66Bf@9FyM-&^Wg z@gL$5{-d4%4=>IYkLX`AI=KAr@fMfD}FtWO;=o;a2+$8(QQHeW0#HGJEF7cG=$;OD`@&FAL zMI#9Qo>gc0{12~IYsZgffzA+l&W^i3{vJ$aO}xFw{*a_BNU(=gERu%CXG$8PV)>uO0t==Zh?3yCm(lH z1LhXmLS@Ed8)8g3X-MyIAC6YEHDSgVTN^N^rGVu6#hZ(6Bq00*g}UYl7Z^K~v{$At zA2MRjoO^SY18!?<4LaL-&9aWUKChpwu+cs9Rlt@Y)y8@}I1k^FqW5+y!0qU>(tB=q zXaq^m0~Xr@27O^(5Jo+p79zmw2bOsybQg1P#ixztQoX+4VKmswf1Hc(`idBQqzwnO$mgDli*PeZV?Iqr#Ft z4d=4GD?YIPq3LMvjh0i>M1$PDFdoY!=cVDt%W3g?lXqAmn!Y_;Hh`|vAYZPO@$PWW zWfwosQB#hHNs4pgG`&-{o#yK!Y6YCjr$n$0cR-(aA^m!P(tf>Fj7l}*bNa^FarrCL zyIB9O%vS=E`~gq zhkq>BDf6{Vp{hBix#$XVs#R~`5u&3e8{CzQH2m^wdju=EQou@P%r+V3LY-hp_5ryp zk;x;t*!}rtnSml* z=st&h$cL0=h)1-*Or-+5G@Juyb3KVlxO?#P=k-9AFkkajYW?fH-}qL)HG;h{hC(|< zf%FjB2kZ%+2jSPkH`1UBzzHX8d*NmSioL|HEZ(eQOK+|YO0c^&7z`U?^tju(u_jfb z2s8X%h2iZ7&z4t)+(uom6w1tTW;lOHfEQl8lHv0gUOrYL__vMCM*0u3><<{1ql^^G zIj5zzqhh>r8@*9S8?`rqQIZTH#N`YMd5xKLU$R_Y%ByX)EN#8`fK|oF#u2?Zh)uP>I zyGJg6jdM$nR}k&Yn{+vHN*dP3L;tOlAgb3rec+a~sNs*M^D`U4v((DqFn9T5ai5q6+feiV-O%$7P&{f$}KTu9z4Z8!A)tXgFz> z=o&2R&X0S!cg?)Hzpi7eCBPX(3-#fIP!I3^l z$nz*=ym}M6Pj_h^gbuOyKmV7%2AUrjmow@7cO@Nyd8JvQU>^Bn(gZ)D=$rTP8PsLD zs`os3C@y1Ego1E=e0(?7b6iMzs?-<&2greMai#!CYQMAZ{ng;-lyH=&?et-^ENk=kL^a7%txdteq=1c}{FaNi6XM@Eu8VXS+n;wx z)EdN<@>=OL&TcMDRnJt}Oo`o)PkpCl;5#E3kP3d>6#pQy!h5*!>IJLz9~y4EoMBY^wp4qU=c~*}KB9W77H-;Z2w_EFqtccvAZ^*bjOoXiXI|oOu=0;XcNe8?fLV@U*6{rMkv}h=FoQHAr7}o; zy|gFH-46R}IAA_4JS_$~ul|UT1}uLm=#0ml(7)(8biJ(>?9zAf_2d4jEIE11}7Q_7~$Lvr6e09$+{0)F)SqhNS)2Uu_`Y`a^Ox2z^v8E)gMicVk_ z!l$#%x1x>KE7yKVyLfi7^D8r^KXr6Vo=o!mMC6~6(2%a6ecf?oQ2_!6yN^l3mbE%; zfWU46-b4G5=WEYD$438d-^_8Mc+m4%VQHDB(i*bF5!Z8RgS{G$(MrYb7o!!z6z6N! z!u(#&n51O=jb;|HQYU(nJY*&=<>-APtB4PwW?q!#(38}1-f8pZOyAxrg{8-&rWL1A zo<~m1L&IeCXW;B@NuKsk`)1zlO^=cM2(6ve>+PG6#N0P-9@K0=3+_YLC%FLi4Wrh8 z`Kt$W+0=z?3v(51Q9uo@ewECGS(;|`OK zu&Z&X$9nk9D)s1ON98LK;ShWRMCO9XYT($zs|VS~amU@$nRgma`<*S<=*N`lg(6iI zG$&pcx%gkiMQ|OSz;~#=D?jJ-WFa~fxov}wqcDh5xM11zmwYC=$0;DihFr)xZa)U} z_!5ASN~roenD)k6WP^wz5Q&g;+%$LIadF$VvdGh|dM~$;MsTW(DmHN2#D!}p1#Ig> z=}xyChE;xl0a%>@YD8YC!ZM1Uwk+FpubZ@gx|?&(@4y@_Px69oItQYKWEG?BDhJZc zY3#*;-DKqJtln9|mwOD~Y_f?%h z&B;%jM>(WfK%RsWiBQSsoOXIYyC2Ss2P2)RI%aMHBVDXk&35k(-6C*SQy^mkwm_!7 zg(t?f&yI`P9uA>nzttqmtd|HZKV9k{lU*o%u>57=OY!OqVw#`?g$Uym;l^@PuS_9uuzFlbDvi6$LpCc_yxs}#=Z`I1Pzp;-Uo`)3PMWu+-OEXn4 zit7h+ao;hg~9 zY<;Joi5LFDU2M1F_}5>-gcTd8)-*}llpRe*)c7oU8F`n=ZDrEUdfaHMl+V6w6-x@R zT-%c1?BP>)`9+K?rpFM?+2CkBp;urcT{+!5wJfzv{{q!2(#e9F=ctFQ=I(87vpDmw za1dKR8eV<;^K5`nF;QvHXlKuJhT0q^Qr@Lr)qCu+&$CCNB=k zoqh zK>d8TP`?&D>>k*;=%(>iVtGH5i(8)B`atx<&~0y;eR-)rImId5=?hFL3o2TnYF2ND ze%*rAA(E)cIxRI~f`iX?#wp=NThv2xAmFR>E4%Py5HHBhtIn4L^WA3%I)he^u|DJe zQ7mcZZ*>Hr@lZ7KAw(EdN#IXV*$!Y^Qzuv4r=_HqCpOfY=!=8K1C4S8n#+UGM!O}C zNSkMK;+IlLZZFVL^Y+`1Uo(cJTR2*Af42HT;SL837_=_57+wAtt(Hah$Tj=d$(W(= z9+3vjvTkd0s=?;n%C}=<{JEf&o!}oX&2w!#FA2`}ac`43izkr2G$p0`CV!TS&Aa8U zGQ~GdSQ^UV9k5IRw<9?E9_6`8*(e>}Ug$LnNvTC9rzt$A+FeQ_Ua&*jB^dt#WS^S< zgNI;@x6ps^Nl`PSjn;un!$}u$Fdz&K>5eT`+m4-eft+GeJE`Yz*zv6a%JB^FoYOtIsl3j(-$UJRjRY)5bpvm64+?8e|vXq*NohwHd& z%|kL2>Y6ym)_!Gz-2RGzn3Kro6&s{}yOG%$b-~W!25Ec;(uM`edIbIH<;~Mdz(W#b(4FFEpZ$^TElB1|RBE2PNc3OhvZX`#Ma&qCfK4Dl}0p{qGzSTDvl4V8}Sms@I zBA9MrFl|7#zK#k-xEogWgOV8eG9Aa%=!ps5&cVoaLGOW!?9fy=Zs5n<$m$jR-jR~s z64MlXcaAE^^sLV>(Fg2g8zh0XZFoUj)GL##Lorw@Ov)#s*;dCWPYRj?ZKGRO^0do% zipgJy&?*qeqIwQ^O!L``!&?B&F6#d8bDASnLk`m!@& zdV{TjY-qb<6a1x|O|lhJ%=^vS-;^o;FBHB3!U5Y;Rc}rx!?-tKyh( zQ^LVz(wp}(nLX-*6#cZ@#%IC;|8`#muTS+aFMf-t_-qL&?K`a@fQB_59ybr5^?YQ_)r1MT~^Xk3?omE z%t<`>-v!NP(LFD3{*EZi2gJ;^j2(OJcJQW zvXEM^ZN7OR5zU3~P4k6~xag(tQV@x|FsrLt`OO42g2LA{aAX%!nrGbNjnF#zng#u5 z7;f8c9gvVI1>30_v0@y67n0{prJ2kDa?_Ue5c zTV`^qe>`@ztq9wDZqo=qT}$C3*gNijaDCL~tp(5*W@sZ%Z2HDSPtRS6M199zUH$k}Q|oYH{~;m|nS%(${6iPx+-BJ~S~8CW{XHV*Qv$ zHf+F7!wG51Uq!QNVDEw)PFl=90B)KiEk~`qQ@mo^O|WH-WQ@W6Jx`T3uE`Tu|bv^CREtAlC!Swt2(TKP_&o z1MQZpvf3G`sQp{s++n|+&ZnZW(t-C8%&D0R?0tP@k&r;>mX1HRtF&^)r}nDn=l533 zcpt!-Z?Y_Sy>|pVvEp0kU-k9v7b#5*!b(@z`>;JftzX!(rg7+u#ll3`d6%%&TgI&K z@qAeZmF=}(Gla&hCa}}gXphT?=9%t`PVA*KZy>9m#&)5}StYna&fUb2WO?FKoqmq- zmrrKFw8YmnJI3K|37_DLt%o(F5s);}N&ufg{xGfhy0_SMn)BJptSXGk3ZEcOQwI2q$Lb+Bl%^GOzHa=I7@MW zix+Zfc(Dv>Hn9U6j5cPyn^h>Cd57+CL3+Ar5jKMWJiVlrYB8t3Vn00+MB%Z0#(t0? z(E^XN5oJ);|Fl1NRo0To-sw+&%5jnR{V)JsvthCB(dh4jEl!vVhd>IJRgZU3wM0-eEWm z@n4-MX*G2P1l~_daOCwE(w%w2ap$5PUia;)EK;$#+<0=OtO34%-qo7nGM17npTWoF z)>e{hB78EGn6)$fQ=*Tbw4S!ZDQaI%w3d#4lMktIedz>)mB{mZee5tP1$r6JnV$zQ zd(c{!gu1EeK>ICJzI$7@{*vLh{tn=?NsQxSiUHz{zW6HDnybG9V<5D)ut+FGRfhAh ziVsjdkX-jAR%+#O|KV_G*_yucA|zgVObINrQPIMMPtv!~ZMwX~8&5IT;rKx`}NhFgJs!-+Xe^~T}p z4c=Eq`6xG;jM0VaibSK5NjW_ndukBRli;49Uk6(oo7iN;{$9$WqbXggEr)ro=&zG%I zGB5M7<~UtatWP(iJw@?8_PD|CFLQRB!2DHz#{3*NRvOWn8Fz~l6PZdC`{a#+uD3kr zImPX4H$2HQUv*y29f0QAXj&TQ|K>RB?s|E)v1b%`1%#jUZ+e=_aDcOUeaq6~SAVKW z2uR80)45Gbz%Ga>7skx4TdXz9guvA!HoJqI`HS~RP!{(j>iF`Dv&a`!lv<6=k)QTq zUSHcA(VyjvLF-v7j+YMW?|0y9E?NC24dX-nx}jozH2dUk#`a~;KI)vYxHN`A^2w58 z%!7GHH3fE#CX5LThZiI(7iSu($nlJ*vyg$_dYtg8o-WFSv1`@Mf)Z14ECz6Cluh^gLc~?Lj)f2;KD~R z;x{)&qv+nO?LOJvVX!2 z19z%s0@q6_zEO2qDQeTZJolY6e8Ec7J(CS%8J~q(_k8uQ+poWx9;h&uG54yRncPS% zOht_UL(dxNN09HJ#H7x82?FO;QQJ(=k-zk#;EUBqk^2pl%!QtV1LnK^y=C=)2|@Fr z6xi^;6a{Ts0kLZ<->|5zCzA(1he)c-@kfbvTLH&+E^n&I+UJ^*I- zF3@GoVq?z$*f;=uZ5?LrZwkqpDe)TdZ{0I#Z45m- ze<6MfNi}>ecS$5>|L8B=Su3u`v0R?T6GUd`FrZat+YH zX5QN58G6ApC3Bd~$D|!IYOU~Wffic*gt9vHWMfdJ4k{n|=UIEO*O;WN;g;+Y@`i`? zC1dV;N&1-Js^*NemeI(tk;s`4#kDt#5W5=Q_Q^kgbm$`5Cz1jm)kv#l(;*i2c# z%&4kJ_tCx6$|Hql^@iG1f3}Ynt=Da9X-Who#a|Tytgc5bzR&%M?jPN_>*;BWx`%fU{Z0oh5t}=D)npT>3{#zeCS!#j&m$ys5&k?B{U`=$P zB&s^E;q&5U?DltHeGe#W_IzyG6Z2JJF}U0;@T^1@TvAq;{LEIq0{$6>O-ZY_my8qS zJ@qY>zsBdI!Pn$>T1Y#d@Fyy{tZQOv=Z z(o+PVz(PJZU8r!8PO_*k#QY)Z=Pm2s+^bxh*4ZV|SXzmbOSGxDD7H?Hh6Bt)#!^}3 z7mhw32cH*VIBGd!2JlC+Z5N0PE_2y3WoKOnKTeE0Hzg)9APl6aR5JM5zAvT~w7g7Z z1;IG&)p>RyFuWg!9zqd34qk9C_`0U*F z=!uQoI|j9ZMFXimt996gskd`d>XqHHdWaj4A6matF)@@pb8Fe0@Fzusgx$-9>h3gt zw%_T^JKdzc2$qII?>Ei;S$%P$7QjbpXDM_X@PV#(7h@AMx>OZ2VZIj!|AXg|H~c!jqV!OKhil>+|~Xip)0 zBFq~CM@g7ob6Ns90|^Tg(zX6}zH;rMjrr!@(bcR)J}`LUW5bHWrP*V(cB6dB(l8ve z9YdI}3$~^&mKryEhe43`AsnEeTAt)x$c)2gYACNRN$S7q%D3D$1)SCKDXwcM=P#RzrplgZS6i>sIAS=KYH zCdjjHVAhT^dunEub$jmd-;wYpFhdiD?2HrD?&(RD2QD`_pDcVI9fG+HK_DYbzxdQl zYvYj9LtUxIi4Nr)IGSB*Dco8cTrsm7Hz_neEXyt^+!`i@+pmU2t`QwGFPoD&4*n95 zDbFt6VZzjVI>@$MROO+Z&sN7Pf}%aMq0|+*hRxTv1IpQE!7od#T9MP{H^vR8WA~uWb4w?0 z9#!Rsc<2BIvWQRL52Ferjg!j{f$AGbzt^>8JeOTa;0VlT18Rl@=J&06JqFNHJ)gfK@XX_C}&`lq1M3HS6kmb1mv>b_Tlg zKchj()`c6B|7hj(x4?=MJ5t7NZP zY5KLvPX12b7OFIzKT6Vv4N+rDnkz(vKNhGc`2 zI)@&uuX-tb(r4ujh9Q6_N|tS)!TL!kqIY#OHCQ$ze9cgLc-D131>F@6w76GsK5Jev zA$vY|6CNIwlXD_i!>Mi47V@zSzK;7lX!PXdq|ouxGIDZ8pjW@zLV6MLggSov=*X)Y z6%-g4_%S~}{{e8)R5S4TliCdm8G-Nxok#4897pLx%I$@qwSbb=8A$8m%t>Y+eDg#{ zu;Ju|a}Wgb0jC{_1Od!A{e#4?Q2fRPt#_Vl8mtOy@AexY% zg0N*i(N$aLB!~F`HPzu%i@J-SL}cRd3=(10dt4K(vn9ZAc$n2wt8 zx+?!U{PNc1@ZFFvh)18FHmY{mm`>*ETO#y>1j90Eq&JSlE*le<>^E#<+VV&C{g&9? z8_zm2kbN9q6lxM*o%f~%)T@LCF9MH!7&@OTsqWEw2-X*MRB=aqG6PaL-FZ+uJUslK z>>xAgqLKG%_S*VAv?MA?<;`#Ln)v~|*|wg|ln#nHV^OQ4lR4Qp)x&Gf-TJ9Lm!FLeeS04ufvFr z@4RVDySU#ecRvvIK{Vkvo#kMPGS%r}evdAhhc2z}z9gE9@bPOdHCaRRs;k?+gT2|xs9I% zgRZMFDNaz8Et*O9>w;w%WVSZ72P$54o~T0pkX7V7g2nE=ZLJFpP63eCq}ImZuVt<-&~s>Xu+#h0#(C8;OqD#j9C>Me9(eZ~}mC z&VA*R9^KrvC7}-PEa`ai5(Qq>UD*V!YANvD@@@FY;rVW9VUxu(ZD|2f@=UyDQS?Wh zO+UDFl_w0va4sE)3)bBGHs!p(&QChn4NOiSFu$5zq-zdt(?H{(gqK%$%lA|pGIg0x z>3mBTcc;`K+T6a7&Y`+?vA(6Bxaav|I2N67?|T4>jnFfO@WfHx0?|7GfnTXDjCLSFk~#Fh)H_9<~(4_aFi{*|h71 zNl?6HBw^{}x}WZaySL|{#UZnj8TlfG5X41%_}QrAp<0xM{cMOVw?9uqYmBP;!%BEv z#Kp!WF|Egu5DE1m$))*Y=BN*#a3o!XbLJ%cQ&7IbU9QTd8n_q*5o1VnC~4zmJKx2` z4Jk!5ZdwpOh*;tjiYHNu{E;8Q%T&1Trs1u4c^oz|fK2d<#^MD)-k>^2_%ud_D=YXtspI?fm76ac@TY5J?l3~`>e=GGt= zPx8EeozTj6(39HnbJ+2@*>Qx#RytTN$)3uP+nAxr0IH&dlfLd$TgSBNL&GIvm+r|= z3T|H14yd)FH#u&?go=)P&E$vgj&tS!rcnhg6AQyD4heP6tNaN7(3hZ8*{>0=>E{BS zf-i4>xj{Q5RAMjwihDi$k9fgm(W3l4o4=D)h>gZfG@)jYH3E?Ed-;~kto-rRcdLFi z(xUl~Gc(d&k`(_E<1`Z`yB$$*vzda(Q`s6N-#3s~5}^#Yu;56}i>=@Z)AYo22!n+4 zG%hTv|A-SuQSzLaB?3=Zd6eQL9cLF=!q-ezG64IFK6ca7EYx-3ODjiir}sNSM0>}? z9|z?vz^$?)TC>g{rSQV(KJzy4+BdFRE9j9-!Wy=bpUTx-Bek6K>E?`;@GiIsHQ1yn zSjqK(3)7fLpmEzYs^%zR?|i{4uqD!vKQuK=jo4DwTHh)PgIn`I=oRCI@N;FM4g@?u zsQs@H;ZT1H`Jk3a`jp8!wf6gjLhKdALY-k`LJ^%WIwM-GF``CzHd;LkVQn37FYXF` z^QD~=$6hE1%HUkewgyjkW(U``PK2OlI2s@=EUOty1R}rg-2S~g9&V1;A z$NTwD&mlEP_(shnwxf4-{B8viQv|*q4K0jBawiVES2xjq5Z9vWigS*A8dcxL94NS+ zhsXhe`7NiyB9joMBdPxY=vq>HjtxT*Gv#Lo*Ia-5mz|+jhk<#jT5DZy968O-k~7uW z{43J8Y~l4gcwvt^Erw5Sl_%2&CjTKYfeQ0u-LK0eEs&fQ#@3(PaYib{psgqpTqyb= zybX9|sKJML)Ll;X|3^>Y>2d#i2*e5eFNvZf+a~^)*@g=24c9NcBmT92sDkU!*5&%a zC-a+5#4M1_CKySbD|7OGsgCjPKSPywYavfT1wuGk7E*&$3v@hCvxc=Og{RiHN4sG> zZh?hmZs2=_n?q=x2H36c+n>(*siSbicEj2DcS0T#yaz3A)=Y>We_ziyh`XT?m8oNC z*Y>3i=UU5q45XOhDAOb-8^dZEKL=SkdFhM~|da zD4NLdGfYyjLV?c!0VAU->-R1^GA zi7Yb3TzD>?|wnOmRq@6k%q z5tG(36g!Ds`=^|z5;!QZ<}Lk@=o()gZOQ|+i{+PLmuyfk&bR3CY&hs}D+s%3JMvb5 z;PPyL#c((bMECi|XITk7jaqgVhHX*{&9x%U(Tfx*@zFgTxS>ln2RNAS_P1p$lE&>} zc$Bm}Z$e)DIVm!6@xq#;hc_%rLx}-5=ZNjOQ(+&4(bd(}-ru96qo>Emf55(Kj2q0| zr?`DoEfpNk9j&lw|NbQ>0U#$U`(k3|7=;pVZELfhVIkDQOiV2pLfx@ALO`E6Srq}8 zm|3}m%%4vHhfP*PDQ>{itX>>RfaN!~#D&{atiPM(!UuwgCt0YQ0Zz9?y}1M%43S6(M!!5q2>UQPksHaRj$Hl$o z7JK>wv>c6=X}cGMxxZA1aUdB3o3pV6HS$v8=KIb9*xyd+J_-j7nlro1{4i1Cj_0Ct z*CBX1eV=dR++B+kX1y;!UoRFk1Sy4GGA_-s0!7*SC< z`sTsLzus`XRKIf$k`J;}N0<0)>c{$*i_|KGfiHcjn2~M-^o3knZkJux=mRmW59@63@zWq1Paw^8M79~z> z$mv2OI3%|@xa5y18dMtK$0O&%bq5$bnH7>|>^rEn?EU6=4#BoHC&oX`Hv2twB)K&f zbm8)8ZG0{U3fkO@^uoKA_dj4nqiKiQa+$SMe3y)N5Q*SBG9A2KFo{(6YyA*fz|>hP z`gDbP`Z?MK*#03GB;1wP3dP+m`+vI9%g1O(^d)J;cK)wUuKk~_JPo^3IzrI2jY=w1 zO^bHysC7vUMT^#@U9G02hN8$Mwu-t$+^T9hdbL_jhHS5{9g=7XGNq^VB0{p|j_f53S!-_QG=_j#Y^d=I$h`*T&TgOb7pD-9`Rm!fE!uA$(1k(_cW zs(5rtWJ<0}WUr-`msksevpsoas5QNHPQDEAJnT7=tl9RyVI|pwlt-E=a1=BHT(PR_ z$@R%Mf_x?$wV*8uaAKcpBiaYoU{P9i8;ArZTMMX^n<phv``H1jFLVEJ%fx?cNbwk9yYS=iKbQ@34F&{a^(9puNovd2K!dJC2x{7qarL}D zT7Ty&eo`84;lp%z1>#8C_!XF={V+|_soX9fajl|PW#gT_Sp&l*ON((T0xZfChPske zWw{S}`qcH5`p+Qd{q*y?Wi>8Xp-%ex<&X*NZy2>?UolP7V>`KcHus3Ag-s8J=~ zXz}vIh>XwV`4UVf5#6V~6(s8T<(Oq#;Z5hZTYX;>e5i7#x-C!%FE;`QzU#;Vzj76x zWM4b(ZQK}gq~|^eMfp-a&!>tZll!?t&BKz+CbP$VMg|^&)1%h4)b-PmVAy4k~ouZxOgBUIyaJ+ z5z#~(U!%~Ryee(NX_;jk8eE&%E@E&kUe<*P^1pETu(OV<7|sPFEpepbLOrh&}c*WS$`+HLt{s9bB04@jJc7BsQ-Oz*e_GRBc1M|TCE z1}%i!44NRA&O}@cGRZwD5X>x4#Yi{26v(7p^AG(f7p5<51Lwl>AH{^>4$X9-TTG*& z=KP^wP6)VMAG%X{NmWMhJIOP7z)GG|!j(Rs(VX#n5|3&_95(A$ZCxA56$S5~9~R zw0S@tg~8d+;ladc?Cw$D#lS1NP0zR>4m!q4c{Ipq?yafbgBiIE4R}mw)oDQoEDt9t zr2lwBD&W{KkG~3Xq2iowB!PTuyL_J@~CVz zs$MgEliHf=<`zguAKn?^u7t5!+b~q$QCN)@L|1{l*WA&+)<*8$Gj(4rk?W2<5eu%Y zh}qcn$Y*^!E}1WSW~O+2nLQW@ZKd~iZy*A!GQ+yjsbHFO6D0G#`|65)F(E*AN$W?+3$wIa!U%+yWX9g(D+H-= z=!d>z{|ci(x{JQeE3Q9oKa|hkCSE!K*9|}jR0MH?zR8Xy(DBf<^G2&bxWLn=OZyCS zHVMXx$OemXmx6b(eYyW4!UwCg_qL#3c>d`inOr&1vw&XA)r4FAOlmc*qP(5JtUv@> z$g=D-mp<~tC=6z{Np1}t-^5WpY96bpy&fQ{*eOyj`7aNEBAn*EN#T`+w-ko`d0_uT z1pcaQ8(n6YxT|B+!R6`-@e}(S(pRc^n?Q|qYe4pfiF;PGch2D(v&F~nf{yt^xtTX4 zUrhkKDCn?n<~~f^2nZ>ce>CIE_ZL zk*x~y7F=a!lq6RJA98?t@s5vMW|H~0`{AyO;(EgwuhMScH7lpEX=lt~z}s#mZ;GE9 zB%md+e24mYIb8_s_Aw>%Ce0RUB}5MQ>BcU9j?q^=u_xpSVED(FwN8q*Zeui%(;5gd z#Lts%-#Mm%JE3+6^ZS0k3yF?uOgMJ&QsX^f?5|lg%S;_VTa~K>#%I%71jhi^G42;J zRwDB;8tiJdRW25tRg;*;k4FCVz>`6J!#&AS7h;vyW2>!*MB-ZMoO)i^Mn-K=Oy{dt zZqpM4e2*axukRSRvB}Px?#3|FYCma|T1f!?9Vk-E_I}zYw9*fCylsubxhYgw8~2mn zgA6z-MbNEj<(dxF@vA3fpsr(o5X0c7WcV zbGZh%*~WdI)P6nT7`gh}1`{-nzRv2$x45?A2j<2R2&S=&&Q|ws7V~? zR%MoucJLa~4xS24=x5)$Lb8ZoE=7%{Yq1Q6^pbcCnj^aEr?Dx+Tn5FH8B%}^q^h_a n0yUYRv@W>(-;cCzD4RU-nBS+LSOWfXK { + // itm: the item containing name/hasRange/etc + // info: data returned from itm.get() containing text/img/etc + // options: options passed into addInteractive + // Clear the background + g.reset().clearRect(options.x-5, options.y-5, options.x+options.w+5, options.y+options.h+5); + // indicate focus - we're using a border, but you could change color? + if (options.focus){ + // show if focused + g.setColor(0,15,255); + bRoundedRectangle(10,100,82,170,8); + }else{ + g.setColor(g.theme.fg); + bRoundedRectangle(10,100,82,170,8); + } + // we're drawing center-aligned here + var midx = options.x+options.w/2; + var midy=options.y+options.h/2; + if (info.img){ + g.drawImage(info.img, midx-12,midy-21); + }// draw the image + g.setFont("Vector",16).setFontAlign(0,1).drawString(info.text, midx,midy+23); // draw the text + } +}); + + + +//CLOCK INFO RIGHT DIMENSIONS: 97,113, w:66, h: 55 +let clockInfoMenuRight = require("clock_info").addInteractive(clockInfoItems, { + // Add the dimensions we're rendering to here - these are used to detect taps on the clock info area + x : 97, y: 103, w: 66, h:65, + // You can add other information here you want to be passed into 'options' in 'draw' + // This function draws the info + draw : (itm, info, options) => { + // itm: the item containing name/hasRange/etc + // info: data returned from itm.get() containing text/img/etc + // options: options passed into addInteractive + // Clear the background + g.reset().clearRect(options.x-5, options.y-5, options.x+options.w+5, options.y+options.h+5); + // indicate focus - we're using a border, but you could change color? + if (options.focus){ + // show if focused + g.setColor(0,15,255); + bRoundedRectangle(94,100,166,170,8); + }else{ + g.setColor(g.theme.fg); + bRoundedRectangle(94,100,166,170,8); + } + // we're drawing center-aligned here + var midx = options.x+options.w/2; + var midy=options.y+options.h/2; + if (info.img){ + g.drawImage(info.img, midx-12,midy-21); + }// draw the image + g.setFont("Vector",16).setFontAlign(0,1).drawString(info.text, midx,midy+23); // draw the text + } +}); + + + + + + + +// DRAW FACE +let draw = function() { + var X = g.getWidth() / 2; + var Y = (g.getHeight() / 2)-15; + g.reset(); + var d = new Date(); + var clock = require("locale").time(d, 1 /*omit seconds*/); + var meridian = require("locale").meridian(d); + // draw the current time (4x size 7 segment) + + // align bottom right + + g.setFontBold(); + g.setFontAlign(0,1); + g.drawString(" "+clock+" ", X-10, Y+1, true /*clear background*/); + // draw the meridian(am/pm) and seconds (2x size 7 segment) + + g.setFont("Vector",20); + + g.setFontAlign(-1,1); // align bottom left + g.drawString(meridian, X+50, Y-10, true /*clear background*/); + // draw the date, in a normal font + g.setFont("Vector",18); + g.setFontAlign(0,0); // align center bottom + // pad the date - this clears the background if the date were to change length + var dateStr = require("locale").dow(new Date(), 1)+", "+ require("locale").month(new Date(), true)+" "+new Date().getDate(); + g.drawString(" "+dateStr+" ", g.getWidth()/2, Y+9, true /*clear background*/); + + + + // queue next draw + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +}; + + + + +// Show launcher when middle button pressed +Bangle.setUI({ + mode : "clock", + remove : function() { + // Called to unload all of the clock app + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + delete Graphics.prototype.setFontBold; + clockInfoMenuRight.remove(); + clockInfoMenuLeft.remove(); + + }}); + +g.clear(); +// Load widgets +Bangle.loadWidgets(); +draw(); +setTimeout(Bangle.drawWidgets,0); +} diff --git a/apps/modclock/app.png b/apps/modclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..889531f1efc297e3fdf7794da359554ff529daff GIT binary patch literal 3809 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/apps/modclock/metadata.json b/apps/modclock/metadata.json new file mode 100644 index 000000000..d59a91756 --- /dev/null +++ b/apps/modclock/metadata.json @@ -0,0 +1,20 @@ +{ + "id": "modclock", + "name": "Modern Clock", + "shortName":"Modern Clk", + "icon": "app.png", + "version":"0.02", + "description": "A modern, simple clock, with two Clock Infos and Fast Loading", + "type":"clock", + "tags": "clock,clkinfo", + "supports": ["BANGLEJS2"], + "screenshots" : [ { "url":"Screenshot1.png" }, + { "url":"Screenshot2.png" } ], + "dependencies" : { "clock_info":"module"}, + "allow_emulator":true, + "readme":"README.md", + "storage": [ + {"name":"modclock.app.js","url":"app.js"}, + {"name":"modclock.img","url":"app-icon.js","evaluate":true} + ] +} From 29e6a3efa0617cfd89b48bd45f2e166b61ef6838 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 10:46:24 -0400 Subject: [PATCH 07/19] Delete apps/modclock/placehlder --- apps/modclock/placehlder | 1 - 1 file changed, 1 deletion(-) delete mode 100644 apps/modclock/placehlder diff --git a/apps/modclock/placehlder b/apps/modclock/placehlder deleted file mode 100644 index 8b1378917..000000000 --- a/apps/modclock/placehlder +++ /dev/null @@ -1 +0,0 @@ - From 617c5146e8bf53755a31d9cc517bbc0b1a5aeb4a Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 19 Jun 2025 16:04:05 -0400 Subject: [PATCH 08/19] Create ChangeLog --- apps/modclock/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/modclock/ChangeLog diff --git a/apps/modclock/ChangeLog b/apps/modclock/ChangeLog new file mode 100644 index 000000000..d3e2a506b --- /dev/null +++ b/apps/modclock/ChangeLog @@ -0,0 +1 @@ +0.01: App Created w/ clockInfos, bold font, date and time. From c3a4b76aac84ae3a9ce2ac0e172a11b08e3737c6 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 23 Jun 2025 17:17:32 -0400 Subject: [PATCH 09/19] Update metadata.json --- apps/modclock/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/modclock/metadata.json b/apps/modclock/metadata.json index d59a91756..474b384fb 100644 --- a/apps/modclock/metadata.json +++ b/apps/modclock/metadata.json @@ -3,7 +3,7 @@ "name": "Modern Clock", "shortName":"Modern Clk", "icon": "app.png", - "version":"0.02", + "version":"0.01", "description": "A modern, simple clock, with two Clock Infos and Fast Loading", "type":"clock", "tags": "clock,clkinfo", From 729af9778133bbe16637f2b4bbb5c03adf6e6855 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 18:42:21 -0400 Subject: [PATCH 10/19] Fix meridian alignment, added proper alignment with meridian --- apps/modclock/app.js | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/apps/modclock/app.js b/apps/modclock/app.js index f8ca038d7..aa64680af 100644 --- a/apps/modclock/app.js +++ b/apps/modclock/app.js @@ -58,7 +58,7 @@ let clockInfoItems = require("clock_info").load(); let clockInfoMenuLeft = require("clock_info").addInteractive(clockInfoItems, { // Add the dimensions we're rendering to here - these are used to detect taps on the clock info area - x : 13, y: 103, w: 66, h:65, + x : 10, y: 100, w: 72, h:70, // You can add other information here you want to be passed into 'options' in 'draw' // This function draws the info draw : (itm, info, options) => { @@ -71,10 +71,10 @@ let clockInfoMenuLeft = require("clock_info").addInteractive(clockInfoItems, { if (options.focus){ // show if focused g.setColor(0,15,255); - bRoundedRectangle(10,100,82,170,8); + bRoundedRectangle(options.x,options.y,options.x+options.w,options.y+options.h,8); }else{ g.setColor(g.theme.fg); - bRoundedRectangle(10,100,82,170,8); + bRoundedRectangle(options.x,options.y,options.x+options.w,options.y+options.h,8); } // we're drawing center-aligned here var midx = options.x+options.w/2; @@ -91,7 +91,7 @@ let clockInfoMenuLeft = require("clock_info").addInteractive(clockInfoItems, { //CLOCK INFO RIGHT DIMENSIONS: 97,113, w:66, h: 55 let clockInfoMenuRight = require("clock_info").addInteractive(clockInfoItems, { // Add the dimensions we're rendering to here - these are used to detect taps on the clock info area - x : 97, y: 103, w: 66, h:65, + x : 94, y: 100, w: 72, h:70, // You can add other information here you want to be passed into 'options' in 'draw' // This function draws the info draw : (itm, info, options) => { @@ -104,10 +104,10 @@ let clockInfoMenuRight = require("clock_info").addInteractive(clockInfoItems, { if (options.focus){ // show if focused g.setColor(0,15,255); - bRoundedRectangle(94,100,166,170,8); + bRoundedRectangle(options.x,options.y,options.x+options.w,options.y+options.h,8); }else{ g.setColor(g.theme.fg); - bRoundedRectangle(94,100,166,170,8); + bRoundedRectangle(options.x,options.y,options.x+options.w,options.y+options.h,8); } // we're drawing center-aligned here var midx = options.x+options.w/2; @@ -138,14 +138,34 @@ let draw = function() { // align bottom right g.setFontBold(); - g.setFontAlign(0,1); - g.drawString(" "+clock+" ", X-10, Y+1, true /*clear background*/); - // draw the meridian(am/pm) and seconds (2x size 7 segment) - g.setFont("Vector",20); + if(meridian!=""){ + //calculate alignment + g.setFontBold(); + //padding in px + var padding=7; + var clkStrWidth= g.stringWidth(clock); + g.setFont("Vector",18); + var meridianStrWidth=g.stringWidth(meridian); + var totalStrWidth=meridianStrWidth+padding+clkStrWidth; + var startX = ((g.getWidth() - totalStrWidth) / 2)+6; + g.clearRect(startX,50,startX+totalStrWidth,80); + g.setFontBold(); + g.setFontAlign(-1,1); + g.drawString(clock, startX, Y+2,true); + g.setFont("Vector",20); + g.setFontAlign(-1,1); + g.drawString(meridian, startX + clkStrWidth + padding, Y-5, true); + + }else{ + + g.setFontBold(); + g.setFontAlign(0,1); + g.drawString(" "+clock+" ", X, Y-2,true); + + } + - g.setFontAlign(-1,1); // align bottom left - g.drawString(meridian, X+50, Y-10, true /*clear background*/); // draw the date, in a normal font g.setFont("Vector",18); g.setFontAlign(0,0); // align center bottom From 68ee49b01ee99c1cc014eac4a33f9e1c6ff774b3 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:41:06 -0400 Subject: [PATCH 11/19] add new app icon --- apps/modclock/app.png | Bin 3809 -> 3622 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/modclock/app.png b/apps/modclock/app.png index 889531f1efc297e3fdf7794da359554ff529daff..f275961732864efe3ef605435f9f1135706db954 100644 GIT binary patch delta 3621 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 A2LJ#7 From d188262c9a12530015e2fc83c39d2f59aa4693cb Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:41:47 -0400 Subject: [PATCH 12/19] Delete apps/modclock/app.png --- apps/modclock/app.png | Bin 3622 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/modclock/app.png diff --git a/apps/modclock/app.png b/apps/modclock/app.png deleted file mode 100644 index f275961732864efe3ef605435f9f1135706db954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3622 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 From 318ada8a6d91669657b7b8c428568636406ccbd6 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:41:58 -0400 Subject: [PATCH 13/19] Add files via upload --- apps/modclock/app.png | Bin 0 -> 3622 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/modclock/app.png diff --git a/apps/modclock/app.png b/apps/modclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..f275961732864efe3ef605435f9f1135706db954 GIT binary patch literal 3622 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 literal 0 HcmV?d00001 From f1c4e8e81409d21b34ada71ccc1e337946d5e861 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:42:18 -0400 Subject: [PATCH 14/19] Delete apps/modclock/app.png --- apps/modclock/app.png | Bin 3622 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/modclock/app.png diff --git a/apps/modclock/app.png b/apps/modclock/app.png deleted file mode 100644 index f275961732864efe3ef605435f9f1135706db954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3622 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 From 282406df2f8cd7875ec72454e4b73b217148327d Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:42:35 -0400 Subject: [PATCH 15/19] Add files via upload --- apps/modclock/icon.png | Bin 0 -> 3622 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/modclock/icon.png diff --git a/apps/modclock/icon.png b/apps/modclock/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f275961732864efe3ef605435f9f1135706db954 GIT binary patch literal 3622 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 literal 0 HcmV?d00001 From f8f7667187323cfb4995abee4f67a095b28cdd6d Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:43:14 -0400 Subject: [PATCH 16/19] Update metadata.json --- apps/modclock/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/modclock/metadata.json b/apps/modclock/metadata.json index 474b384fb..344df0199 100644 --- a/apps/modclock/metadata.json +++ b/apps/modclock/metadata.json @@ -2,7 +2,7 @@ "id": "modclock", "name": "Modern Clock", "shortName":"Modern Clk", - "icon": "app.png", + "icon": "icon.png", "version":"0.01", "description": "A modern, simple clock, with two Clock Infos and Fast Loading", "type":"clock", From ae444cd7c0e7434774e6c6ba9f9394aae4c0d2a3 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 26 Jun 2025 21:44:54 -0400 Subject: [PATCH 17/19] Update app-icon.js --- apps/modclock/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/modclock/app-icon.js b/apps/modclock/app-icon.js index 09d3e4086..0870a83cb 100644 --- a/apps/modclock/app-icon.js +++ b/apps/modclock/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEw4UA///ztE79Mz1MB4cDBgPADY/614BBBQ0+34XB/28BYvv/W//2v/YKEh3+34EBAYOwBYc79YFD9fsAoYRFDoIECgX+J4kD3+AAgML/gICBwU/8ADC+AgCEwUPCYXvCYUPB4UDKoW+FgQLDBAQODBYogBhxXDBYk72EPHwQLFhfwhZpDBYkO8E7MQQLFgXsn51DBYkD/kuBZO49wLJ3fuTAYLEgG794LJ/f/BZL1BBZ8O/ALJbYILEHYjzBPof7KYkAl6hDL4L5EhYwCNYKDEGAiDBTYjgCAwKbBWYgABlSzDZYgABhjLDcYgAEcYL7EAAj7Bgf7BY/vHwO+BY4ICBwQAEEAc/V4i3C/g+CAYQADn5QCPwIkEgaqE35tEhzCEnfrAofrM4gRB34EBAYKLF9/63/+15yGn2/eoP+3hxG/WvAIJ9HgYXBK4gA==")) +require("heatshrink").decompress(atob("mEw4kA///00x3u+pPK8+xxXCxHCn+/xO6tO6o0ZjFt+sjw0xudkhHCMf4A/AH4A/ADECkUiuUnBAe7AAm85gAK5YWChYRMAA2wC4Xq1QAQ13gC4cRAA3RBA8RC4/dCYfdAoIADjQXJjvRCYMdAIIFBjuqBAMaD4Ws4AvG6NB6NNGQMdilEokdAQNJjseC40d6lU7FdC4VImc2ptGmc1poXFjoYBC4PZqgXCouEouNo1E+sajxfELAIXIpoXBAYQXHF4U/+2EC4YVBzoXBpIXBL4oYB6lTmwXBSQNIC4lFO4LXIRIJHBUwIXCptIC4NKI5AqB7GU6OIC4ITBR4IXGvYvEC4IvBC4NDn/zxtDskzU4IXGa4JhBwjzC7MztAvBxE4jscF5EROoJfCAoJRCEgMa1wXFFwQYCAYQbCBgQDBC4aPFGAYGFAga/F1Xd1QCD1vRAoXdjUaAoWsC4e85nB5gCD5kc1kRBAXBiMcAoJHCgW7AAu8AYYdCAggWBAAMiCwvLB4YAF5YWDAAMMCBAAG0AXKNIRrChfsBZAXGBQoABC5QA/AH4A/AFgA==")) From 7d56b7d8ab57fcc5a46a921d037f520b8b286e07 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 27 Jun 2025 09:40:00 -0400 Subject: [PATCH 18/19] Fixed clock not clearing with redraw --- apps/modclock/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/modclock/app.js b/apps/modclock/app.js index aa64680af..7fbe7b7e2 100644 --- a/apps/modclock/app.js +++ b/apps/modclock/app.js @@ -149,7 +149,7 @@ let draw = function() { var meridianStrWidth=g.stringWidth(meridian); var totalStrWidth=meridianStrWidth+padding+clkStrWidth; var startX = ((g.getWidth() - totalStrWidth) / 2)+6; - g.clearRect(startX,50,startX+totalStrWidth,80); + g.clearRect(0,0,g.getWidth(),90); g.setFontBold(); g.setFontAlign(-1,1); g.drawString(clock, startX, Y+2,true); From af2f861ba7548cbb0d763a48ee2270cd04fb1b6e Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 27 Jun 2025 09:42:59 -0400 Subject: [PATCH 19/19] Fix widgets drawing w/out timeout --- apps/modclock/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/modclock/app.js b/apps/modclock/app.js index 7fbe7b7e2..d1154d1c1 100644 --- a/apps/modclock/app.js +++ b/apps/modclock/app.js @@ -165,7 +165,7 @@ let draw = function() { } - + // draw the date, in a normal font g.setFont("Vector",18); g.setFontAlign(0,0); // align center bottom @@ -173,7 +173,7 @@ let draw = function() { var dateStr = require("locale").dow(new Date(), 1)+", "+ require("locale").month(new Date(), true)+" "+new Date().getDate(); g.drawString(" "+dateStr+" ", g.getWidth()/2, Y+9, true /*clear background*/); - + Bangle.drawWidgets(); // queue next draw if (drawTimeout) clearTimeout(drawTimeout); @@ -203,5 +203,4 @@ g.clear(); // Load widgets Bangle.loadWidgets(); draw(); -setTimeout(Bangle.drawWidgets,0); }