From 3310a3c4a451ca1ae4c3452afa00665d89c55c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Tue, 14 Apr 2026 11:31:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D1=87?= =?UTF-8?q?=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.5/executionHistory/executionHistory.bin | Bin 6479814 -> 6479814 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.5/fileHashes/fileHashes.bin | Bin 321578 -> 350146 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 121181 -> 124615 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 1163663 -> 1164203 bytes .../chat_list/ChatListViewModel.kt | 12 +- .../chats/presentation/components/ChatItem.kt | 63 +++-- .../presentation/components/MessageBubble.kt | 78 ++++-- .../presentation/components/AppAudioPlayer.kt | 127 +++++---- .../core/presentation/components/AppAvatar.kt | 35 ++- .../components/AppMediaLightbox.kt | 105 ++++++++ .../presentation/components/AppVideoPlayer.kt | 6 + .../core/presentation/theme/Theme.kt | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes client-mobile/gradlew | 249 ++++++++++++++++++ client-mobile/gradlew.bat | 92 +++++++ 18 files changed, 665 insertions(+), 104 deletions(-) create mode 100644 client-mobile/core/presentation/components/AppMediaLightbox.kt create mode 100644 client-mobile/gradle/wrapper/gradle-wrapper.jar create mode 100644 client-mobile/gradlew create mode 100644 client-mobile/gradlew.bat diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin b/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin index 19a1f6dcadfdf9b41461995ce4a480acb86ac983..6d6b5a9fc65001b94d677d333bf181f28b698a57 100644 GIT binary patch delta 53547 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 delta 30782 zcmeFacT`l%(g(^g8<+uw86+n`4B!9*387j{z_pF}~`((R=SX-?#4j=lkca=UQ8TySlo%ySlo%x~F%0u4+B^ z96o6}hH6UWkH4#}k`mXL!G4v;lsNRBbc=!IGcV|K`W|#Puu?ua*XTNj!zqs~(l3vn zs&mkLsMCE>e3=pzU$%W#Kc|IroaarMK4;3rm|3$I#LS;OD<*nsoKplNPf5vD>1;;B zP;*6fPmZ68a*`_KH-`;@`27MQRDbW$4ZOOKa#HN=%h|UJ9^RV}rg%_k71>+Bu}>8E z)pA!TO9N&d?mz7vG<=(20WpuQjtLsJGzi0;?^4HyS1(>QzE9Tgq#j`Y#7YfDz2HPa zSs%6TFyX0{Ds+8n^+s#8Wz7n+Aj{-O@)3#jQ+tTt$}s?Yk(vnV4SjhK+*eISG3J?- z5m)fJyU63}D)ZqF7%<#nG46P%m^`{9spFamJ_UE^Bwb9$MRY z1~_IRE}7#@<|k=Z^i^n9hz{$(dUdftVeuE0&*z@(I10n=h%8}GH?d&zXO%5fO~=vO z5WC1UjC&f>V#0e4rp^$OV6mw)ybbRu;GXL^nt4w&SW&I4GLyqS-*HqSrc_FF6yfcn z0UYiH%$4^}G?aT0f%&AKQtA@P-fpDg&LVqbl}X%MOcX@*96=$t4Q<9Mfr=F$L=>NT z)rRlOd#Tuh;=4#dy&$jEy;L0F8@_U1wjBknA0jUvg4>Ofr+l#JqtX*%daGza;t%8} zbV%*3;tW^uwUh0n5X=|zduH}g;T!zD=U739dovsm{8Pm5_V*qnh0gpb^5kOOp!BE6 z#prMSWlSpFC|TQ;vj-gdi7gBPgADh1Dx%UUn+;xHl7z!7LS<$qd((0@D%P%Sf?PwTV#1f74ZM#&a7G zw5!@opz2AkJbRU~)GdO3+N(tKZX;@x#M^+yE>l0Ka!?VdH8P~Fkg&^iGN?@Ly3ubub%UVTBCKB>K@Lu6J6I;r8a9F4I|#BhY;s7o z26VA;Vk%titkRd8w)Pn0cd?mGA-D|_`l;NY@<{%cQqx`_(6q6j^2uw0i%J-GJLX=m zX)}t-C8P%>rhzQ4xD@rXjnGm{k+!olzm!GsZYp8CETlC`4yr-R2EGN932dx*ISlC> z1rGkw9?&Km*A=vcHrf=SLu`MQP#zK4C@EHhU=I}w$P?Q1U=vU5HyuV55Vml4l|d{D zDKib?VkuCfZ4=Dhf#9dM%}^c!6j5ym?N_l35xh8`@68D}^Rn%AojhBkA9 zt{@t3Xve;G|KK5n{o@Tsv9Cc+PFyWOPV%@38HeYx*_ zmGJrRGlD5N7>*jNus0m_h2pGMw7rwxovD}>tNLh(0%w2#$^Y*Bt--Hi%uF!1Q1c?b zp8sFxg4>CsXJwkHxr6*E&I~vejE3#P@ZZXYA z8Oh_om;k;L^JXvL2;>J+8H85TJ5o&TBq(1Xb)-&^)bGP&&eQ{f1VX6`^_8Glf0+|?k05ghbf=yW zBn;-eQKtw>m^jjfT1BLU)3W~5NkYq^F-I|>m1#>QR1ra417wcWM^f<^>quMb6XDCZ zjMBXK-xk=5DkPGH{pAuK zDWg$x$Ox)+q`ELc6e*y-5Vq(rz871S{gX#JP%VU36(lnP<>CAgwR(JQl;lDA_CP&| z8P2ykv`OS!aFQX){9CaC{G+|Nj)QITbRs`?Et}Oei*fmY9gsJM@54Ka35}AHNND$xi^0q> zQozNwf`enElxiSl1&)+CLmASko8+}x#`mFq5cF`Q%mF+knBfd&2$Dq7++zrGB$3mo zcGBsoqhwR54#L_zd*oE=I6+P0_*1#40|<1E97;VTB(pIxcev?{1u*KGHAdzJW^%Ob z{iM$AYeV}&c)!T*tO+ca^ZmIOQjS4GzsOZ=iBLHhyD5cxnZ4irdpjSQvINvT19j5N!P;0t&c z7@k$(kT*`I4`MRQ$ay@A4qM`}WZjrjI#v67Ann78%l?IeX@O62lw;Cly zeLyf?))zjzMGAPNvl=De`ar@^`6w!lRH<~l%n!;Uv4%HD;ociUM{;rSfrWeI5Vd%Q zzYUuGFiS%V% zP=iQ1fR$qbp#!L=Bzs$VpdagG@@%9gkUA4PFbxZBl$`N~*aLyOQ0er_{u$ith0v8`>}&HW;TB?b(%D) zW}1v0Cz;XcHW~LdAetXZ9b%NTEi{zv7|skCO`#0*2?Q}tI-j62LTjHP^Jdi$HA)`L z3XXMW8pwPCpvvN7X zXq^g8q6XY!2{ruZUDP7w${b9%sr z&`33%yX`|C_U@kBUic|fe~4-3JVsjk622Y;KeZCT)zC;?^)*b!HX)~!tW~VxYIUHB z&QWKZS2NFj_^j@91tz;L>CV(DW(nVui@Ji?ut--f&bkmBA$L=&KutADUPDZEpn+l7 z8}4Awmvz1GukCno?8ekAVt44z(z%dd9q7YOsQ&I!ZwmeMZAf#+u|+JSeR!l7l|$NU z;vuygge1(>mde4k%fT;=A+LSSg10=)4_(ty^9e~wUHLUVG7}$Mx6p4X99of&q)%p} z<{h5p-seb=_SKFr+eWb~obU}J2lGBK!kTrVe0QiVY%up#g8>U<+N^O11D~;lABHm+$d?G7HG+64-Mk66>_+knp2ON@vrMA=>f*uaWFsy=fM)~DHdkP&7 zy1WFL74?>+3Tp%VQ`-rxraV+cVGx1Ak`#wC>jw{@mm@QI=9NI2?a|;XfxbL!8rG{s z0Gz|27GOS9YD4`X?Fb%FmsJ?6^_KaL~isdq%p1=h4g~7nWNR=?JAir z)lO31`bk6B0HFD5pg%>z9>_l&>ca#!?GqzI*s#>rALp5iBr!EnHk4{6g*6-r^K&oQ5Oj|Su1P}Y|DK?BS{lYBAbgE%IQ6Nsp1mM^(P(XGU4u1YGPDMuWiV4w zK%lfg)5k;R%9pZpl17lUH}?wazkRM8*jhSNg!Y5r5+?*mIc}bloP3sM>&0&|A_Pi>lD66dK2EST-ERUBvQRW}!GHS{ICv`cOE1qi)h< zVzx`xjgZx}yG%Zk9fz8u(XyF2Cq6^w-dW2G3>Ao5h4#@>S9Tt<9V0b_37cdB*6`=XG3jSgST%Elu_3ip)y<({3Ln3GjX-SC@bb1 zn(r-=T7E9nk&Uq1Gf@iD&G{`j9Cne^5RlE{;_!o-xsh(%tJn$oE9L$a#(p?uKMEY$ z85oYo{(DZ!uO2U52WqQvs;(ffa=FwM_HV^jyddQ#O_cjm^`y{-Z8$4`BeKg2_zv(Y5yOB|zNTka90L?_9eSzFEB$=8RfB&<{=5h2c!4Pb37zc#dUo?IjMq!c94ArhOy zL?j7UP(@5h>De-Wc8CeO#SDp12H-wzMU~yHgH`v#Q>T=OfK*f5w0~1@e zu9wf?qVI(9$?^a$M%PeE0I}fj1YkS>0VxPBV?o&|@xj{0B% z63&fKpH4@2R0tN2ah>)e6+4eCnQ(U|mMJasw66;ENt0_cD-@43?3Jx3Z)TcY#Er)) zZ%dQgF%!Y%Gz{QKSPc<{vccQ~q&ex>-OK{0y-?=H#c&K7(&ZD?N$8Aqx*!CK> z*p?w5#6|xLO&M})Cg|4KB)3+7g{Iml*9sI29TB2VKDH6N5Zl)8S(iJ5PTHdn70+Jy&BV?eU5Yz_cI!l@izHH?lsJpuuUGsdJtipG=xXg)+pJj z23{UE?wK)CAuQaE3PLSF@^<+IE_OM*-7Xh1=3t&BmuRq&)J|1SEeC2mdJct{wOC|v z7UsfH4=1y5`eo*!gmPK9Ite-(B`?%Cxe#)iYYeGcK`O96n~X+G$(%2p%*F5(Y;xpL zolfw8Ov1&T2DqFf59eZGV3#YGb1}$()LglY(ah^y`6woOkmkuFcx(|xS`gbBY7X|T z;i@309f_TWS>EKKV<5xFE?@4!#i#~m<)d{mt7zd7nNQ~~!Z$5Qh*1%NXouW@iyJb~ zS|}HR{V5ynMy>p(QhN2=^V9dUYo6lMFqBwEKzXCXhZp2 zl|En_FXh3&-KcveFmHYp>Hy6ZGJzWF5I#eCywnaZA_I3d%DTTB2gqRr7DZS*4jJ49 zTPf`e=5NqnZ!7BLDkX_bcocF%=A%YJXc8vZFP8R!$$RAb%-kKn2Su$UqOu}=8Nb$L zFJ@yRjh45e5=h#MwPNNKEW!b5@s)cTTi&!69S{>>mbHe8Ag~zeXxI=@jNOSF9FSKm zx8Y*_;c78@l+7u}GE0y^YAq&!EMMg%Xudf4Ls|(AbX;3NWrl_>S3h${z9lGL7yGc0)SlmEfSXTsAm zPd3VVlO*+`?ver=)=0gXZJp)&<(*Sk$cIn|ii{!*t)y;@9jEVz9L~%j$z^gMR@LDj zL;V=v*S%amf;vo!oV`xElKMvM$2(byk(DsWke!4M;0pCAp>xj5g4h7&?Rsety9h`qxq0hl!g&+(LaZf7^5gDyEBwY50aq8Xzj{~qek4wabi81WnYOEg2{*yG%MUB z1NyjpD0P&G-;jaf8q;SnKT(qy`+~UQS7PiYj3Aj7oFs^e3}fqMK1^qft;A8tn7acf zER+pp+cx9E97iUU@Bg)lx;#@lh}kizJApk*cC;W*Icy*o15PL}!-XE&I|k!`OLb;F zTSw3}LhHIk>cQ?F1Z%`@k9(f9=ahUX zqq%Pg*d?N87P1p}wBa;5lNwUv2wvDg)&X_R#t12!&;qluJ!B;bDcMpfGp{wDLF;`* zNTxYb5jT^_S428M3J3Q@X`qL zWv#tE7d5>WWq6&JyD<~dlJoLN#=p0mmxr=TMcaI7HoL1?mye4AbRM^%`wm3RPG<~3 z%-&he4m4C|)gvrG)W9^4AZCb_6U598oSo7@E-vvPr&jI+X_w`OTny5otPSk-+HsJMCX3TCvr|F`BkWd`F_F|7eL8)mC=%;aE01js&Jy|_;EyfPV zi4!}#xYLzoUF(dTTCQPSM+{4NT^`GA$5LC)M%u8BL-;~wMf@=|Uzhh{RsXX@+LMdx zXRyB^@5@-<_!}sI`1us1u+~>zD(%ZkXeyOPFacMGi@Pi^@HR>(adGr*41Tcp!QoP5FuM}#UM}@zIxeOW zogq7anTGlD$e?YMJm~_$B{tR|J|H!qa4y94#v7bYQAL=sdY%Uc{}WKX~0E_y87KLN9Q2)?7HXWYYH!I6*3HxHxP9f>q^ z>=4FCy$++QN!YUCK8_j^kksCnyRjRfKM&&+#F(x35$RZVjgxmo>dC~_uO7&~nMhmw z5EVq49QzR61;(#fkR>_^9M`xKL&PLDG@!Q$Ix02f;-Uxe&6A58HU#v7?l&-|iS8Mu z&92hl9+kSW6G8e1oaUI(GV2%)V5}W(s~nSx*`ETMk4e3_pHP}@3oc=BbVEc7j#^yW zL3WG0)9W@LmrB`rs-`!N4czg>xvNiD6!$i=-G3w>$;IEUApK@!U+Nf1YwHu%n^`U- zKgLO&jJJx%IE7;|=ol+;M~B&g6`nxTL9O8ra3}B=8D_sBme8J)xiOa@oFi_-l@rol zOu+y1i9CXxTiUHr^{Yu@{z)7Q=%#TcggwM8y2VvU!lgDWe}=|(is-Vc3TGE)^Cn+} zBX0#J%AaE*R7<So3{QpGJ(7ix;$8V<5#UviU0&g>S`dEW1$K`Hw`BJW@ZwEVE@Qe{ZB#^RGt! zN)STZ>tBs*i~Lo%AnI4)+a~@h9BG|}e|_|;aHMq>j;OQn>?gkpN7}y^9{u!J;lC1u zNzIz-ie^m>+4Y_-QS%qYESx&OpYzn2Q==x$lDI@pc9|3x7dx%UOZR5)fX(bnT*@r)SH)hF*f?mFZtcMn_xK^w8$KZ@kRGGJ_e~EBw%=8@%>QH%{N?n9cR@X$$j>olCf|gO#*yX3m}x zJ!eMDq)y0&+f(n2`qx1}#gSWrF=`Oxjpxs9tosU?O{P5+ z(uaa9WxeMav8Bcr3oA^|O!R*uNzA4=N=nYw87&us6#Is2gexoVkJ1QIQG9wKP>kvE z-};zatGGHyIEKgJBw70l@zKVo8$LSt=qjxJ_4;l6Uo<{&h3)fyXbToU)Z6gCWcZ)E z$f8;A9QEQ;%58Ynthbf-3K5<=<3f<8mA>s{j}C1Q&Z`}_Pt=wey}2|VnA9iRHj^Kj zKJWMu687-=OYXS`_O&HiiBR97w}r}kkD_Ki(krEiC@_7jmri9ON;>dZ4#v$NgtjY;bV-C2|lLynBmhMA9H*x z@ach%B|bgz>4i^keEQ&Hg^x8peen?~K0LQspC{^bM@hNQo&S2siE~NmIONCr>q7WC zTQx|VfgN{ejjiI&8oSqyoFI&@hgm^$iJg|>dxhOS4Z+6iRMhN{)tlp$wTGr%Z!?63 zKkb)jcjM};HmfS=q8z%tbm#I*6FGQ(d4!xNIo(hG{;*n?usWxF)4;P%oT<{wO^1pN6^ZD-4~{tG}joL;2;vL;+5wscatop5Is;?L(x2f{>BmP zo_^jk!zK51&G(Jd%}N{`q5gw?xPl%{>j@OY9^2J$1#Rg=7cIZ=d~wOU#gcFZUk4iY z*;)TzP;0K)TM5SR-uR6BFDOMQC|Q*+O#yo)ljCmz{vROA1K;%g&!g&41b9 zMirq=I3@~YQTcBa(n9@}F1PpD3`L2f#LrCpVqcJj49q58A5mJ=co zb(=^LoD_Mp=;Q>`!7K_6H|+~){jB)V{TZeGo7S0XUxl^0Me;U>o8lP?f|mb4Z7}FZ zmB@}oAAi_Qqi&Ma>}pYe7Uli4v*!^SZkzRkpc;`gOK*=f?L;*-A~)&=$@QZK>qyY% zBjQ*d0r<<8DYTpxb%VB3qTZdPYXU+thcu4Zkj)sQEba-*Pm4NV-*UwG(-e^?R{n*M zrIS{!EOud2U;jp)lTG`ww2;@76^jzMVk_zzky6SPd$OpNEB0WKnEHjHDY1y9!CYHBO_BVQ;&LGPj>wex0)aj6f1;Z>6aqOaJkZw>dy(%9Tse@cD~?yV zJrL<>KraiizoJ#B@|gouEyYt6K{_hQ6#4u>g9C#m^Nk?*`22Eal?c&J^VacQp8o4w1Hf+$en8A#Q(b84FBb6jGiJA@E7Y&04ME_J#W!C)WpFnD5aa|s+$=pL}x7jy3> zxl?_`POzzmO+V=H70-YfmNs@eVSQJG(e8y)N6f0|;n~yj_AbJ>Yp^(3Vbsf}M;Fi; zDGmmi#Ab+~`^}ZR1U7A}dn(mliGTKTB9u#PT;csl@j!*#$)+nuuqB0`E+`u9l3z92 zMfxfz3W7$9ai<7_Ybu?Lga0@>U#kU2riw$TuL>+rW14uRLOaYRS2uIHc)LPphRwY$ zFfUmgMBOLJ7n8-q6_E>VI@CdLi@3KUGSMbh6;e0Y*ulLVac{xjzvRKgapDs?!v|jc zGfZgGd~)Dq(LSFy9fwFAs_xLeb@pz{nz7=9+FdCqx2?O_3o{sn5R*~!yi&(^2It3e3w?$d0M%C{G{`GTCHyv${!5B5KVaSgAs8L zI?llT7{*cM!f0!rkq7%{m^7r>Ai&R=1uUyU#eCNm1 z>qnlrw_(RkU5iQ6qdo*qjB3r!?%m4fH^JlOm|IUzNig^4Il8uQ=1%pmOEMPN7xp+y zDn2b=EHUb=C>q(i^3e3e2h-bA{JJEc7haqJNAktJbc!qX2(luV-pEawdyS{FN;{8K zx;0QIqpl1o@BIi#b>=$l`cyHSt-`JuoE$b!%tQR?2}mABcJWSee>V5ao#LLI^=yDf0I2C7DGv z#;sefg=p?0RcPCV#&BW6ln~A4C4shIT{llYGreGcr$!2hWD~G|NUNGE38vlcvNK@Z z%fh%_hgvK7M?JSPTwgYG*cvc=8pf9-UI_;Bb-HMEw}55}R(03mb;`u}Eyr|JAHqmgc%gtoNJN znK^ck*n}byA$^Y+f9N4Sa&Zq%>`Zx8Ewq8bJ(*RXKqrl*BQD(5ud~0v>C`fYMvrJ6 z7`9ieVYK$c!x{GbmL*^1JHEQ5k$P3}t2TMi-a;GWZyY$b{oB{&xb1&hn3Ayct9r3% z31bK2AJHZ{8~+H*`nKX@;-tkrIF^D$btWa{5#7V!EpLyetEZ9ESLYVjB^N5=*|M8B zpjj-|*HJS_dg!{z`&|CQT7gHzG0VfG_HM;udn+P=_?C4sbE4y-?cyRLl?1`d=8v*b zd-v+b^fkKfs%^uVL6Tl9Hr7eaZ(8WQBG7PM|G2D$M>aYzHeFpT?!J8a2d91CjP~p_ zym2`6#ke=sdpqTB_$}9NX4GsYfqz`_k&#z+jtSi{-M;su`Q^X((*MQB4sa!bn*W}J zjPya=3cK|RwIkY3w=g2NC8~2a{hirvIdKQgTYY^l`iBO@9<*4Z(?wa89S0p>IGl`s zWI!|XS?mL8lGi!oERHnlH;K55%N{?@a5{xPK{UQ zr2QKoeugI2qex?*>>?8LOU34fpMvCPk7ll}H+0W! zte>#QfTWO)%La?5G=5T0D&`qB%~z}`tty;czQ5fuN>#7ZZ$7E#fN-DK(zyA<`eCKz zjayC9hDOI6J%6LqPyFEE%pd)@hA=TCT)9N4t^aL+PgQs17^PNLnNHB0$pZe-lT81&VwRb4x{w%ZidjXx5y z6zaJ)+ZmTX_8D!a^P$VZFYA{+?3Q=Y>}BOHJGcErRLV1q8m8_?$H{o_CHuvFSoHQ8 zZE7%|HW(E2^w@`%7kev;-qvCo+gsOy!L-VcQ-gEd3IWK^of^S z_VFLnJ3=RM_zW?lnd(YifeE}uqVnZGOAw5d3#Hcys$Lv`til9d_j>Y^Xt*bN9U}ef|$&H}3 zO^%MOmRlmrh*kK#q|J5s5BELtNz~f4yUU91tNG)cib*q;zNCBV{5^;$CwXQcz;gZ` zIxs2Q4~V<#?<@8kVn#BpgAz<)hCI^vkavx#_x3-r-o3dCm*f=3 zA6oR???bX|O#;)_tAAp>HA;)()i2Fx`Xgj$!851u8YWNmL9rnu?m!JQuWt^DyL)Xf zx))f{?Y{kFndO0pwtXkCKK!KvC;dOGL5wve=1Y_Evf4YxUfv8#+HotIkwPC5+lqhH zJ$Yty^o+SNowgb?QvYtK=9HVGxAK-8Q&QPY_;J#RSAo`7w4ost=o40c^Hrjr5zl1i z^Tf-WJEv1)uy{?Idj2r(ntH4K=(dx#ru|oKJfK8kE25vYe=CFah9*BEMEkUrc=sLW zZ0Xm`o6baGOI~9U{&O?}2JJ9Dck;&me&>77vj;{-Ta6*?!(@ZTn=@V2KfZBIyI0#U z)8l$BTfqmPp$Stx?*4FzZp*H=d%DB#Y<^SwbvAP}XT!f$fT*SEsgLWXaltF6zL@{D zZuwm!(hhigSloAcXO+=bA7-h2|HEAG&$!ns&4=8#QbJOcu(5Ds?+=!dRg=kYJcfvWK z(?T3XPqu0b)o7!fU?t0QqYBDJHJH*Ux!M)wgVyySE3AwXR%B`3J>Jm!H58?VxT(Kq z7@GK;-B7;3uD6MjVA5&o$^I=F4wYk0DJy?G`{N_Sk)h7n1}!;!T^N)eqR0JfC&1YB zkT~_sTv9;33Vz$|y)N7qR5ym`QQHc!KIR)kJgICjF3pXZ%n>bd~AVgAM-HtC*>_pdErN|tq(6j z(t`7enbtgI#lw|P-YWU4xRT#fHL_iho!urH+ z4#A}vB0RfGajNi`ptL{BqnQ~ZP%mLpZd05S%puP3%n-e#>?2})?D28H#}OY1K2G>J zD=y%R$2x zK`#e+C@Viv1q*#28Jzqu$Xj9cdQfny_L49DcGQ8&li|DeF5`AQcfiBeD-%Um1=!c6qA0Xr!#~xzTMtg&LlTW(#{>TB}9@oikOqhFBkRPFRmU9r& zr}ni|+-ve#p`m?*o6WbBy3KY8z7aUuch(5bQAp@#X$56Eqq{)CE1xDfb8E0H^RyCK~` z%>v@PtC?lS$y8ti&o^K2_b-%SAm8`7;O}22K|=X(eF%PH)fc*}`>Mbab>9N5s5Is1 z3-?Yuf5mA$I92fp>c36s0l^x+b%J}#5Br@{1RX4zT0Z^7NB3S3+hXMdX;p!ISk%Qg zU;FPLF>%g8$YbRAWBcIoU~lS+A6k6l7#ljVjr{x9Of0uI#|e+_4wnDs*VmV@{24w^ zMtDv5y6i(yj@=di-TrK|y`EZ`L+DkXSg3w#CDCQn_xI18Aa;wD{_hJnG+>GRdl$50O{iLd%N$w+&oIBE_9r06b_jLo$&q&U47q09Kqkei2@5( zOLHirlm&{b2EN1Nw1fWIT2WBfcb3+>eUY5xEI&>YlqZLe14}nlgL$DZp53)k?#r51 zxHvBT-KND=U+qR{>sH0(aO$8XCEOpjZNN@^rJI+t?Bcwh;+spC)nB{X00}#NEg@!u zuNgF745c6~)i*~lTWfh`(+6tx#|>^ON1wWmVVT;B)lA6;2P$yn6tr@6jsF^?6HzAwev$;LM2WD@RslwsCzVo5%@MtSmm!_6I$DjP`n?+uD zsA-hT;~n6zW1KI9Zw#lv`K6B>nlpX9AU@NV2(6#cJ|u6V)~!ax*A3^K?0+yqmuLDG z2@1Q#Ywxs!ew)85ZQs^4>k^aF9eh<4@!%WJ5wvtK{J4NVGO+qi^{ZNq;8bw1jz6Rw^Zjcf(J+w>h-6I@np||rZ)ty9gsxW9t)1&au{ng?fUlFnxCg6pD?|}WG2>L;xhpRJA6GrT*U8& zYFsOsux-bXj>XwO8+XQ^82t)jO3-G42PvB~98j^_H$~8`i*fZ|4ZV0u31xxKqQIf7 z#>~|Nj9G!$FD4LvZZsZ*yP!tx9$VsTq5Vv0^j7VMVf}Baf8iPXc<#p^^f(d9=1D16 zd=)8I28+f2I6ed3(}{yk;p3hVEKbGSA)eeMQ%E4>*JwQZMTUf{q>it}XU zeC80DkLaCuMSZ4;9L*La>uRWORyq7$s?M>gs^2xiaaB&g;Nl)@%a^Gbc5EOA%nlvZ zz#PuHUsVQnd>vuuc7JkQ7uiLyR+cW)o04EM{FT_Pq^M$^ae$@I0-X7|s)HcihVQG$ zqauBkqxMg~S>El|ya*FoIrzgXSI_sEbvSvY>2s1t{1G+B7ni5#43q?GHrCEHS~t?7 zbdw~()V^}#As}qYCRnoFfEhxi2EF#t=eO$VR`g3i(#xGIT|V}hOR1k<^DuD-i~o55+HqP-y@m=fd5icKH+v9VYDQgv^JLA_#sHg@$%G`W*m z2k8-bq~5EP&+oQb+gjHu_WHeW`)vV-*OndJjoI!y$ohA)*fd!0j9+MG|J~)mZ`X}} z^8&NkFAEeK@Uj-H{S>u%&&CVm?fQIwdEgRLjcPq;5vk}aVkU;JR5rMLtgIyMvZYT| zr0$m{OS8no49`(Kx}6Yc0=K71yLOXZI9)yCqp1Sd^s=f>8VrdI;%g1^ljOHj8SMZvzpUcFFP||((tn_` za_O!EOf4@6@a6!Su0iqqtM?Nh+c&MyUb?Wn_<-|%CN$6zipL+)BE(!)jO z%l(SVX;>L3B0u9%Q0C6p<+iXSU+zX^61vLp8y=(#oEGZIO+rdM0ZmA$nHFkm_l2q3 zjSw`FYh&YU9|kX|S@L|?$3w%mDI-ZQAi?*7vuW6rmxsgdH_t=wI)FcbdkUrG>Eicp z%_wERn@r3-kD$d(=E5aiY}{Yw%56X}a7L&T_Z5N^LP@|}+Bs=| zzVbZ^+ONBa6-(tNNfC+_4nw+RD9$-qhN}wpbO^Px3QQ(ii*)DSDcs(`+?A!6;cmHN zK$5%0P=&jOU-Iz({l+Xag>AUsJ{#)88C>ZymnD56h`B83JweQ6N#D;@lFO2!CymyD#9Wv36A>;3|NXiomb8__MOn-hN*4(S zbA?g^LCh6OX9!}hP`cTfUrOB~h`B=P9HPHnp>&=h{qqW?3nUYBh0 zLWwDbxk8CS%oR#l3VVgp4Ft>;N(ivr|F}X4TY*0xkSmn1dh8WSjR=@4l!ySlLJ5C@ zCrmk6e#KM`B89~bQxy(`=J*9tE#!S?j-LvL+CZ2}bNw87_fC>xu4zGQN=Se8N6cG2 zMdnpcmF_Ss&rgrKh(wr_=eL)7dIC}OrjSLDobMMv?W)4p2l;+`yVo7$?HKt^Zm@0m z^U+r0YCA45Jy~;4jVyQXR6>mg-%v5&+2G}RilayT)Kt|t^cK7)ZwmyS5?d&%MKb4+ z@GO#{(@(|F%3-|&j7|RcBYcXre1CfmIF9%CfOpRRX3$l`zuUjPI*j)pz$RSO@CS{h zQ!?*4+l%LJsh*%%+Qt92UC(R(b?_?rgTUM0IKy+Qs$#3VzcHr^hr2Ff4qn!0JI^%& z(tL&HaMQzo7Drj(Gr<3#Q1JJF0?bYQ?a?fc;RQ?3WvYLg&XhA5)_?Yh*geRx+@V(WTw4=KDVyqVsq_59E$`|xDm&W~ zwhr4gf2iM+FZe?N$Hl+TaDo~oYeu8jJ{Dt9Y9VQ!z2Mn^`bk$* zE$_uHIsIrOl1|MuET67xUg-T=W1q&|+j!ke^xU|ZxpBVJ=0r`5i=MMk=?o+s)9`?D z7k@*el*8`dI-WIbFM6}}t@5Rc08&}}D)R0c0eeDJ(9d5xj3u^_nM0}DSLl^7Ym-Z< z`MvN_5dq{xp=X9>pe>p@XVvko!p)`D;|@P0+v-{8$zfTgm+Phq zFYmT#E*NXM=-kwU&|@B*L!G^pcOK5nqrG{%FXo+Zl;E_K^Uh9Br#R>FvJ9^!vr-?Q ziT`p>`y)vOm-%!rib3J?=}0OQZk>m7^XX9P$>S^Mz+?eEjC%Dg^BhcHK;wt&aQZwP zTR@NH5!5JoqXprIMfye!4R>RA9cmi)By0WsPuE-Cv8h|N@brQAP);`pUr1~7_FaFC zYl0o>c(Q~tf=vr)0o7iWcMggc($jdav5ZE^pL}Sl7MXzaB3jT%dM?CmC`unDA&GiJ zYO-JvE$6MvDn|a-8W20#w3|WNoCAB^nhrEwdb)E;fMQ5*!q+HiFoT5Gln$6K{*~2X zG5-GWmIw)7OgmGp1Z`bR4`gZg7t{7E5-g$ZSTtw}9j*R$FB!mJg!mP=_k@wUP``x6 zFY1s8ua=Gab)r$;Z(!WUS1u(E)q-Rt&BZwO2ku6=&;>A(= zXg!_HfZEyuEpe*)aC#|fizV*UfV_H`%umU+cb6pnVZ(G9U95bjyVkh%fAw+26O*%j0v94_XENzI7GwlPO z3BO5ewTQ@Guoy`c;eylz+Ji0mY69Jlw~{IOt0tIzqb$H~1?FT)1wv@h!XBFZFVaf^ zq<*7}VJniTRYX|n3fi%gKf5ag&oi|I^_9O8%~sM99${;geAI;2n<6uqkBOb6iY}1% zo$3XLkfhFXC1|0&2sfx2!Hbos9;SpJE9pL+CA6AAyHKnTzN@f=BvSn7RX6~dPC2=X zc4X0qRX7w^Y{i*t*lOCBs@nGS7HnKi_n~fNAUd%c&F?xv&sO8`WKx|IX`1RFmc2TW zj#V$MI)pXesLsiRa(hc%&`rX+5F&_@Xa^RBCt;R#X`%`bY1hvXQ6n|`8Y}A!jiB1--GoU96d?Lj-Q9|Yf#8n zQiEiIm_c5FNS)9cC9gtY!NJLtc_jtyg~=elKsOACTA0%n0@%KSf+QoJgfbyoB$hOAp|A(-C+KL?aCo2?@HV(F5(+lD2E2 z*zBsDlc72?>(}S*SXV_Muh~ zVQT59Hda^)5Aq^Z@T0ACTF5176VuUuFPf560PA9#27$=0X$ zTmEl{&f19U#zSX4Vem%Gy`ETp>_%FwPEezyN{tMbBxPNw+K66@3=G`zQbA%($Ov6% zBSe-HiCdxOT^Ksx3^WdwxK#zbUz_T|@C@`0Y~~~t2#*pQz$!vwxeoInEed}@J^U}O zG!>{Jq-RKCEA=IV?#T|!9-HXVR3d5IvQ4xXkDx}$S=_2wf_?a86J}r%KX0O=s3gJ` zv6&vh&f&*5(<51$P9~;4#_orunK%aWPaZu7`!Z=~9?5}s8Fqu^Q}LLf3ZS^PM2I2K z%c-39Q|IvKGI|bgJ;S!%04xer3_-kwRFkmzY(bM`Q0x}EH?@w?EY^$l3|bd$j9HcM z;kiWb=DRK3ZrYL*yzk8vg4UzwYeoU;Ea{#ejxu3APY(oJQIRaMxhs?*pHcUr{0s-- zu8UheatG8N%^a{(i15Lz1~WP zv6}GNMh|Cc+qdC>Nh5q+x6{779jFPs*}@F$%Tb;4w`0RnN#gqLXi_Nz9p6q{@d&L^ zavgsF-6A$L7(KK@q4GX?Tl84nea_GJh&C{(r&J(+i`c+GV}+S>RxQ_8S7<(NQh(n~ zY-*JXG;G0vGC2#I&XO*ukaqlGsRNs`(6C5pXoAGB+D%3pzy%~ygcBZS;R!PaX=eXI zp4m8`uvuC(P+K;pur3>G&vbGQVPo1+myKr5wBt)QZ7XkIGxY zC5KMZJcD6lqvS6gPNw(VxT(;-hwcVVIVg;YC*SALUQ_`SG3MgDv6G;gxfn4N60|iJ zCoBeC%|(-C&|kS|V+^v&qa&z|WK5^z(Re8pK^ODr5UPd5m}dDnaXca@G@tgP3Wx{H zB{T+I&&LQfo5Y5SLikV0h`$DV|q7PR|h9|^{KP{l~!c~I0@1&_)W|6WZF{ z*f9(`xtsQ+_988_h;~vZpiz<{#M-B8T6TkwB3h3}_!=cE%^>6h*4}nEEzk*U_Z@Zg zL#Y4IIhE$FY1f}HqIMTyFA@pRScKYPkoF!NJ%17>x@r&Y!lJ4@*zd0h?fD+sR-K?m z$=jYJro|hO!C^10N4+7*{(I2`7?iXZN7rjYJF*wsz|h|AMU!G^#>J=|289%3G|r%v z#aJAJP8Op@GsXQ`jICy9-AmAgzhnx&W6Q}Wk#RSeQ9^g82oW}vV5pcy;@i3sY*RKt zKTA-d46-dng)(STDOQ2uOE1MLFz9?K-AA|`b6`La!r2-S^~WC(Q=)*AM|aaX(<^q; z@g8#~>88BD@>cU~cftm}_t93`Y=$R>oNb{|5fkI4MbBn)D1O|#u{=X%<#nT&Z;=yv zq%uV$?ZaZXlDvoZVX@l?`g0#Wi2CsWk^O$Ofu96T+K*aeP{w|&GJ`Jd#{tGvUR;LS zWzdW=)JqPLl2?XDFd6i)j1JNKv4sS2KZTsFK2sy&@LLC3PiN7dlb_#QQC@Ls=HtaB z+}m|Okq4%f;{<$^M4bD|QBB7Px?hf#dWuAxst3?g8RT{VyS|3dA`YNp8MN^L4%_1- zNAm&fTLu{%r2W+^8N0inj{Vbq68k6qAodR-Lcu{gM!kp$SI_b>Io2?w8`vMhL4L6wJ4D-3EoM7vSNB-QpXM#5{zl)mIJ8Z3j39H#qrO<;o8CJRm$ zwi_HOX(LcOg5#6W!T1PmW{}?TZq|iOWBu%ojQ;LB|G5{NV}&_{9HA{mi@&VPICJ&j ztQIMWfkog7d6X2 z&Td9TOx%Q7QTW|zL|g>^#{&UlANRWYameCb$A@kHzVJNB1F8yCcQw(8lLEWAhM*aQ z_LTUht%Sy)dO~ATe;`erAiRly{txXwP^5YPj{!P$co1v`+Q!dYPA2@a%}z z_A&3+Ks@3YTFWXDh_5|{cD|aRs$fBMRJHNcSX~ zIfDXD;y`B5qLbJ_29=#e7j~BLJvxalj6tSV^jPXVp)IMRoz)4#-*;7TaqPXQuOVnn z4^e?TRX8^>CAC)JHU+bsaI8l8e=<#|M)?fdTun!)Ut}a~(&rRI4Xt7drZqTr2obz$ z=vma2b^lLg=N?vLwgzyUEwxJ*?QWVRrDMw}qmY!!C5`ziUm}#TquhpSXfm3p3_|YI zVx$Y@mLiwFnwd)Nbk|kwjVOeY7}rx1I`4XSX6B^FJm-(~JnysCx7K>s?fu@h_WJD) z_6O;CfH_El1BB`-4gOaq=iXNjzqr4GrnKdOMJ=GKSSKHPhDtKaJv@?|4|m(t$_9+7 zs_mC_fw%NVm}v7}DefU2D*T#a{nycmxaerx8D9bI9+~A$x|AJX8wg2vIb*1J3nMEONPsnrxb1at zl;hB6fAue39C;3pkoDK0IvPo$t}|8|H&NdcM!ci5*9Oq*uO#m{qeULlr)V1Kybd-2 zrO_2I(@^rQU^XcpgZ+-oQmRebByinXrIHp)w?M-y;W*_k7TYxj-cRWr{WVEiC3FLg zB-NGBuPE`Vpx05dse(~%q^ZlRV3bihRs{zUw`p8q6&QsEDs|AfJ5(~NhB%bwRKv() zYD6`38cLbfpfjenR)fx1hj9%&hb6N$@El6pYrsc9iK_v#gwpdGW{Kb))FHF17)kBq zD%f%a)Pnjnk{qaogC-oAmRgv&C>h*Db6cT9H z$JfDY7^Q|fD5aS`r%?~?2TE@Bpy~q}x3Qki11epvhe`jCN{#g};ZV|)f|G$c?4+>7 zPzsbXV+FTy8jwMtzJ{r*kmN`~{RXq$SC@eViB^YOmeu-%Y{-Yxzd8%Cdzvtd@TUQs#&=Z%(JJ{Pn2UgGLE z=)mr+Qh^u2pKO?phMu#7XSj8#c1VL&@gVIEsu%p=O?ZhG#(LLu*IQfK<#hRG`oH>p zk?5Vgh*^K(VHuG>*k8(iK4iS_?3~xkPPy)ghxO)4*sA z>WM>8Y{cI{v4gK1`y~l;re?)kADS>X=qfE4PV~v81{g^!7dbJSUCxPh9jkHwIZ*BW z^Je?aXKb5RUN|*byYk0A&)&OGGdXGZx+jpXEXxcnt`K-Hd>{yaGroCeX!f|t_h+S8X#Ilc(BTepR&4umy&#LAqmx3@x<_RO2bEyS$cm*H ztut409Of97HU4mD4gAxW%4digwHrfXWTRkhCBWqezUUT}u``^5uET7+_<>z3lThNt= zetizM!uIqDTVV=?t#pj8G?}dOjuuNVT{G-j^6rtm?nh*BiiPectQDPOxOwA#JgIbQzJ8{53Qja+tu#k^1y>Xs2^)Ndy2Y+kbH+|U*6KUQC|VQx;y>22J+-#97iZPCo=+gPvic^S2}F~@Rn`p&Yv=tOx@e!Z}&!n#Ab+XCDV z`o%nKy?pJLPHbJ-IiMb~n-QWC-zeDc^u6}ssjXd%EH2*+>!1*o@Tf|-TIW!^@m~)- z*&3pIqHsI4kNOW8vrn)WTv8OE(&>%8^ekUF8s&b`Vd%oOe4eGLY=ihhOP73J?mfe! z`;(8zlVjMyKjMmJ`n};=r*V92l;jb-Jy1fr$<;41!h>tsv#i`-cfztIiqt~MEL+zSCHs zaix{M6jq`*Oz-iA?n^I56nbmfp8kCc_!`o#00;Q{`}3}v19GFVgj;G zAq5xrO%U+z2Wtx|H&1&uR^Ey(r@mOH*E?pmOjOGpvc6WpOcc(#iWO7VY4pcd{4eWt zbxzxP(VKm5Z;iJTC!J0mhqXRw11>KnE8R1t{iaKCRGH!lCA$a-HN#&#WkyVCbY4{a zG*9&X7Kck3h65{`$OE#``o^{ zNz#^lYcxt|ldyI`qx5mT=BIR1!fVgOz-LXbHr3v0{O0K)-FK)trJH6bB>SElnVTxv zEuHdiidK14-Z}u@+~)Ni0^44DDhdxNxCeuIjAFQ>R~lPo00fbu+-6 zsJXZ;h*WiP<5XQ{C#Um5$(LU2bh2+2J1|;}RiWQMRpGR{XGa^T2WKj`7TOHT-hI|1 zc~@e#BQeZibjeSnOw413vsUDSm{sGZ8L%t+4{ekgCbXnw-~C_J$%!-(YM` z0!OnGP#rC*j(YDi1L8Pt6#T`{x2!pru!em(OpqM?0gf0p4}mSE#(xxsk%RhOe9EWY3&B!EI;N$J!iI?4O8a7hU_HmFuRohmP)o+7H*vH5q6z& ze@_$cg{zN48rROcYcz@4O8W8IO8#*$d9DO*!_MH;kBlf+=9R{1jdCF=qj(`1_H)Yi z{?m2Xb&}6rf~`F2vB&rS{HiPcyeqfD&t%3hL$&RaMLADP!;c1aS2dp@+VPpx^lgiy zR~LD0^~C6`f(KXS?y^Xk=-Z2&BmIXg;QWUyj8TmgThD{w31L2j1rQcO@PgnCVG)FH RAS{L;hTy}At(Po2^)Ct5{7iC<1Fh9E zS*o)-U#2=dD(H_xGwbQFpYEWxsU}t#a#g+O1uJUr{X~&gU!%^~a#c;d<(?GR@4AQ^ zlUi15yh3HE}kAIuD!v7lMKYRAibpLdlUG3Uz z(7n@k!)p)cNs&S#5sCO~G$JbW=LSktu_r3-XDhqE=U!_gao^$GYwJc;{QUG^a7T^R za)T^WVIEa|i8&?^H7=^@lHU=mH%P6&^kFr-sSAdW7&W)a^PQ$YyYwHFKc5VPX*WwrwYE`TH|@6Td$-P~ zaVH{t?bpcqth#O!#F6pI%qJxoE42SMVuHui2cal-*W#agVpxUY4b2IdS@`M&`9uODP@a zUr2+21K78bn@3&V60P1Cdwg-dGA6c;r|3lg;;R|`~oIZteqhX9a16E#Nctz(ZAu3)(M`dg2PM1)-%|0#$QO^6ChoMp+rRF2>Z}V9?IxUP5 zREab`yrN6^AJsTfx#JlBtD|nVwcglEMLQpkyhON~6xV)Py`7cy^44+t8tBABr5bG1VvEL#A4_Ci|U!i##up$4Be3)SwTB z3RPse*Bq1P4=J*CN@`Hq@oMsBuA1`(vM&nO5 $gLpPSjJ0qJ>+(lS%Jz#8*FGI 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 qx#@ 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 delta 37123 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�?M{3-V5 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 diff --git a/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock b/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock index 862107c81483d731112bdcdc37ccac6c3c8eb0e1..6d426bec7b4505ca3a4b67963b71d7c10b7a2c36 100644 GIT binary patch literal 17 VcmZSH&R@;(a=)o00~jp$2LLPy1mOSx literal 17 VcmZSH&R@;(a=)o00~oa00RSr#1O@;A diff --git a/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin b/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin index 74725ed7ea6ce7388f0094a855a59d38add2d3b5..d6a13893dbcd18c7213b606154797ccd11289b5d 100644 GIT binary patch delta 3239 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 X@qCVt><-1(N;!s6slVawAHMxBp8#s1 delta 685 zcmW-dTS${(7{~d4U$Tm_10BAJnzNKLY_o%TTru37M5Pzn0gP#A1!{PaZXKpG#RH+! zhj_`0?kW=m^(Ehs%6ZY!JVX|@vP?QCD3k<+UMRhK^YDL;{Ql3Y5#5(=UFTs94Rl0{ zBe&K@W_=qi>m9r-WC~OgYT~1zno7&Ny!>H=4)oFx$AcrCD&3Fra$EF_!gKd^fk*FO z(DC>~UX@SA*D2&qw9{l_I;AG*sU*oqwqzd#BbDHmHv{02Z=Wjk=Uo%O_kI!7J|5t$AJ&5R297DT zWulq)PRQ)jXRk_CQyTA{GN=-jWtCwMdr*dc<}R01|5k$8DRD=gNN2GwWUxk;1b^Xz zkuQE9%RnO=j+H~(4&WmTGD>yQhyY79p-n8Akf~z@32=(P3D~5F&}6t&(P2iPDyl8; ztUe_m{Wd8c%Zw>uKy&L`@d5Bxqijp>w?m$*}d3h&^9n> LC|FdqVAA#jNpi4+cl8Y(5ejq(9bxuO{eRQG$#_-8xw-MM@2x##ygzjMwl*&KDS zD5^fY64ITkD|d|~^V+ipwtP}DLim|mikt%u4>$OR7Twp4cP>0(Ood=f8VhY|Qu0TA z?VrO>Wyg8w6$qdq%V}-RFHbi~*5+z7&ww5vC&FXuI!8{Btf&6Qhau3SgZ(%>51L{i z5gWHdj3*g)YShilk0WHSV0=;yrD}LcZ`k#>vFHHwFNIN909>Jt`1pHL*W4i)<`VYn zxncs=qDmhQD}5AYiLexdvlU*1G`9ccKl`2x-CTn6H!7O-B%o_8hFXFHI~4vr zXR+cUo8rUWpukfTl%OJsO-GmC+YutW72~&4l;Q4>ggx8Ljib@kr1=Q&?s-qy`75KjCYG<}NpM-= z%|(f;Wh4XY;(4a#ob0f}S2Pb~>w4sp_+)oRlh#M+#-lTX_g)CE;<>MRtD4L{9#DUw z?}F@`j(5J}=j(`b@BFYk$$65sMT=uj^9K#AhEF^B9o~?PTOaVvgnY5{QAMP2iG24c zzWgtL&;*4DCe>gpgyQg9szN1+>|X%kBW}xH;kY(MrSO6Z+_hfy`*W}Y*L|j%<43l= zloZoGdA#J+?8Mr`s;dA2)YhasTa;d}!t{Fea5<}FYNW<&BsmTHe&!3RWcMF2D^WA3 zXO%2W(Xda;J{=aO=qJsBH}C+}$E(R}X%jMZvyVtOT70nYOZ`Ppgxzlaq|r-%m%}iJ zS_?E=%QxUHg)Rb0s}^q-G}k~3#+=i)8A#`h-bZ_<^vR%usJ*7wo1w>Hon)pddB!C| zIql_Pn&{G#vB~UuGPT*Y`9i6UKs#I-JF|_ZabrP)<(%8H%MgZrSKYi6goGT@T}!W) zxxI_rO}B1uZj8Cw>Q3V_bj>v7D`FR#BY|VBaF-KfKqS_<8_xTZEj0m4iwY0Px8rF> zkl`36w7NBz(bBE`TrJQVN2@xN`65B7$!Od@ipbUvZGPq#IJuWu^7SC_@1+IB z+99Xqviw(oEwxB68Z%IQE0a$rbQkGYAo10*IJ&l^Gyu|_<$!MI&d zdggvV!dTuVXI_D!+l>eG#hy4!gDi5Jl;gn5RyA<;J z5#yar;D~s;1{_w;k=U_dUXo94V|Ebd z4V-tI!x}x3W+$1`MZqK~us%z>6lk1D+a(mJOWLv8*r+Rr)l1y5Y#L}mxYi~Jw_5C4 zoEB&b`3Fq6GQjNZX$(r8b!M-g zx|~Xz0Gf~46V186dc`6>k-|)6iU%SO#;6rp+7axfJgVKvT>N#d@`EaBAnFpA!H8BZ zZWSBonQ(%cvIv>B}nfI%RadduGXHL4@5>xTT5_5(b0vy(RZ1yvBe#p|a2=D#-N@+&e_BX|Uolm9a delta 1433 zcma)6ZA?>F80J0gz3siX?QKCuVJdAP7{QGCxhb22X{Ew4`A`gOE@c7S0wn0N1#}?l z7GN;JU^&i^fL$ViIn%D_Yg{y777SZrV96ZB8Q{lQf?2GNY=Fb zd7t-r@0U&4?WeN?HQi7VI?{bMHk9zSY!WU;LE;Vi{zG|tDCd@?9A3cUBp5Z|jx<;> zV9sWk27GNR+>nLRDCtT%Ej(>mq-7slYB4nnT0KyR*IHn&9pn7)sX;#(B`4Auzp{i) z1F%p8vDgUYq>S+rvI)k)7|r`w`pcI!I{;%eTA?eH`eIlRea}!?z)1TT6OUP zNqmeSOelu{kDb+J`+(r>6g`M|e}jHUG-Tm;v#nZes&wnI(k+N03vo18xF}#+zQ90d z6bt#$ECg-LmJeX4Qb@>w9K3r~a2n8XQ+P?ngLeeK8Gy#QO;_>6kAjc@#rVl1VOYht z{}%jKc#pokPI(1Wtm3^~*n!J$iYN8h)olSjSBU=(%GWK~D@*))B09Eo0 z7}KMCX9s7{8CGdtrTixbg8Ey8Hr7H3I)2qVpmTbvie{F2yrv9uD z8;l2?nKtS@ZaKir{Iq7PRKhl%&fdZj+ToWP(0WOB03BN;HL&~jG%pE^=p&}LCgD|l za^DoM!=x$GWCB^U7^nMbn_C2nwGTZ`q0 zLX~|GhZ}sBO#;*fo#$gX=ey`wpYHnz_6Juiv!`G!e!Ec}jiIgw20Pw#t4kux1f8x} z94l2*+aUp;hSkS9TwF~YfXRQTR)tQkBc8roJHllmYIbVV5+gZJ6C4uay_((^P`#Y1S>zK*h54wgfwNW!Z`WD?YPcdQOY1 zxoW-Oq_%NV{k)dJNPiqQWsV;;;%J^tnCSF+w$U&ctEg*>us z={2AjsFn%{XCE7%mo1$zDD*Yk`bG9<(wEwZ-4=8%#GQ2+`8XxwSh-Y2(3@?3 ML&xbBb<8jBAI): List { + return chats.sortedWith(compareByDescending { + it.name.equals("Избранное", ignoreCase = true) || it.name.equals("Saved Messages", ignoreCase = true) + }.thenByDescending { it.lastMessage?.createdAt }) + } + private fun observeSignalREvents() { signalrClient.events .onEach { event -> @@ -94,9 +100,9 @@ class ChatListViewModel @Inject constructor( unreadCount = chat.unreadCount + 1 ) } else chat - }.sortedByDescending { it.lastMessage?.createdAt } + } - currentState.copy(chats = updatedChats) + currentState.copy(chats = sortChats(updatedChats)) } } } diff --git a/client-mobile/chats/presentation/components/ChatItem.kt b/client-mobile/chats/presentation/components/ChatItem.kt index e2ef497..1bfdaee 100644 --- a/client-mobile/chats/presentation/components/ChatItem.kt +++ b/client-mobile/chats/presentation/components/ChatItem.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -18,8 +19,9 @@ import androidx.compose.ui.unit.sp import chats.domain.model.Chat import androidx.compose.foundation.shape.RoundedCornerShape -import coil.compose.AsyncImage -import androidx.compose.ui.layout.ContentScale +import core.presentation.components.AppAvatar +import chats.domain.model.MediaType +import androidx.compose.runtime.remember @Composable fun ChatItem( @@ -33,28 +35,11 @@ fun ChatItem( .padding(12.dp), verticalAlignment = Alignment.CenterVertically ) { - // Аватар (мягкий квадрат) - Box( - modifier = Modifier - .size(50.dp) - .clip(RoundedCornerShape(12.dp)) - .background(MaterialTheme.colorScheme.primaryContainer), - contentAlignment = Alignment.Center - ) { - if (chat.avatar != null) { - AsyncImage( - model = chat.avatar, - contentDescription = null, - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) - } else { - Text( - text = chat.name.take(1).uppercase(), - style = MaterialTheme.typography.titleMedium - ) - } - } + AppAvatar( + url = chat.avatar, + name = chat.name, + size = 50.dp + ) Spacer(modifier = Modifier.width(12.dp)) @@ -70,8 +55,15 @@ fun ChatItem( overflow = TextOverflow.Ellipsis ) chat.lastMessage?.let { + val formattedTime = remember(it.createdAt) { + try { + it.createdAt.substringAfter('T').take(5) + } catch (e: Exception) { + "" + } + } Text( - text = it.createdAt.takeLast(5), // Упрощенный формат времени + text = formattedTime, style = MaterialTheme.typography.labelSmall, color = Color.Gray ) @@ -82,8 +74,27 @@ fun ChatItem( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween ) { + val previewText = remember(chat.lastMessage) { + val msg = chat.lastMessage + if (msg == null) return@remember "No messages yet" + + if (!msg.content.isNullOrBlank()) { + msg.content + } else if (msg.mediaType == MediaType.AUDIO) { + "Голосовое сообщение" + } else if (msg.media.isNotEmpty()) { + when (msg.mediaType) { + MediaType.IMAGE -> "Фото" + MediaType.VIDEO -> "Видео" + MediaType.FILE -> "Файл" + else -> "Медиа" + } + } else { + "Сообщение" + } + } Text( - text = chat.lastMessage?.content ?: "No messages yet", + text = previewText, style = MaterialTheme.typography.bodyMedium, color = Color.Gray, maxLines = 1, diff --git a/client-mobile/chats/presentation/components/MessageBubble.kt b/client-mobile/chats/presentation/components/MessageBubble.kt index d65ac94..2c5c1a5 100644 --- a/client-mobile/chats/presentation/components/MessageBubble.kt +++ b/client-mobile/chats/presentation/components/MessageBubble.kt @@ -35,6 +35,9 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.material3.Icon import androidx.compose.ui.text.style.TextOverflow import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.filled.PlayArrow +import androidx.compose.material.icons.filled.VolumeOff +import core.presentation.components.AppMediaLightbox @OptIn(androidx.compose.foundation.ExperimentalFoundationApi::class) @Composable @@ -46,11 +49,12 @@ fun MessageBubble( ) { val context = LocalContext.current var showReactionPicker by remember { mutableStateOf(false) } + var lightboxMedia by remember { mutableStateOf?>(null) } val backgroundColor = if (isCurrentUser) { - Color(0xFF3390EC) // Telegram Blue + Color(0xFF3096E5) // Updated Blue } else { - Color(0xFF2B2B2B) // Dark Grey + Color(0xFF212121) // Updated Dark Grey } val contentColor = Color.White @@ -119,13 +123,14 @@ fun MessageBubble( modifier = Modifier .fillMaxHeight() .width(2.dp) - .background(if (isCurrentUser) Color.White else Color(0xFF3390EC)) + .background(if (isCurrentUser) Color.White else Color(0xFF3096E5)) ) Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) { + val accentColor = if (isCurrentUser) Color.White else Color(0xFF3096E5) Text( text = reply.senderName, style = MaterialTheme.typography.labelMedium, - color = if (isCurrentUser) Color.White else Color(0xFF3390EC), + color = accentColor, maxLines = 1, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold ) @@ -153,22 +158,41 @@ fun MessageBubble( .fillMaxWidth() .clip(RoundedCornerShape(12.dp)) .clickable { - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(mediaUrl)) - context.startActivity(intent) + lightboxMedia = mediaUrl to "image" }, contentScale = ContentScale.FillWidth ) } MediaType.VIDEO -> { - AppVideoPlayer( - url = mediaUrl, + Box( modifier = Modifier .fillMaxWidth() .height(200.dp) - .clip(RoundedCornerShape(12.dp)), - useController = true, - autoPlay = false - ) + .clip(RoundedCornerShape(12.dp)) + .background(Color.Black) + .clickable { + lightboxMedia = mediaUrl to "video" + }, + contentAlignment = Alignment.Center + ) { + AppVideoPlayer( + url = mediaUrl, + modifier = Modifier.fillMaxSize(), + useController = false, + autoPlay = true, + isMuted = true + ) + // Volume Off icon in top right + Icon( + imageVector = Icons.Default.VolumeOff, + contentDescription = null, + tint = Color.White.copy(alpha = 0.7f), + modifier = Modifier + .align(Alignment.TopEnd) + .padding(8.dp) + .size(20.dp) + ) + } } MediaType.AUDIO -> { AppAudioPlayer( @@ -186,6 +210,7 @@ fun MessageBubble( // Photo Grid for multiple images PhotoGrid( urls = message.media, + onMediaClick = { lightboxMedia = it to "image" }, modifier = Modifier .fillMaxWidth() .height(300.dp) @@ -218,11 +243,20 @@ fun MessageBubble( modifier = Modifier.padding(end = 4.dp) ) } + val formattedTime = remember(message.createdAt) { + try { + // Handle ISO 8601 strings like 2024-05-14T10:49:02.12Z + val timePart = message.createdAt.substringAfter('T').take(5) + if (timePart.contains(':')) timePart else "00:00" + } catch (e: Exception) { + "00:00" + } + } Text( - text = message.createdAt.takeLast(5), + text = formattedTime, style = MaterialTheme.typography.labelSmall, color = contentColor.copy(alpha = 0.6f), - fontSize = 10.sp + fontSize = 11.sp ) if (isCurrentUser) { Spacer(modifier = Modifier.width(2.dp)) @@ -236,6 +270,14 @@ fun MessageBubble( } } } + + lightboxMedia?.let { (url, type) -> + AppMediaLightbox( + url = url, + type = type, + onClose = { lightboxMedia = null } + ) + } } @Composable @@ -331,7 +373,7 @@ fun FileItem(mediaUrl: String, isCurrentUser: Boolean, contentColor: Color) { } @Composable -fun PhotoGrid(urls: List, modifier: Modifier = Modifier) { +fun PhotoGrid(urls: List, onMediaClick: (String) -> Unit, modifier: Modifier = Modifier) { val items = urls.take(4) Column(modifier = modifier) { val rows = (items.size + 1) / 2 @@ -344,7 +386,8 @@ fun PhotoGrid(urls: List, modifier: Modifier = Modifier) { modifier = Modifier .weight(1f) .fillMaxHeight() - .padding(1.dp), + .padding(1.dp) + .clickable { onMediaClick(items[firstIndex]) }, contentScale = ContentScale.Crop ) if (firstIndex + 1 < items.size) { @@ -354,7 +397,8 @@ fun PhotoGrid(urls: List, modifier: Modifier = Modifier) { modifier = Modifier .weight(1f) .fillMaxHeight() - .padding(1.dp), + .padding(1.dp) + .clickable { onMediaClick(items[firstIndex + 1]) }, contentScale = ContentScale.Crop ) } else if (rows > 1) { diff --git a/client-mobile/core/presentation/components/AppAudioPlayer.kt b/client-mobile/core/presentation/components/AppAudioPlayer.kt index 178274f..6c2f619 100644 --- a/client-mobile/core/presentation/components/AppAudioPlayer.kt +++ b/client-mobile/core/presentation/components/AppAudioPlayer.kt @@ -26,6 +26,10 @@ import kotlinx.coroutines.delay import androidx.compose.material.icons.filled.Download import androidx.compose.material.icons.filled.GraphicEq import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.foundation.gestures.detectTapGestures +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.unit.IntSize @Composable fun AppAudioPlayer( @@ -47,6 +51,7 @@ fun AppAudioPlayer( var currentPosition by remember { mutableLongStateOf(0L) } var duration by remember { mutableLongStateOf(0L) } var playbackSpeed by remember { mutableFloatStateOf(1.0f) } + var layoutSize by remember { mutableStateOf(IntSize.Zero) } val fileName = remember(url) { url.substringAfterLast("/") } @@ -110,7 +115,7 @@ fun AppAudioPlayer( ) { Box( modifier = Modifier - .size(36.dp) + .size(40.dp) .clip(CircleShape) .background(Color.White) .clickable { if (isPlaying) exoPlayer.pause() else exoPlayer.play() }, @@ -119,8 +124,8 @@ fun AppAudioPlayer( Icon( imageVector = if (isPlaying) Icons.Default.Pause else Icons.Default.PlayArrow, contentDescription = null, - tint = Color(0xFF3390EC), - modifier = Modifier.size(24.dp) + tint = Color(0xFF3096E5), + modifier = Modifier.size(28.dp) ) } @@ -129,68 +134,94 @@ fun AppAudioPlayer( .weight(1f) .padding(horizontal = 12.dp) ) { - Slider( - value = if (duration > 0) currentPosition.toFloat() / duration.toFloat() else 0f, - onValueChange = { - val newPos = (it * duration).toLong() - exoPlayer.seekTo(newPos) - currentPosition = newPos - }, - modifier = Modifier.height(16.dp), - colors = SliderDefaults.colors( - thumbColor = Color.White, - activeTrackColor = Color.White, - inactiveTrackColor = Color.White.copy(alpha = 0.3f) - ) - ) + // Waveform / Progress + Box( + modifier = Modifier + .fillMaxWidth() + .height(32.dp) + .onSizeChanged { layoutSize = it } + .pointerInput(duration) { + detectTapGestures { offset -> + if (duration > 0 && layoutSize.width > 0) { + val pct = offset.x / layoutSize.width.toFloat() + val newPos = (pct * duration).toLong() + exoPlayer.seekTo(newPos) + currentPosition = newPos + } + } + }, + contentAlignment = Alignment.CenterStart + ) { + androidx.compose.foundation.Canvas(modifier = Modifier.fillMaxSize()) { + val barCount = 35 + val barSpacing = 2.dp.toPx() + val barWidth = (size.width - (barCount - 1) * barSpacing) / barCount + val progress = if (duration > 0) currentPosition.toFloat() / duration.toFloat() else 0f + + // Fake consistent waveform items + val barHeights = listOf( + 0.4f, 0.6f, 0.3f, 0.8f, 0.5f, 0.9f, 0.4f, 0.7f, 0.5f, 0.8f, + 0.3f, 0.7f, 0.6f, 0.9f, 0.4f, 0.8f, 0.5f, 0.7f, 0.3f, 0.9f, + 0.5f, 0.6f, 0.4f, 0.8f, 0.6f, 0.7f, 0.5f, 0.4f, 0.5f, 0.7f, + 0.4f, 0.3f, 0.5f, 0.6f, 0.4f + ) + + for (i in 0 until barCount) { + val x = i * (barWidth + barSpacing) + val heightPct = barHeights[i % barHeights.size] + val barHeight = size.height * heightPct + val isActive = (i.toFloat() / barCount) <= progress + + drawRoundRect( + color = if (isActive) Color.White else Color.White.copy(alpha = 0.25f), + topLeft = androidx.compose.ui.geometry.Offset(x, (size.height - barHeight) / 2), + size = androidx.compose.ui.geometry.Size(barWidth, barHeight), + cornerRadius = androidx.compose.ui.geometry.CornerRadius(2.dp.toPx()) + ) + } + } + } + Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween ) { Text( - text = formatDuration(currentPosition), - fontSize = 10.sp, + text = "${formatDuration(currentPosition)} / ${formatDuration(duration)}", + fontSize = 11.sp, color = contentColor.copy(alpha = 0.7f) ) - Row(verticalAlignment = Alignment.CenterVertically) { - Text( - text = "3.3 MB", // Mock size - fontSize = 10.sp, - color = contentColor.copy(alpha = 0.7f) - ) - Spacer(modifier = Modifier.width(4.dp)) + if (!isVoiceMessage) { Icon( Icons.Default.Download, contentDescription = null, tint = contentColor.copy(alpha = 0.7f), - modifier = Modifier.size(12.dp) + modifier = Modifier.size(14.dp) ) } } } - if (isVoiceMessage) { - Surface( - onClick = { - playbackSpeed = when (playbackSpeed) { - 1.0f -> 1.5f - 1.5f -> 2.0f - else -> 1.0f - } - exoPlayer.playbackParameters = PlaybackParameters(playbackSpeed) - }, - color = Color.White.copy(alpha = 0.2f), - shape = CircleShape, - modifier = Modifier.size(32.dp) - ) { - Box(contentAlignment = Alignment.Center) { - Text( - text = "${if (playbackSpeed % 1.0f == 0.0f) playbackSpeed.toInt() else playbackSpeed}x", - fontSize = 10.sp, - fontWeight = FontWeight.Bold, - color = Color.White - ) + Surface( + onClick = { + playbackSpeed = when (playbackSpeed) { + 1.0f -> 1.5f + 1.5f -> 2.0f + else -> 1.0f } + exoPlayer.playbackParameters = PlaybackParameters(playbackSpeed) + }, + color = Color.White.copy(alpha = 0.15f), + shape = CircleShape, + modifier = Modifier.size(36.dp) + ) { + Box(contentAlignment = Alignment.Center) { + Text( + text = "${if (playbackSpeed % 1.0f == 0.0f) playbackSpeed.toInt() else playbackSpeed}x", + fontSize = 11.sp, + fontWeight = FontWeight.Black, + color = Color.White + ) } } } diff --git a/client-mobile/core/presentation/components/AppAvatar.kt b/client-mobile/core/presentation/components/AppAvatar.kt index 935c62b..cf8def9 100644 --- a/client-mobile/core/presentation/components/AppAvatar.kt +++ b/client-mobile/core/presentation/components/AppAvatar.kt @@ -10,6 +10,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Bookmark import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -24,22 +26,30 @@ fun AppAvatar( size: Dp = 48.dp, modifier: Modifier = Modifier ) { + val isSavedMessages = remember(name) { + name.equals("Избранное", ignoreCase = true) || name.equals("Saved Messages", ignoreCase = true) + } + val initials = remember(name) { - val words = name.trim().split("\\s+".toRegex()) - if (words.size >= 2) { - (words[0].take(1) + words[1].take(1)).uppercase() - } else if (name.length >= 2) { - name.take(2).uppercase() - } else { - name.take(1).uppercase() + if (isSavedMessages) "" else { + val words = name.trim().split("\\s+".toRegex()) + if (words.size >= 2) { + (words[0].take(1) + words[1].take(1)).uppercase() + } else if (name.length >= 2) { + name.take(2).uppercase() + } else { + name.take(1).uppercase() + } } } + val avatarColor = Color(0xFF4AA6F3) // Premium Telegram Blue (Web) + Box( modifier = modifier .size(size) .clip(SoftSquareShape) - .background(MaterialTheme.colorScheme.primary.copy(alpha = 0.2f)), + .background(avatarColor), contentAlignment = Alignment.Center ) { if (!url.isNullOrBlank()) { @@ -49,10 +59,17 @@ fun AppAvatar( modifier = Modifier.size(size), contentScale = ContentScale.Crop ) + } else if (isSavedMessages) { + Icon( + imageVector = Icons.Default.Bookmark, + contentDescription = null, + tint = Color.White, + modifier = Modifier.size((size.value * 0.5).dp) + ) } else { Text( text = initials, - color = MaterialTheme.colorScheme.primary, + color = Color.White, fontSize = (size.value * 0.4).sp, fontWeight = androidx.compose.ui.text.font.FontWeight.Bold, style = MaterialTheme.typography.titleMedium diff --git a/client-mobile/core/presentation/components/AppMediaLightbox.kt b/client-mobile/core/presentation/components/AppMediaLightbox.kt new file mode 100644 index 0000000..d794fa1 --- /dev/null +++ b/client-mobile/core/presentation/components/AppMediaLightbox.kt @@ -0,0 +1,105 @@ +package core.presentation.components + +import androidx.compose.animation.* +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.detectTransformGestures +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Close +import androidx.compose.material.icons.filled.Download +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties +import coil.compose.AsyncImage + +@Composable +fun AppMediaLightbox( + url: String, + type: String = "image", + onClose: () -> Unit +) { + Dialog( + onDismissRequest = onClose, + properties = DialogProperties( + usePlatformDefaultWidth = false, + decorFitsSystemWindows = false + ) + ) { + var scale by remember { mutableFloatStateOf(1f) } + var offset by remember { mutableStateOf(androidx.compose.ui.geometry.Offset.Zero) } + + Box( + modifier = Modifier + .fillMaxSize() + .background(Color.Black) + .pointerInput(Unit) { + detectTransformGestures { _, pan, zoom, _ -> + scale = (scale * zoom).coerceIn(1f, 5f) + offset += pan + } + } + ) { + if (type == "video") { + AppVideoPlayer( + url = url, + modifier = Modifier.fillMaxSize(), + useController = true, + autoPlay = true + ) + } else { + AsyncImage( + model = url, + contentDescription = null, + modifier = Modifier + .fillMaxSize() + .graphicsLayer( + scaleX = scale, + scaleY = scale, + translationX = offset.x, + translationY = offset.y + ), + contentScale = ContentScale.Fit + ) + } + + // Top Bar + Row( + modifier = Modifier + .fillMaxWidth() + .statusBarsPadding() + .padding(16.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + onClick = onClose, + modifier = Modifier + .clip(CircleShape) + .background(Color.Black.copy(alpha = 0.5f)) + ) { + Icon(Icons.Default.Close, contentDescription = null, tint = Color.White) + } + + IconButton( + onClick = { /* Handle download */ }, + modifier = Modifier + .clip(CircleShape) + .background(Color.Black.copy(alpha = 0.5f)) + ) { + Icon(Icons.Default.Download, contentDescription = null, tint = Color.White) + } + } + } + } +} diff --git a/client-mobile/core/presentation/components/AppVideoPlayer.kt b/client-mobile/core/presentation/components/AppVideoPlayer.kt index 2a4a62e..1948a69 100644 --- a/client-mobile/core/presentation/components/AppVideoPlayer.kt +++ b/client-mobile/core/presentation/components/AppVideoPlayer.kt @@ -20,6 +20,7 @@ fun AppVideoPlayer( modifier: Modifier = Modifier, useController: Boolean = true, autoPlay: Boolean = true, + isMuted: Boolean = false, onVideoFinished: () -> Unit = {} ) { val context = LocalContext.current @@ -28,6 +29,7 @@ fun AppVideoPlayer( ExoPlayer.Builder(context).build().apply { val mediaItem = MediaItem.fromUri(url) setMediaItem(mediaItem) + volume = if (isMuted) 0f else 1f prepare() playWhenReady = autoPlay addListener(object : Player.Listener { @@ -40,6 +42,10 @@ fun AppVideoPlayer( } } + LaunchedEffect(isMuted) { + exoPlayer.volume = if (isMuted) 0f else 1f + } + // Очистка ресурсов при выходе DisposableEffect(Unit) { onDispose { diff --git a/client-mobile/core/presentation/theme/Theme.kt b/client-mobile/core/presentation/theme/Theme.kt index d6664e7..d655276 100644 --- a/client-mobile/core/presentation/theme/Theme.kt +++ b/client-mobile/core/presentation/theme/Theme.kt @@ -25,7 +25,7 @@ private val DarkColors = darkColorScheme( onSurfaceVariant = OnSurfaceVariant ) -val SoftSquareShape = RoundedCornerShape(24.dp) // "Мягкий квадрат" +val SoftSquareShape = RoundedCornerShape(14.dp) // "Мягкий квадрат" как в вэб @Composable fun ForkMessengerTheme(content: @Composable () -> Unit) { diff --git a/client-mobile/gradle/wrapper/gradle-wrapper.jar b/client-mobile/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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

NnX)EH+Nua)3Y(c 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/client-mobile/gradlew.bat b/client-mobile/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/client-mobile/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega