From ca61b80fe52e7097a1a59964f97fa934639d1f6b Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 24 Nov 2021 16:23:10 +0400 Subject: [PATCH] Update audio player icons. --- .../Resources/icons/player/panel_close.png | Bin 0 -> 284 bytes .../Resources/icons/player/panel_close@2x.png | Bin 0 -> 410 bytes .../Resources/icons/player/panel_close@3x.png | Bin 0 -> 593 bytes .../icons/player/player_backward.png | Bin 0 -> 314 bytes .../icons/player/player_backward@2x.png | Bin 0 -> 524 bytes .../icons/player/player_backward@3x.png | Bin 0 -> 736 bytes .../Resources/icons/player/player_close.png | Bin 133 -> 0 bytes .../icons/player/player_close@2x.png | Bin 197 -> 0 bytes .../icons/player/player_close@3x.png | Bin 342 -> 0 bytes .../Resources/icons/player/player_forward.png | Bin 0 -> 297 bytes .../icons/player/player_forward@2x.png | Bin 0 -> 510 bytes .../icons/player/player_forward@3x.png | Bin 0 -> 775 bytes .../icons/player/player_mini_full.png | Bin 0 -> 540 bytes .../icons/player/player_mini_full@2x.png | Bin 0 -> 995 bytes .../icons/player/player_mini_full@3x.png | Bin 0 -> 1506 bytes .../icons/player/player_mini_half.png | Bin 0 -> 412 bytes .../icons/player/player_mini_half@2x.png | Bin 0 -> 665 bytes .../icons/player/player_mini_half@3x.png | Bin 0 -> 951 bytes .../icons/player/player_mini_off.png | Bin 0 -> 306 bytes .../icons/player/player_mini_off@2x.png | Bin 0 -> 450 bytes .../icons/player/player_mini_off@3x.png | Bin 0 -> 647 bytes .../Resources/icons/player/player_next.png | Bin 219 -> 0 bytes .../Resources/icons/player/player_next@2x.png | Bin 319 -> 0 bytes .../Resources/icons/player/player_next@3x.png | Bin 554 -> 0 bytes .../Resources/icons/player/player_order.png | Bin 0 -> 314 bytes .../icons/player/player_order@2x.png | Bin 0 -> 527 bytes .../icons/player/player_order@3x.png | Bin 0 -> 772 bytes .../icons/player/player_panel_next.png | Bin 188 -> 0 bytes .../icons/player/player_panel_next@2x.png | Bin 297 -> 0 bytes .../icons/player/player_panel_next@3x.png | Bin 629 -> 0 bytes .../icons/player/player_panel_pin.png | Bin 349 -> 0 bytes .../icons/player/player_panel_pin@2x.png | Bin 547 -> 0 bytes .../icons/player/player_panel_pin@3x.png | Bin 825 -> 0 bytes .../Resources/icons/player/player_pause.png | Bin 215 -> 229 bytes .../icons/player/player_pause@2x.png | Bin 400 -> 306 bytes .../icons/player/player_pause@3x.png | Bin 593 -> 422 bytes .../Resources/icons/player/player_play.png | Bin 362 -> 298 bytes .../Resources/icons/player/player_play@2x.png | Bin 659 -> 437 bytes .../Resources/icons/player/player_play@3x.png | Bin 1318 -> 609 bytes .../Resources/icons/player/player_repeat.png | Bin 211 -> 396 bytes .../icons/player/player_repeat@2x.png | Bin 235 -> 606 bytes .../icons/player/player_repeat@3x.png | Bin 303 -> 1011 bytes .../icons/player/player_repeat_one.png | Bin 262 -> 0 bytes .../icons/player/player_repeat_one@2x.png | Bin 304 -> 0 bytes .../icons/player/player_repeat_one@3x.png | Bin 377 -> 0 bytes .../icons/player/player_repeat_reverse.png | Bin 246 -> 0 bytes .../icons/player/player_repeat_reverse@2x.png | Bin 301 -> 0 bytes .../icons/player/player_repeat_reverse@3x.png | Bin 371 -> 0 bytes .../icons/player/player_repeat_shuffle.png | Bin 269 -> 0 bytes .../icons/player/player_repeat_shuffle@2x.png | Bin 290 -> 0 bytes .../icons/player/player_repeat_shuffle@3x.png | Bin 387 -> 0 bytes .../icons/player/player_repeat_single.png | Bin 0 -> 449 bytes .../icons/player/player_repeat_single@2x.png | Bin 0 -> 731 bytes .../icons/player/player_repeat_single@3x.png | Bin 0 -> 1233 bytes .../Resources/icons/player/player_shuffle.png | Bin 346 -> 514 bytes .../icons/player/player_shuffle@2x.png | Bin 537 -> 924 bytes .../icons/player/player_shuffle@3x.png | Bin 761 -> 1419 bytes .../Resources/icons/player/player_volume0.png | Bin 129 -> 0 bytes .../icons/player/player_volume0@2x.png | Bin 167 -> 0 bytes .../icons/player/player_volume0@3x.png | Bin 362 -> 0 bytes .../Resources/icons/player/player_volume1.png | Bin 139 -> 0 bytes .../icons/player/player_volume1@2x.png | Bin 217 -> 0 bytes .../icons/player/player_volume1@3x.png | Bin 478 -> 0 bytes .../Resources/icons/player/player_volume2.png | Bin 154 -> 0 bytes .../icons/player/player_volume2@2x.png | Bin 226 -> 0 bytes .../icons/player/player_volume2@3x.png | Bin 646 -> 0 bytes .../Resources/icons/player/player_volume3.png | Bin 157 -> 0 bytes .../icons/player/player_volume3@2x.png | Bin 242 -> 0 bytes .../icons/player/player_volume3@3x.png | Bin 875 -> 0 bytes .../media/player/media_player.style | 134 ++++++------- .../media/player/media_player_instance.cpp | 8 +- .../player/media_player_repeat_controls.cpp | 4 +- .../media/player/media_player_widget.cpp | 187 ++++++++++-------- .../media/player/media_player_widget.h | 15 +- 74 files changed, 185 insertions(+), 163 deletions(-) create mode 100644 Telegram/Resources/icons/player/panel_close.png create mode 100644 Telegram/Resources/icons/player/panel_close@2x.png create mode 100644 Telegram/Resources/icons/player/panel_close@3x.png create mode 100644 Telegram/Resources/icons/player/player_backward.png create mode 100644 Telegram/Resources/icons/player/player_backward@2x.png create mode 100644 Telegram/Resources/icons/player/player_backward@3x.png delete mode 100644 Telegram/Resources/icons/player/player_close.png delete mode 100644 Telegram/Resources/icons/player/player_close@2x.png delete mode 100644 Telegram/Resources/icons/player/player_close@3x.png create mode 100644 Telegram/Resources/icons/player/player_forward.png create mode 100644 Telegram/Resources/icons/player/player_forward@2x.png create mode 100644 Telegram/Resources/icons/player/player_forward@3x.png create mode 100644 Telegram/Resources/icons/player/player_mini_full.png create mode 100644 Telegram/Resources/icons/player/player_mini_full@2x.png create mode 100644 Telegram/Resources/icons/player/player_mini_full@3x.png create mode 100644 Telegram/Resources/icons/player/player_mini_half.png create mode 100644 Telegram/Resources/icons/player/player_mini_half@2x.png create mode 100644 Telegram/Resources/icons/player/player_mini_half@3x.png create mode 100644 Telegram/Resources/icons/player/player_mini_off.png create mode 100644 Telegram/Resources/icons/player/player_mini_off@2x.png create mode 100644 Telegram/Resources/icons/player/player_mini_off@3x.png delete mode 100644 Telegram/Resources/icons/player/player_next.png delete mode 100644 Telegram/Resources/icons/player/player_next@2x.png delete mode 100644 Telegram/Resources/icons/player/player_next@3x.png create mode 100644 Telegram/Resources/icons/player/player_order.png create mode 100644 Telegram/Resources/icons/player/player_order@2x.png create mode 100644 Telegram/Resources/icons/player/player_order@3x.png delete mode 100644 Telegram/Resources/icons/player/player_panel_next.png delete mode 100644 Telegram/Resources/icons/player/player_panel_next@2x.png delete mode 100644 Telegram/Resources/icons/player/player_panel_next@3x.png delete mode 100644 Telegram/Resources/icons/player/player_panel_pin.png delete mode 100644 Telegram/Resources/icons/player/player_panel_pin@2x.png delete mode 100644 Telegram/Resources/icons/player/player_panel_pin@3x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_one.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_one@2x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_one@3x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_reverse.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_reverse@2x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_reverse@3x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_shuffle.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_shuffle@2x.png delete mode 100644 Telegram/Resources/icons/player/player_repeat_shuffle@3x.png create mode 100644 Telegram/Resources/icons/player/player_repeat_single.png create mode 100644 Telegram/Resources/icons/player/player_repeat_single@2x.png create mode 100644 Telegram/Resources/icons/player/player_repeat_single@3x.png delete mode 100644 Telegram/Resources/icons/player/player_volume0.png delete mode 100644 Telegram/Resources/icons/player/player_volume0@2x.png delete mode 100644 Telegram/Resources/icons/player/player_volume0@3x.png delete mode 100644 Telegram/Resources/icons/player/player_volume1.png delete mode 100644 Telegram/Resources/icons/player/player_volume1@2x.png delete mode 100644 Telegram/Resources/icons/player/player_volume1@3x.png delete mode 100644 Telegram/Resources/icons/player/player_volume2.png delete mode 100644 Telegram/Resources/icons/player/player_volume2@2x.png delete mode 100644 Telegram/Resources/icons/player/player_volume2@3x.png delete mode 100644 Telegram/Resources/icons/player/player_volume3.png delete mode 100644 Telegram/Resources/icons/player/player_volume3@2x.png delete mode 100644 Telegram/Resources/icons/player/player_volume3@3x.png diff --git a/Telegram/Resources/icons/player/panel_close.png b/Telegram/Resources/icons/player/panel_close.png new file mode 100644 index 0000000000000000000000000000000000000000..2e333de4293b357bccf4e7eb51952f866bf8f627 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlfUwRyTYhFA!` zot(&ZK!Kw*S)8M(??&(L{@)1#No9qe2&8NJ5kz8&s=txv?#&P zl4q&XrRw!tUzrF@5@DSce@x~#$Cm2_jU}_czTMJu!y$fi($lP!;7%EZ~X@0{KUa+#;ApUXO@geCyk C9$s(& literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/panel_close@2x.png b/Telegram/Resources/icons/player/panel_close@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1a70b887fac6777a6e073a692b4cf325e92f4e0e GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@HinV!Ki+TZtDNVp$-{2Ypv_&+WGwQCgJ3g@_>Ysh}?&*i7AB|I;m;dyq?)lYECaC*= z-N(tF;HTWZZQcy+Q{g{<5`?!j=E?uII;J%Vq3Vl*!lW5`T8hdfnZ>`p2%@e%hY-dNtH14xB8U Ze;5Mhq}BI_drbp{i>Irf%Q~loCIDm?kiY-{ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/panel_close@3x.png b/Telegram/Resources/icons/player/panel_close@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ac24a1c653ecc813d6f15c6d4a68ec3de04e301 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbAj}w%gOiF(iZa z?aYG{n+WbcIFWjnjCP9L&&`fC3pQVbvg*nUq-@LW0_M>Bd>P@?4i}Fld+Y;VurxmrO-S%?5 z`)Q5D#**zVo}#nPPVSnO9-(Kv^tf31-6@~8Y&`nx$e}Hjciu5|Gj&=&E_|%8*zxG` z)El!pGp9#xGxeVLdH1q%?oU6Soq4tW-@n^RU%nmqIAPVX$!GUoziIgV*o0Hr8S!=7 zjF%dTSlm1}y=$^=>8kq|*5ADQdi~GPCrhj@x6a$V^-btKzM%YV7S+c$hlw=s%|0%B zp;G8r;edU$3 lYm_l5ax^etpaY$pHjEDy>RGCo*%Q~loCIFy7@A3cu literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_backward.png b/Telegram/Resources/icons/player/player_backward.png new file mode 100644 index 0000000000000000000000000000000000000000..d2cac60d1b643a37da2fbc20fae2645b431f8df1 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlfUE%9`546zV= zJIRpih=PdAVZDfz-#;>iZIe3~JzM$4O^p-l));U!?-skwk|fw>{#pH`f8S%f>$eYl z{;iz7wpCzj*pV3rqPUWMyflw>un0$ZC$2qfx!*3mWrj|BV#RxJ&BaUOt<#%61hoi6 zWoNu>I$0#qR-CskBJ+u&T)=1mF z>8D;&F3-Pj2V-7?^aC~^_23$tj~Crn&~&%s=04 z@<{N|iFv;sZ_SFEirZdoox|~D<&B6OS2zADC_JTcGa i87PFn0o6EL`Ui7CpDovM3zv6gA`6MbbHUhz~trW;uw;_ z`ZjWJ7n7kx$#(}9ZSQDq!7Fjz(p$p?-n?B~!ybQ7T%d+I-oe{7JDQtS`(XSIZuOQ8 zH)F3Wa^5i%`}B7E%=~?lsqlTjLndhII&+ff9 zVP0VMp@1yb-GvJSZoDnq)pnsLht=70$5#g(!Ee87SF~MtvU;J{Qll7kUCV(YK3{`f!I$5DJ$oXp)k@!4z!Q>+u4 zIA`xLoD!Vav?gvnGk*rp(<5?lXqUZM=$A31e^2D3yX^q*fS-(o|cLvyU&+6HBrTLv3%J2>)Dm&S_c9G zujV{G`kM8l-XqiN-Jwal@A@5TS@`ADym>}5G^d~bTX+BSo|h$B^GZ3jlUKAHwd}!& fS!guZ-)xlsFhfaN^^dkFD0O+d`njxgN@xNAkfJW1 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_close.png b/Telegram/Resources/icons/player/player_close.png deleted file mode 100644 index d27dd6b704ef6e112574d72a2b54f63046ab6bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhKAtX)Are!kPTbAQpvdFAcmJlA z_Kz|9n%G#LIZagi_d>H#WwJ?wg^KRU6>yPF2Mi* diff --git a/Telegram/Resources/icons/player/player_close@2x.png b/Telegram/Resources/icons/player/player_close@2x.png deleted file mode 100644 index cf0e108d83145c51bb0c33ef93b00a08824c43e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fJ)SO(Ar`%Rrv`E{8*;d`?|m{y zZ^3sSANy^I+^w;`Gr4|pTx?HU#Kx2 v)5V)jI+iZgbv|KamfL*qnyiy diff --git a/Telegram/Resources/icons/player/player_close@3x.png b/Telegram/Resources/icons/player/player_close@3x.png deleted file mode 100644 index c6d8846fa46de551ceaac2bbe54f11de316c799f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)m^Yd@I^xSFrp|C5r_!ZT6pil%qVj!1~Vgs z0Bh}a{siQl0RS<^We{dYN(lgvbN)iEfD$VpS3rpmWZO2}#Z1T@phO4(R7;ovsnt&@ zmHPEW4WturB33{K0AIvR$ROZ9Vg^J2_(f3 z{Kl=f0M(8V1r$y343%Te;hC5IV>8+t8RHBSUwv++vypr4=WSg%|Lbl0*9k4F4}Y(X`E)t;Zlb`NY?;ZnuZ#Zv z|CW5aCN#A4=7N(3yR=(BPWd*a$6gA`6MbbHUhz*Okz;uw;_ z`Zm(Ki^)->Bv#pFI-7rRu-(^aN8o_ z#F>)wudkmwaB6l!<+qTltHbqfU0xPc#ENY6F0qQv618N zX-Tq?n_c}OBJHgC{i6o^l8k09xttkmEH9ydR%dRM&g%~%I%%6D)h2Vkm10RgdVp(c zSGHiAQ}@rBd8eN??R7pFab;tZmEpPrz3U=$#D3P?d+xw~tV-jwy3l*?2t$$CXO{(N z?D=KTP^f*PDzsy78-MY}`|rDtD&3iJaL4Q9#(6G`!V`}^ELahuHE+3x0mJ$=D$gAG zEf$Czf4nhlwWb~`4^KqKESJV_M;?_}na=iAk}&9>dc@{Mwkj5?TK?faQpN}GNx zX6Zlr`Pb3Kn$vFifB9Yeb)WC@%XjnKuRPq?@rY?MiwdKsgU|#_>cM5FqJ3{`+y>;oBE5y2SlgF(SjR`ORPbks6dPr%37?%?l zH+SHnyLZ;!)cNSQ#bU>y@I7;Dt&M+AobK^N^8ZuTS!bWs?U(O$d*bl3=H8|?QESEe zkIP#m?Y{f(L$g$_ne>&k&5>4f_nlsSHS4EZyz*6!rVH=C2X4%r{n#Rk-@#~R&DX`3 zUvAJl!ts4l>P(K3Soe)_>)ETimR-*DIOFFy+edBQ^U&3y3G<%EUXRtAelcT;RSbjn z?qdp5y_UW$tG1AF2|Q9_Aki@G^wW-iPm_v|8_YlNd-;g;)YGXK#JgFG76vF>V((F~ znCo|9V?@s*7bVA@rkYyWZA@`yvt!qW9e+HrrsA-HgN9glBdeo@bP0l+XkKpZ?V7 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_full@2x.png b/Telegram/Resources/icons/player/player_mini_full@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..919fa5588c885d79c158cafe51e7360af9a54d60 GIT binary patch literal 995 zcmV<9104K`P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NFO-V#SR9Fe^S3O8_VHDP|w4otF z8j2tyN(fp6r%JF!i-sU*i3SHji%KKgaxljXp`lQumX?MhTB4$eHnB}{s3BSku^&+? zzwf~LIGkSZy?vSv-^abv^Pcm(&vWj1-}nA#H0q^xK<$9q0ks4FcL!!>X42{O{r&yU z&Q4ofn{czu&CMGd8{u%+Y&Hw2nhbqD-!FE><8i@eeSMwsXJ==rrd5fiAn-xq1Dw@nss=1C`r~zMlBXg zcXzi|`y~taw6d}y$)_Mrfvtny!C(-c2$Th|x3@PjF@ceRfq~1*OP-a+e!rjYqg;TB zblP8EUneIgxsAzWDi(_<8;iwwN)~6c*>dY3K8o_wUMLix6Wr|J-~joslNuWvc}g0S zdIbO#VaaxPcWHVek>E}?n~hR~gM&OJjfq_W;EH?;4-E}bO0U;L+fdx=^->%`oiMKA zaBXev<>dthc_*NnWHO2Ij*bq&v4#cZa=DwE8}#ey>f*+akB>NPX=&kcz%?ug)IUBx z&`+n+apStWKfd+#^*j!^h6RCHUtb^k-QM1EQxhEcp3@(Q37lB|Mi$ zM@P9?C=|l%=jUf@Yb#Gl<3J!la^(V4q(>iYYWQ;EHcd@U&(F^&dwP1xQ;5H8ehe)y zFCQHp!OK-(!w0CKE)ZyVa&j^~Jv}@;3}4gN*VhyW080rqVI&fX@KhyueturLXUd`@ zBO}l=R7j;#!m~hmu55O3aZ#Zr*=ZULe7(RSr@3~!U4dL)3SK~@D*!p6@$vDerzawB zZf?pkD~wD2a)4i{9Gs)`^K&W%!13`hykAS1KaIfN=QfB-MK3NcIBkD_-(WD5(y9~r z_D2zHs317)v$M0+F;-Af{*{J_uw>C_6uynb literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_full@3x.png b/Telegram/Resources/icons/player/player_mini_full@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..554968fce980183428d095cffd1242736c847ade GIT binary patch literal 1506 zcmZuxdo&XY7~gCdA}LAS+&Z4s#i7W|9aC{0`ph^093JPlshh3buL(JlNq|>M}@v2(j0N4D3Y((Y6=fE zmGVl`E#aZiACTksPkZ?>P>5WuVQmDd;x#;XAtW`XRsMZ`xpM8>-saX9bBO-nZ{pZv zvGfb86H!%b{U(c6`%QlmihmexB+|#3nVIF~WwBT+kwp0VmRxb2oSHh~>^w9yg!T6R ztAZ^a6$-!fudzo)M%vn(Dr?Ki3=qd$UE|~9Q&Uo=Z)Ej-7#MKF5t%F&clgWtdVWQA zGlS96(sJqVaK*^mw|;sB8!Ia{ekCl{VpkXF9^s&)BPlkvfpsU0?%?2nH@Kc2GdeaF z)G{3u5^^CaNt!CmW4E;2w4$s>rkGn=3VM5WE!EoF+l`Hl;lF1w>pMD(PDlw&ng}Ga zuC7iz-_z4mR#q0=-hhSL*+tewe}Ni``20tWjq>l`>4gJhV+{}6V`!6;#BzP;HkaQv z9%*Q3FxC8%BI0qz(&ln9nf&I7%57(Dwb==o%t|n)Q23f0I-8mK!Y7DTz(v_t?Qax1 z!8m<=eM_N5(^NW*HZ(lk+1V+jjPRebSk_RegMr?mJ+!< z4m$umiN*S|gzy50Xu%&QHIvvN%K^OCuVLxQ$$G6b*;SR5iKhCnZSJA4bC5P~7gtw} zylkNm*9bI@i;9XGdJN+D318vC@=t`GldneF@D)^QczF03QgSj}r)I~L?hFxgwYhoW z>sM!E6@PO2_4`*3ySNmc8y_FH^<0Xsh)N$9t|TNRAm^lXa?Ud*GyBi7a>>{+nQ^5P=5Hb;3iYnaOg zDg|F+Mn(p{;?A9&VXtdysnk8atkzc9T<{hsOvFDkm{{Ibn3<8$Wn`)lTv5(uES9FH z!K*Kvv^i;MX(CX=;Zr(8F>VE1qW4)~_Gd6vuh#hS*jPx}zVs~?FsFulAJ=MXECQag z*~ije8X7pl9P_&yo0`m)B1(N9r|8& zw~DkE>f?GlI$RJOKo}Bcr~?s^b(WtynVW+RP(~;0it?1J%?X5skW;6~AsV>_Kj!Bt z2Z1T6sW$=)_`eTk@4Xli5#iyH%Nze=hZgAxjb`M?NZ#6=7izZUDU<1o!*w4KH#axe z8NkXDN{g4m%ik1lM|X+|SS%KAwa9sb+Ix^fq1=3D0#0l}qilfA=&Q1lyAhJ{pxKL# z^xTqtfjAr#jh^JIew`piMmiii0O zy`ent<}O+ny{c*|Ec@8eqeLRHG$pVKR998H`(3GtKIMZ*OVwR6IBA!(1UwacdxK_e zVg0Kfjpb*x;=hw$IBL-Y-r!nJs7Kc;;Go!!fJDIqw!JNU@?kBH=TR>bW=-hXuH2>5 zYu1_Myye49U7v4P&-VY~b{d1xe6C+yTuiVhl1R0IgPQ8MGC3*>3e7Bz3Spm_nPfZm o{CURFqt~pl$N`k<&qB!Hu-R^b6E;T0ahv}YecT7dKtx>o7jDOV literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_half.png b/Telegram/Resources/icons/player/player_mini_half.png new file mode 100644 index 0000000000000000000000000000000000000000..b73618710a9b5cf03ecb73396a0846a653616200 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlgfjLp-C^T#KMeBk*>uT-#K!)WXFFlOV$mX|G>#6n3<2&KR%`3syLMT%yng=t z`kgyG)0+&YOqtS>}L6y=ml)- z>pQnO{rtX~pNGz$?_Va~+PzG;mphP)v#z|nTx4znpYSpPxry=n>ljmK&YbyiMWRD7 zla%<1;IOc72b;4Fci5*M7FjYJJf{Ai*qgDF(dAuT;8X5<(xRhh2G&eg32MZr! zb*p!FW{%-Hk&u!iA}&6C+BCcJcQTtS63aqEMQ3$$ygs;e(XwT1d188|N4kR5FAHVg eUSXx=%)pTF>aT`R_J_xyknwc&b6Mw<&;$TORfnSh literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_half@2x.png b/Telegram/Resources/icons/player/player_mini_half@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..34c4263dc2168c3dd426419e7c9a4b6d10aa02c2 GIT binary patch literal 665 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@H#|N8cOZ$nTF)0u+_4Y|)hTZ(mm+_B_SN2(G7)25WkCt2F{r+aHA#R)Ub z{J-O6 ziPpR2tM~W$>r6O1PiEZ@E=LO)wg0L7C)>kq`i*D$7|oR7YybT7&qDX7*(*a1ZB1a) zI;pZzYbsYTmx`*R$o8vQrt{Q}`g|%lqs<6gA`6MbbAj}uITCF7?Q#I zHp)6%%Tc7SGu0rJOIqG=NoRl9e@C4)I+NTksjwODQ%&MXdiY;}sVP*-`(jv-=PVV4 zjt&K}#)uyd7w$0Mvz~Ki)l6TvO|NBFzdtk2_WAF9cjwNHEzkD;)53g+@nJ)OgN1^O z03QcCn0w&=+XFXmM(&N1=WD;4w>?1PM$R_h56W}>>TCY>9)CP}vT$kk?wvb->b%PT z^5@T*q{NdcMGLhg=A2E-5*6z|K7Hk^{?$PdDngNKxwftHkI)eL6*To%3v08ZSg4k; z7zay2*bS4!y8ZKGr)KrtIC`{ICp0MW_U+qumJ7dq)%E-L@3{5fA3Shad{O7jm6s*c zr%yk*ULK z?%g|e*~b14`x`fWKQ?o1*z14)LtjwM_x|Opt}2Llk?69$3wHus-@+d z&8{!HA3kBj$&{wn%&oWP>ueQKIg?V5!APLO2Wh=450`*6X&(Ca?OTFj z?@fCd{#C#OD^qb-60&`qj~G?H@C%(SJ#JVS+pCs zeZLf9AE&7H>(?)@sjd4Khynd_HEU|tNo^IEhnAsHpa1-sqq2t8LZ)x~cJs`~^ZOHa z>Fet+QCL&E_@c(WU%7jJG|r!L`SsW3%a?11nH$XhSz|ZpJjaJgOy{g3RHN2ji&|S& zTDo+B`R_ODg-=eL`0D=6n-lr|{X6mXtEu8yrn>ot*3AVLXOuGM9gYhVoLO+!I4hVX zHc};NqeQn^r0LX2Jo)zfuPhT;S5&#?hjsAO>k`-Yzv0giVB?ONv(j#k*HW>0leu=W z*5AHz_K!?b-tj-oVin5!1LZf={0``rZN-*Q?b-h^>|)&La3ZB36qIQ^UHx3vIVCg! E0E!}{IsgCw literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_off.png b/Telegram/Resources/icons/player/player_mini_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a650f55d2e3146b859badac7913064240ca8b648 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlfU&GB?`46zVQ zPLN=2R%JPL`m}w`4}<)BHeE6yv9W*U*-n_RShR>KjiW;?Lx4Mm)!KUZu3c6wub)4^ ze&-I)bfwbP0l+XkKq-|Sw literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_off@2x.png b/Telegram/Resources/icons/player/player_mini_off@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3150639bd2378fac60b1371e845aa7de3eb88d3 GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@HwBNSwHTzed!wj4u(^OeMXEiZCt=zX< z(bm8rb5>DiLc=2qyG4u)U5h*%J_|0eF27cLzg*_HiLceGU3r&HO3qKem3zC(lw;AW zj(omrMW1b=rGj~ikqw=IA@JkdS6O{qs3_>#>onS z$tyIvl+}6{cX=1DmoW(5))*GL_4^jrM5*h$G}iI0E1lXlQ(Q)rcLAfxhjg}iyBjJN T&kAK10fnEZtDnm{r-UW|6TY6G literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_mini_off@3x.png b/Telegram/Resources/icons/player/player_mini_off@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4792b216f70f6bcaaa4ad5b9cb04f72165394bb GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbAj}_R-VDF(iZa z?W~RKnhZqRzCQEgvohRqDx+up!*>h1XU`H~4eV@V|D;*NXl@>V(87Yt@80bt=5E4K z)ja{H{?6QBYx{Tqe+JK7Z`GIr2EGG~77XkU7-SllL7c|_ZyomEzyJPwponb$@v~`{ zv$l3UaF=MaKY#se)!P!Qw9RY7R;RDnAK!lXV8R9k4xyD1kKdLVi{@;M=vYy)dt$=o zn?8O=tIjeP$9`9xTA48Uq)Y251B2s*H^LWYBs~5YG56GrF5Y%$p-{7g`=9uyq(!Yc(UW4nKHxbpN#4NjGZ`IS5*I%tZ z&NQhmp1WD}vjt1~WA=y}P74FrBjoN|-8qaB8z9cTq6gwf*M82e3SpK9B?3=ZKbLh* G2~7Y`Dh~Mo literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_next.png b/Telegram/Resources/icons/player/player_next.png deleted file mode 100644 index cdcf1f3da053fce14c4771711760afc74d40de3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmV<103`p3P)?x221kXaM2*SUoENBuBJCM`IW0=h7JWr-+LQ?VG zOcDaPu8VEk7>417Z}to4+V>r6?JeB0A`FmHVp$ftu6xqWs^MJT`xfE7#~8y0K!4P_ zu4;A;Av8OO5HQBnXLiof_kDHdY{ksSaWsGXX~mw$acu7SX_8Qkk$Il07xZS5_yWkK Viyj!lerNyy002ovPDHLkV1nf`T_XSh diff --git a/Telegram/Resources/icons/player/player_next@2x.png b/Telegram/Resources/icons/player/player_next@2x.png deleted file mode 100644 index b646b84724b92ae50a5d359af7ba70ab0f11288a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)_%#{>$OAuf(=(;_Gz8 zo{DX77zXhJa>ibk`Y%tWmrugWx9GJInCDsC`bby+gw~o#k~o8}W>3Nb-~+R&_|AAz R=kx#o002ovPDHLkV1iK5 diff --git a/Telegram/Resources/icons/player/player_next@3x.png b/Telegram/Resources/icons/player/player_next@3x.png deleted file mode 100644 index 7650bfdb7b7c481803c48a20d0d5d720601b9aea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)?=zpziN#`KXzA{cXn^ziOsP~7MN4&`qVLn|_3-=sVrYr(OEkcGy(X1PiK4A^ z4WR)vO`}$;;dDC1&}O@a(f657r$izVF|?WP+h~B}@kpUi5JkV!HHE%Ur_;gf^@^d5 zb}gX+mdhoHL_!q(s%seyaJ^osR4OR-S=#OPpY2dGdN>@&=kwxg`tPoi zT+@@ugm5@4zI%M{il8-3qgt*0bLp|GYZ<*-tw<)5;wR#7T}$Y0w~No`6Tf@B>Y75I zPA7`RqWCS(X!mXOY&IhrjT#Eu)isRPb)9;>{?;>qU0p-y&1OS7oqjKB0ByGW65a3j zO+Rhf)qRS-TrQN$W%JP|Xo>ER=*40|JRY|kwyXOEt?N3?W)rvDEfTh?`#|q@JF?lV sT=WxdM^`C@8V-j9gF*4IU0tOVAMug*`RQ-1$N&HU07*qoM6N<$g1^-k9{>OV diff --git a/Telegram/Resources/icons/player/player_order.png b/Telegram/Resources/icons/player/player_order.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2b10e7100063b51f817c099fc208c859df68cc GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlfUE%9`546zV= z8@!SCh=M@3(klHI5^bgvZajFND7DGq+CrB_XZDw>t9H03Dry!s<`kC|b|k*YxP74g z!nC_VP8~BDHtpm+WBFaVLF8j+z>MRUqE749I6W)Qd3Me)-0P^sXC;prufJSfl=Waq zM$BP;PyJQ;A1?JRnWD&IBl*42;n14v@8?Hm&kahFXW4YGiSrN3`&z@So=6UbqgQi( hs^01Qdf>G54`z+mD7!twx zHe9i<#X%q@Ac2$LK_R01@Lb1)iF?}k6Dyhe#1#b8Ie!^ES$9ZfwqHitj98~4&;A=% zLc*_`h?*UEtmrK?fklPU^FcGqyz}XkROBUMZp~Wu^87XiJ=40=Ivh=fGWFY88{S5n ziJR_RcYE8~S#E!mxP$WJMUH;o#_+}Kbyn>45~)_lSG@*3K};{EmW9UL-?i>{qr)rx zx!Z2Yt_*Y!G&yg)b(w@JN8hcLpFEO}SI@it-S+FKs}v(&7Fw<)aczhWLydo3k$n@;yEPKM~cKV`3O()pO$ u#9DB?GX30-Th}C)W&p#<0T^8We3|N()Lh6}-Q;lu6d9hbelF{r5}E)^vB!h} literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_order@3x.png b/Telegram/Resources/icons/player/player_order@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a372bff445d7f98c3246ac4e86e7c763ff64ab70 GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbHUhz?A3d;uw;_ z`Zm(Ki^);oYr8^*fS(KdyXPsg}NSS_I#0OdZ5Z9qMwkok1dT$t7BKc?1V!_ z*WS&&C0o6cbK0v{;p^k}a-|h23D#a=EOn3#U`J37>MaC#?c8kS^0(i9AlZL>`)yr| zhr11U+MUldvme}@!L@Gj)vU_k%KF)7(+bXgknB48sBZuA=7$|AKTb7icr3rX`f8Wo z)1w}bPEE6%>BGm?+`pckv2Pns(vOoVhn9ab+Oa9OIZ;CzC}Q-ZZohx&2MLDNei5Ro z2QRLQVT)NCcK*5X)q}|l494$|OPC`Hde($A|EF-uizsygt_^Y5Q^_O$G$obfwqsQKv`mtEe5YARoDosAZqwaK#x5)+%I!y4LgIE)m*;zpQ%m~IU6J9_^I1F)>Tf?neM$m`sbhK^?#OkFV}tj z_1Dv)hg<6;8v;K~d9{5~OjqLaxb?@g{~9q!U+OxzL!|iC#f&4TE7=T+{R~yEC;G{D zA6<4?Gkt+1Fg%`%IJ5ovGudnDv(J`uTaN8ua`0I#8u)>~Y-dc~-nh$^dn7z#B0DFt zbk`*5ig4Y2JMCPX@}x;lhaas9(P}?@a5gVvU!vy3_ub}KKUUm%TedaIcb;v`F(0+b pXVVT}U2yj*dO~oJ{UOb6$7ta_+vsz0N;@b8db;|#taD0e0suq2H`M?D literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_panel_next.png b/Telegram/Resources/icons/player/player_panel_next.png deleted file mode 100644 index 2649ce5d756f16594db8ee80faae1eb97ea7c422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^fs_I3_VAXv4L2AK3qE?YvxFf9T7-PQy==gnyp4 ow6_lnU7qyz$IeZ2SNvsFTXRa->Bu{ApmP{JUHx3vIVCg!00$dJ@&Et; diff --git a/Telegram/Resources/icons/player/player_panel_next@2x.png b/Telegram/Resources/icons/player/player_panel_next@2x.png deleted file mode 100644 index 2c93ed70eae54b406d666de0c706e71bb3422cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmV+^0oMMBP)# zF^YvS6h+@;8{!6Bk%+hu7h+>&;gT%GLI`fcLe6h~{_qEtB(E@Y;gv@Y#2cT|_dQvb zAtF(u2^N{{nL&qTxT2%J0Mr{--M-S@lk&00000NkvXXu0mjfeBXhE diff --git a/Telegram/Resources/icons/player/player_panel_next@3x.png b/Telegram/Resources/icons/player/player_panel_next@3x.png deleted file mode 100644 index 05ac526903e451cc8d4ad3c931ba3478d4bceff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP) zziJ{;97bmrEs{zkC>E9$S_?jag4PL=kT^T+wGP{qk*pL%3+jS^3(>*W;4?1v>w(XfbO7x?&w9Pq>h-$z>tFv66>%I#+wb>6Pw1Z*h9P-901pojTwPtsJu{ol zhFYyA`T}@;edXrnM)n2p^z=j~lM#J2f3hI~v)k=xwOT|X5wX$y)`n`B`Fu`3pBMd{ zakZiHL$llMa&d7X_M!Qs4HYn!Wl<`XME?SKvJn<$Fc=Vv#XJ=Ri7y*LVcy=}s8*}K z3jAg`9Qv~n1jaB7QmK^h0_dExr{Iv9jknBxHqQs5<_Y@g0np0SpTxV&fFXvMh?lqDX2`I1}huE3kWuXFboK3EUhfXY7i`K1k0)B2-D03Jb?%B2G)Wg0l`ubD<|-7 zvAgd0GwVK(Cg1lYd~ZSsA^2GE5>oe9zqCQE*B6@(~##ms;WZUwh%(>3a@ls2NK8eVdI*|;{l@UIymS5 z61uK~=Xt*~nx=`SX%40H`Mgclw(Ylp06?0ii_|~JH$e~(N-5dn`FxV1C^q|WU3Wft z97hbpu(+*lTPTXMd}~>j=Wxoh#OZW`VHk^<>$-*{NlP(F5=_&C+wBHQ>0B@j165T4 v0J1FG{w~HCEX&&ccABOkiXy10x~Y8v*|O8GhEXa~00000NkvXXu0mjf%rcch diff --git a/Telegram/Resources/icons/player/player_panel_pin@2x.png b/Telegram/Resources/icons/player/player_panel_pin@2x.png deleted file mode 100644 index 07e07315c0feb8b172eef0d655a4d955d63431de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)h*dlC@a?M zHU2T@_kHq)m4#(lrPk!t*ladm>qtcW*QjmV>92G+9J25G{{#DO3nHo<&A`%qsA(D> zkH^2no*SQt-bQn!q=ul_qGB`JbI(mgk?s23`OF002ovPDHLkV1kf6|3d%( diff --git a/Telegram/Resources/icons/player/player_panel_pin@3x.png b/Telegram/Resources/icons/player/player_panel_pin@3x.png deleted file mode 100644 index 7ad80b27fdd9ef84a8ac534b2b76b19c6267ec0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmV-91IGM`P)=IBEq!7=ksBEdmHof^E~UP0~v`# zP_Nga>pE(+8X}R%?15^UhE}VEVYONa(kAR| zK-z$v9Y_n<*@85Ioju55*!~0)`n1DhjFBwMq$mohs!FP=k}S&<3WZ2f6jBt0g25mu zibAq1lPHQmQ@EzPyE{syQuI&LG)kpXluRZm91c(A;ZCG!8f|QB5XE9Kyu7^p$=11{ z>+9?O*A}5rD0t0dsH>|hNRsqzCQ%e|dwc6O*NBS6B1BOfcfG2r&~@EwKJJX&8Dyu^!QS4Uy%BnNc<2dayWK`2kudAoqZhn5uZ>0nOG`^u!)5&9G|y|b zT7@jjcBY{557RiWl}cr}{qTYQ^?5aDKm4GgDB|Yk#&yWo*H@koAoCkmR#sdGy}!SA z49dttnM}s&7RP#geB@d;@hw(YSJCVBT(9WC!GU`fWsFg&R3gSKi|$yiRy3VXyI#q@ zZ1zoSGx_~~yuH2s2_&cEjko^j=!pD&zv(tSKR;8m*>t>pyxUI1VW4uk44==3Kp=o> zwd$y%rBaEjq9dS;G1Tkzi4Xbu`a(XRhad=pHIgKuQmNPm<#GHNsF{IuUB~+R`osxV zEEa8nZf9l z*YN{TBLls^zhi%YpDSr1kwClM9s}i>@q=KDp;oJnBz$^$!t(O+Z{8k@i;HM98Y6kn z&d&IA?(FQ~CdTb=|P_xDk>h;rRF% z7Z(?H{ufP-Kp=q2%S)`St+@&~9D*Pq9*;XR<(zw}^7i!Idwnw0JA$PP=Eqr+y=LmeIFIg&PzY7&#mmnCuk-vUAtQru9A+ zSiC&_bKu;7`VwPl>7)|H+1pFIY+Zg|Y|NheDE|Dj+>e*#?rm7E_*GPaMbXva=NW+( z5yq#+&H_O!Q_k}^dI$#myTW7Rl?Lc4gnxRs9`3`E0(aBL|Z}0|Se~2SFzD XdhKp6$q8H=K<@Q)^>bP0l+XkK5nNez delta 384 zcmV-`0e}9o0+0ic8Gi-<00374`G)`i00d`2O+f$vv5yPuZ5$5rxna9(D!{9 z$1%+F9Ab>S#b^ADWA0ileEt(37J*aEHsjbcjNDm8{A2N)n19%{RZmeIn=AJ0TP^%% z1*dIq{6yL|`@*&h%d&*7>o(u=qZWR$0V38?#}?Bx3}v@k_%@2|b-72P0e8w(LMWgJ zad)ABJLM`N6i|e?yHLQLa+MGYC_>y_DBw=HN(coMA?_{|aHm`)gaV2XcNYq{Q?3$1 z0Y!+r3kBRMS9uAcfFi`*g#zxBtAt4fcxYj@l32kkxs!`cHZV<-vAuN6|j;!SFygBNL|Hz9*m1+Y6Wa e(10-U)cyl&uC&4c5B>}Q00006gA`6MbbAj}CgADf7?Q#I zcBUiOVFMnP$#Q?b?NRREJpUq>(}F&ps3z_#>zz|pWP8qgx%TuSW=0MN1}1?91{MVd zDD%K^jwwOga#wG)yPNF#`xMiu50SM~B7=^Fm7Blf5(|(z`)cu-Nk-1$@69(iT*?TO zx6l5nx-_YrBl)$I`TVQL^*?`DdVfX1#{AD6hCQl^2mB2?IVyR3POg~5VmQsEWe?l2 zln~D*32!B*IOb%dRVt1>s)CB^8x18xCn+48)G^`uff+qoo&w39E+?`R*0^7ddd+=( zyFq~rM{?o=s~!lvNA9*ad^5o zhEy=Vo#WVd$biQ+IH0^B>fI5`s>Zkl*BLfuTYu#6)={(Zmv;5|;}IIL|FK2?{Y^%( zUYTd7yEPtISP;K`J_`%S8U+U?78ZwT%~_1Ee%rt4^Fo+*~R zaoe$L*W`3xZ=C;gd$?YjY@6ce8)i9cpDw6fRQ0&(-rs3;(a^wfqG$pGBjbdp3XDul3a1?*o}!6{1yT)bB=g>{n0PpQ z#YF8{%1;&?fBbN3?!4?LAI@e!>3YV&IBVI-?AtciPduD`{ebP0l+XkKCM5N9 diff --git a/Telegram/Resources/icons/player/player_play.png b/Telegram/Resources/icons/player/player_play.png index 4dc3dab187ea12e8aafcdd59a02deb26d6359e31..3488f26922960dc32e637b3464ac21f061094d59 100644 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlfUP4RSb46zV= zJH?UjfPjGOQl+qIea|M%af>;4N;S&&wr8gDuk4d;2lwnb!*T4{0WF1=2|-CaU8jAw zTbk0NS=N}aw{2@!Hm|_BDczgT@4xbHK{D?uTgL^rv^fH^8$Jd01ZswsCaiokZ$k0B zLR<65!zV1iKXlyFG@<+h3vY(KlG9gZ<$x9k#g=#_mQ(c}?+jau4VN)V=l%XA`@CgW PEXbXnu6{1-oD!M% zML-aMmxxZ{1{xg>pm7K)Dy0kP9K=0zZlThPLiD1Ln789)dA}a(?IfGs?5z1RGiF92 zgaBQ_M1Hhv+crs(glL-fczyYd9xSVA8bE2=7JT1d@0p%+zkeIYk6)!I3NQ@gD(E`^ zfx|FBnx>#A3NL6Mz`Uxe3S8IafgA%MXr5=t^Bi zn&vMMKLA1FI6{_XpsMOO&@}+_rmk!7Jns|aKL7+x(*%y=JVBmX1ueEqBFi$7B>_x+Lv9GO87>?Q7u sZcDOdSrErD(4l|E!0ubDYkVL~Zbac7_X^>Y@&Et;07*qoM6N<$g7YAlRsaA1 diff --git a/Telegram/Resources/icons/player/player_play@2x.png b/Telegram/Resources/icons/player/player_play@2x.png index e4a2e5186b10aea301c16896c7dffefc7f9c4beb..7c283f3312026b4aca9aa462b79839daf9a00038 100644 GIT binary patch delta 422 zcmbQtx|Ml?WIYoD1H+AkybC~zu{g-xiDBJ2nU_G0OKOB?ny)W|7Ld)sz}TM2zyeYN z#8N=az`(qKk%1XVGlIkxFu`RF7BC~&AceQhb9jKtym}lsThhmdf z#qh147WmY$BAPK&&aosqBy@^GPSdJ=?|<4SA8WbU>Bm_g+WF&!;O&wfp!Kg$eHB)HzH^6h zOwtFXU5P1YHJ<4S?4A+rpn4>QX{zvK<|99NyFMlg?mfYjG(m@Dl3=rg0`p9jqY4)c xc-SXwkYH(I`j^x2v`l_W7;}~b?+V5|X8Xz3iZl4{SS|yFny0Iu%Q~loCII$to%R3# delta 645 zcmV;00($+m1Cs@i8Gi-<00374`G)`i00d`2O+f$vv5yPymyLRSGvROMua=whUXU>o%Ndn~{+iYYbzXxsza5x;o`+sx+p-@PgOeWHPzn4a% zk(5fMgofZfpgIPF0X(-(rvrY!Up4OebDXZ#!DA4o)9E?>+x2d@gL1hHPN!2Oh!&t5 z{X^$`K8Iv7DGK6!0JF4OE%5n#ydj?h5VGBFp;#<}-EQXv`5%DI#%wl&L?XchVGaNx z*XtFU%_exgUVkeg<^kAjY&ILn=ks8**{pz=4`7h-cntA){M(4{0T6PzT%gftfXCzc z7Ua7CHXEze3Uav|$g*rU#2NsD42MIA#bRb6tOX$Cd_F_1Rs*-&Z3e`80Go~FatWDC z=D!Gj00!yz`w)#rKZWoIAmn&FLZwmxm&^4oL<|6%jeo^r0qJ!59fVi_2I+RY5DW(Y z0ud8{5KKuTk%%EecTKFU%7kdj(_1PO3Wl)=4Zz5ii7*7*#^AWegMANqpV#X(gu`J~ zY>#o?U#o-1P7xa3#DPHIx8QHnqZz~#K=x-8A7s^PmF9ztY$}1tTsE84e1&yxRHHH0 z-^7?s*M94Dn&~vz1r6CHCFw;y*|G}R!WQY$BH7|Dme)(A63y~@yWOU_!6Ez>)8TN? z&8W$2^7VQ>4S>`(E0!~+)9DR?XJw!MZp3K&j%30I!uLerysOcA}!w?`+ps!*P fzO3>paMu3=4Y!K(Tfhwq00000NkvXXu0mjf6Lu^m diff --git a/Telegram/Resources/icons/player/player_play@3x.png b/Telegram/Resources/icons/player/player_play@3x.png index 8a14c8cea52855b868ce4dba34c16c136b71695d..aa280b9a2c84c3e0940a1878938391b29bc9b5df 100644 GIT binary patch literal 609 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbAj}cG}a$F(iZa z?JVoQW&?q?&AWM7b<-P~vJ03eSSZUhHf>hOc)(!evN2otlE$ON1I>qcq`FQRZZp3B zUvN@H<=!U~SX3B29fS~6W4g+R=HnZ3tvQ(Pe?PrR=D6T~g-%hM^V(gHzW-nG+KR_n zDD`3YiA_0+nvSb@${atqzUDJm?rkO^lUd6W*YhPz*ru|<_q>um-zW_vN`Q`cheVTTb?Vj2P0&iWAA2NJZ}ARmG!v|rju6eT3dAf+vMPK zF$d$gmEDV8JbS3tJXZ->L)5G@GiE)EzJ4Qb>$$>gmp8U_FO7k{=GK8Of%_Ynf76xif3n)eJ@*Y z|7hT}?U~(Y=3i-nAFkc;y1QV0%Zk$nS9I(W=$W=+^??(ehnfXNTUmDhRObv?pE+mm z??7?Z70VAubXaj8bGxEx;J1jc>7#HdOV3gb2I;oM%Kr&ETn9ec%y0ZC#+vY|ygD>g zc=j)5?zy(F^ffN-SZFqB*0(=56ZiD_OhFHHM$ZJ@M*G?GySP1f~j*8Gi-<0033(vqt~`00d`2O+f$vv5yPtQK~#7F?VL|2 zJYg8eAKE0PNI4J(%Ab;=BnMKQaKHhjxZr>&B3zJ?3m06-0S6pJi5$2flA=&JxHu@J zME-=#Z@$y--FD0Dj@_M^_nq0NwwZnReP`bH^FGh}KF>SvPJajyN%AKsDg;7R(u2wW z2?POoQH3BNFMu3geph}@N=l;g@^XrgkEf%fBU)ZwrmwFrEk!Mn2ZOZgr>d$-dVPJB zT;=leQYtDcQZ3`@dIJ8Y4ks=yPI`HHab@FnzOb+$A&-EK{!5+J0oB#jxdHj@%k%TI z)X~u)IUJ6^+<#Q0yy}4Z`}==m@@v}J*_o7|pD$9wHPzMQEEWrF*jR0a1jywPkT3O@&62LJuBfG@g+fCEetBQ2})zXIH0MiDT;}SVaY-rbp-?x7{?kL8-EqEYiMXtzKcXicR&mVG-!Hy zTG1$ImMCHvAO-|u62g`7@o~af#k&{|2tY8qwYIh@W`|jiXE6m30|I{ueiQsB_)$EH zsel*|*#oDOlM@;p9i_;~NS4gSkqbZ|A;)qg$8;pG6i{__H5YJD32p!}BJ%10EiNw7 z*47rKrhlfgWYdn^0b(TN^(Hz!J*DB{VTy=|V9ACbxdj9gVPRp^+uKVQ7Z=Kkrr~tt z8*&YZ0ZB|uq?MHwT3=tMaptiVAgly*cXvA*ujRxxfad4tsj#q+9v&XFaB=4G&&_mRhTjutO>=WI?e6aS zR7uNfki2z}Iy*ZlD=W)qI3Q|C4O&`SQsS`N+gqQs#gp=Bx3|;H&3}zwnxa-%SU}g;*VNY5MjIO&YHbThx^O1; z@$o@}gM-R$5WV4muuvKVAkZ3Uk5M9o24Q@utgNKc(o#d=pcA+T^!fQoBO@b}o}R8e z|1wHzT<^oJiDA0NW_0*AW(s#21n;+|riO}(i%o}vj^PH-_xCrAjg3)SS{fl#;D1H9 zFfl~hh`14X^CqTh(Ea^A)z{ZkK|ukRaL`$%0Q&j)p~=ZfWe?)q+#GL8<5nNTP3-XS zP%)?D<72mq@cP9t4SIZhq^71O%FD|mQQ)A{bk`vH|C=;3GebQ+Jp@RiiLQX4DVUvL zR-%e7Cie97r2JVWCnrZ}IOx=XYkv@CrLL|n!W3==@dyaxhgR|T@ru^_7@g0fiQV1Z zd96>N9Po$K+N&NyRmA$GYA9``9<-TK7F(wW{UPGi#gkr$6s`y=(c7TibY>65_AF zYE%+>_P{b@l`7BSse3nW(rLb8a<(%2a_{WTT{D-xytrYijhT^$#*vF2rLl)E%{g5r z(RTD-)4|W1*EO~1^}Lm4=`5J3p|r2+`Hbbw8ZDb9>MNNwEz&r2|NCA;D{Db*ui0AD z_rLfSEYQ_@Xue8g$3>|_OJ!VYCar4wD!EW(S-><^9n;V6{3`zKJ`r#Gorxp$hnz_ zdl7L=xvp#4bQ}lnP6*-IRkc>pZ<|7rN-4dTr2D>?NKf5bQ_lG(X&|K}QcBB&oU>YM z;;Z}wwN^>e22e_Q_wr%WFz-CiY4g7Cz@O$C{T|$%7~|S{0A|J;!4Lg_nWDnADenLP N002ovPDHLkV1gepSi}GT diff --git a/Telegram/Resources/icons/player/player_repeat@2x.png b/Telegram/Resources/icons/player/player_repeat@2x.png index 870d4ff84b70adce7df6aba6e64f7b5cad007d3e..ae686e152170b3464227c70cbc7bec02971d22f8 100644 GIT binary patch literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@H=XW&Xyu^y-NX557%3+(KTz?!e9TE{I9S% z_k45XzMUa6EjPp&@M|96q;G41VlR@;h} z#=XkUPrc+4+{3j&I&g--t;7&_-YlhmdAy;Kw--h24_+$d*jBXM}4xQ%~folZB_rdDKyQlXIq{})tpO?MJ@q$VTGy!<*W3V^qAQD a4(Ok#DtJfAg#(j?#3le?A(BAyv|d(9jeuki=`Y_=NGw+kV!GjxTK!jVEIf-A2&1Z5ByH0QwLS!XB_opNNno zAwwcb$dE`9G3leLPWgx1^mb+Jm&h69UF2>H?hbn;p=3yaq?!PL^7J$QmHr=H^~fsv l(YYrp08neS%WM%e@&6gA`6MbbAj}9_#7i7?Q#I zHqv&orlUygD?!arC)X~YJ)In!jr9wD2%Zq&_`}BeRGuSe!|a@?DUW-%d7YXZXeSi1 z@%di8&B3;tvvxf{C$Wlk_3p28s?WcicYE)5JKL50K@OS=L;|=pSf?;~F)lsuSYv{Z z+Uu`X3IY`}UOk?hZ`#a1zkdDthXpt6%=g!FXtC`7Ki~LgO`XxqBT0s{H^?b1GxS`3 zSzccL$Ld}WlRX|hCXYT^T;pA>?$~MjC@`sjFaK7B&AJe+qC0!Md1?d{fB&speRa}f zwf`Yzv)_KLijR-K{Z@?e>`wj{J4<*}ggU=}FMmEmVqzgri<9C{*A1Ui)FwyjO?SKP z*I!~KtNm`H<)QZy*Ro8cT$Kc0o4re3cG^1NHfw%*>J++ z&G+9+_qv%#nT9*1Y`L3P{9sLYp`gUdogHuHDyBNI)13EtJ`*% zYnzSBn-Z&oiY=uv3~8HZmMU_j6-{K0WxBxaqBV8Z)vS`IO& z$2JrP=qa{b+n=yTmqqW}{~3Z(sS~G97Y}ntcq;UG&g`BWx4KkP1=}-D3n#bgOmUs_ z;mnM}8*j^;+Eh9fk2eK%6nE|`+Ii-p!=?u5h3^;rNvzpy=rl?FaFpWb)-`hJOf&7P z)TESFzb;U_`*P8y#XBAEICOQjmX^c z%jCy(2R3F5; ZkMZ$NsVhsR!$H}a!PC{xWt~$(69Dpuqs0IK literal 303 zcmV+~0nq-5P)~^~Te(=Jp-uv$%V`!?ay+qqXk2n0Yqb{4ItA?r`^XMrIKlPC@VjAmnnRAvdEsHc> z{FW2EDSf=qrr+E*_*zHwk|{bZ6Y_s?zTf+BZ+)#|OM<5AGvxc6#Y+ zubsMu(J#_|3x|d>DwM_kk7R7i=vmB9^zFbqXs5MnTxI2*_D zlGpybVaizu!JO}IT@0%N^5_xB)4JAL9Jk2>flNnU2td&2swqb~5O6xmgOoT36ax1JHF{aagex6zc`cm@~3ytAuL+0000&}f!M1Jq&DTBh%>jsj-h0FtQOZ!96j;k}oCLV8 zD`Je8=UE@u3-sO>_ff-*XmPeyZT^Y$0x!k&0x!q)0Bg7hDaJW>ZUe2a#>_U`+5;2e zdN-BAF2hM+m*AwZW{tq9z((NIU}tfvuo_PNrT?f9!VzZ$1|Y{-f@L^supMU+1^{Fg z_H$zV{h&6kmL_hW8f&<0YAoRnQ)2~JoEi(b#?;)4tHJIJS%m=rS%m?>O?O)kc@hz)l*lS@A8BST_MViFl1AkhNR1v00000NkvXXu0mjf7TulJ diff --git a/Telegram/Resources/icons/player/player_repeat_reverse.png b/Telegram/Resources/icons/player/player_repeat_reverse.png deleted file mode 100644 index 6928cf64deca42f1e897d08150df566ff38ef675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp@K+MO%1|+}KPrC%9I14-?iy0WWg+Z8+Vb&Z8px_Em z7sn8diM^8!ave6{ah~ta_ji87|NqHVXP2@R8QogAfrFwoD!7Be`oH!2%&fTX0P4KS6u3Sy~g9x zw%o&u+_zmj$0vNovU|?wlE&Sux0dz&+0?F>y>`+P@dLZoZD0BK(8lE*4wnkv$e!NB tkRX-&oxjJHU(nGj^PF5k&CJL>j7PeTX7~BW$^hNW;OXk;vd$@?2>>rDWs(2@ diff --git a/Telegram/Resources/icons/player/player_repeat_reverse@2x.png b/Telegram/Resources/icons/player/player_repeat_reverse@2x.png deleted file mode 100644 index 6aa3d20bfdedcec0b26fdfa3904c4faf45f37047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)j!3HGjh1XvOQk(@Ik;M!Q+`=Ht$S`Y;1W@q4 zr;B5VN9WNgu|mxX0?o~rKTeU;pJ!YfutvxGuV%LK;bw&zsZFyPILuvy7z})a4fS=8 zFP*Z=c9)fhR(HzAX;0tm=Kq)w>mYaJP}G7YIj9m zmmJ!7TeRnS**^^x(Gzkvr0)H`pY;D#V(hhj6}gJxD?e-PYX3KRSLHls1r_`4S^Dd* zpI|&FEU=bUlyBmaEqWr8z7+q;;a(e5zUg>e7-LtH$N~=zh9#|n+>8wmIXOP0aCc=b x3X7JFg_T2*`X#$7fR@fR1*d6x`vw&T38cYLr!?j>F;1OK-EM7_op*o*m z@|Qi2tFRvV;{ZTJKyn*-@_7*{7A^i^&wlZd(Ynsjr^pao4m1x4 zqi`$GT34H}));%{-{-ETid&YYw_}$W(y1#()`u Rp*sKo002ovPDHLkV1h45oEZQB diff --git a/Telegram/Resources/icons/player/player_repeat_shuffle.png b/Telegram/Resources/icons/player/player_repeat_shuffle.png deleted file mode 100644 index dcb08429b7f807be4ae6cae2a9462eb3d23264fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp@K+MO%1|+}KPrC%9I14-?iy0WWg+Z8+Vb&Z8px}N_ z7sn8diBl&X*<|Z3m8(&a(^wl4B@B%3)QZd8 zP3lqbw0yqZM|xY1yMpKIUH8l$pPCXBJw3=T_SZ3iCJx0vItArZgN_&;HV-@(Iq3_7 zhvwbhSIWC`^|pqo7@q%p{B-So<}H?gQ<)`n`L~AcTKD^H<%NA`?A!c}FP~=naU-q( P=oJP}S3j3^P6D2MG9CjZrg-I%%L0k;cVk(Ci zxF$>PTzp#jUn(=V(JOUX$G*o5u_Eu!%uY<3q+%?bxT@m)_3aLP(vFXIt1d9^u#abZ zrFe1M$GM$0R_>NZ_TMzPuzSJ2808r=&o-yI345r$D7pGIHG->#DM;Me%wO~xzl7HDEtsZf my_q-R{`ZoIDDGEZnKqt1b#?LlXFGuYWAJqKb6Mw<&;$U@>1<#C diff --git a/Telegram/Resources/icons/player/player_repeat_shuffle@3x.png b/Telegram/Resources/icons/player/player_repeat_shuffle@3x.png deleted file mode 100644 index 5fe95448e4d3c76d4feeec8eb1e8fcaad3eca04b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)L~~8m}t>@sF&9s%F=#YR{bUxGS&| zhW4tJ=s^caxZxRg23uppaRF3=1zh&}XW&|}^8-xBwP0cArsGO5>$PTUj>O$L{N}p9 z>`HGdxzk3H`;W$b(}3f=k+{;~ZvmT4_%80(G#`iw*WH9? diff --git a/Telegram/Resources/icons/player/player_repeat_single.png b/Telegram/Resources/icons/player/player_repeat_single.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d81db044bb40e9174ceed5de7a16a54f54da06 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlgfOxx4NF~maf zX^>%`Yk>OGjd&&H*zl8$Se}_<^WfTR-lK7NLt>rzxww-r#(5F zuO``Be%|`~j^no5Z||>fQiz!L^zjb{CX2iKEmte}9(dXEE%1@WG?kO3cV!j13uVOH z67PTSF!!CDIm^K{b=I;)8d_b8GHK>%rvGt9=hYeosQY&-X6cYM&S6@Xnd*XymItTZ^|Lr2jB6P@lT;Xk`OjtN-}<`$+gAI#e>we2EY7a? Rj+OxhpQo#z%Q~loCIDP=sK5XK literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_repeat_single@2x.png b/Telegram/Resources/icons/player/player_repeat_single@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb671ed1353078c642c2b615c3044d7a1511d17 GIT binary patch literal 731 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@HD)XJJW|CIKNuW^oxFJ!d1s2)-FnBuZ{N=8ey z|GSv^JG0-OdvojTy_DsJWzVdiTYr9gj(`67>^RmvTz^(`u`o5ptuMEb*~cPvNPwrS zH`s-VQN7;DVdKRK3Aq*S3qG{{`O{q53R3ZHZfdS%A6K z$x&1}S3|D<{PWN0qOTg&PkGJdQ4!+gnd-IFZ@F^Di3ie7xopjjcJr4{2}&@V?YsQ) z$&^ELIt%Q-G|xJ_Y~Sp^b@%hO$9LBJ+Y-Kb)?c1hczpP1b1%p2Wr>wkFJHU!zWIrQ zPwz|QRP`KwUuX5_c}mUsr$rCtIbU7re=;H82g-ntEvOjWgQ{ zryo9c@CCznyUqJ&`aG+!nIz2+xzuZ^Q_0o&a*>+y@18vWJoCw#=8qLRxlJ59W8PKm zjWT!S3OJp%dC7WC8LPJwrRzI)-F=s|@xm9yTR*3Tx4mb}KefSZ(Y!VFR~F4Y@_3DY z^~ab+6UEHkE}8@tzO%BLQCcp$F6il(roCJhq6N9E`xu{;+%Kul6`co4Se~waF6*2U FngHI{Fuec( literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/player/player_repeat_single@3x.png b/Telegram/Resources/icons/player/player_repeat_single@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6aa0c8834c91b18055e70fb4798492aae67c8f3 GIT binary patch literal 1233 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbHUhz+&y`;uw;_ z`Zmha!`M;eo7kd`Tb*W{D_RvIILzc8TH)zCUEtV^kDZ!4ErRL0^3 zD!rMPjx&pVWIFi!|BvZ8ZQEy;-hY=ClNvOm()j(4edgbf%#ryTC>ekRJyI3y?dy}0 zl%#t1?b%cF(SAdduFV1eQ%m{xH9mXrpuzw65vIDDBfK-s4!+pJb+6_^gwsK-K%Spxa3!`L!`J^bE3_3xy>p6zJ1%aW5-b||Utg6c&z>z?;MDE%^SDcwwrYJ%&6)G(rPX;F z`uh5oZSmP>n|A5u&7FJp%<)i}H*cQLqT1TTi56B?S$TPCjlNUo&!4}0*RGCbdVKu+ zv!gPn?wWPmDL41+!-or9RW`nS_io*)RbD)r+g?4LI#o1q`ND;cB0G=F(UDubcCEU) z`rEf}lM=d%Dl04F|E1e*L<;yL;lqi2)iVRaLK!N#DNqkK@Ym8D|%+c%9A4!zCC~)~=+s{jVTLgoUt- zy!`hsUt(foJ2h0NR5}+XBs3&2eK~pZWN$C;&kLMFN}oEmZrv(az2VR~XRW^qpTds5 zdX>c_RqL8n1C*LNZJN-XI_X9$8#%+fXa2Lg`c%nJ)DDZ2ThCu{%jo9A4~qLPJvcJ? z=!+)>3>PB}7Rz6r)!NGXmh1AxixXcmEtIrsp15t-o;@Oh4nErpy%q_-Hqx`(zJ2>O zs|-`N=e(|)vIQ@`unp!tr#*9)hi%`VsZ*yenbh%Zui)V=9R|h4#V<5!0xsxFW%5?5 za-Prs)=;tbYr4G8|2M+sZVWpX-ZxO&Xj8M>OhPn)HM&AzJIi|ZX`jCTHVTM{=m-o9 z5C8sqL9~LNw)XAYw-1{fSbEvXw@COsTP{oc>gVs?>B-%^c*J(O)ZU3wd)%_#mswj| z2kF;6nCzqWRW-Y+YL-H=@}s{J=c8v8i}aj7nKvi;W?6Z;y^YO_H31){N!&Z;`dnb` zg^H_Y78V`Cvm|arCt0kS_?K7zx6X$>&KsUp0n=G-F0Zzt_N3a>4N}t5%Ip_^|E~Tm zcVm_Uv)7WvPdb2(%GqJY`@v9Zogho})>3_8vJYlf3-M z+=FM&`qtO~fBt;AwfW4og@lGJf{|mS#}@){o6Y4MTD-w`W?y_ zL<4hUanmNH)r!;39y+vW*|Kj>P6{v3)DBz2P}F&~bD5vF_v@dZ zpF0GL>BVrEwE8rE`SK-hZxyRa>bEyH9h9G)o$cOty{EVL{=QmnlhjjFG<$k_l9H0P z=ig^5df52({rmoBH99fH#l;>$uin0G_4fAkjNM-+n{lmA)_R(LJYULzr5lWMa&qiy zf3bvIzjm!{8Pkh(r>E;PFI8ah6`RZ5`SRDVsuE5%wgj$Q+j6DP$T;aSrQKSwLc=Gx kL1{^9)Ec)Qt{`<5h8Z94SD(|Lpa%+nPgg&ebxsLQ08jqTFaQ7m literal 346 zcmV-g0j2(lP)+QZbH$Fc6#tiH?dNxHA%bfV?GN;Vl#hrSVg6$pce!IEOS5awtafApK%4+chzI~6IU@i7RR#I-7j6vLosRCmAqgQMgn$?$ zy!SB1z!-yZ91&wg2w|V}W(a`JIg(`4H0-*LB$*}^ zSyk1WXyZ5#UM?5*eNU3S-EPN6-_KW3mL*k{s!D6^N6}m4ZQCMA5)8wDqA31Ma^Fc+ zxvnd%wVbBu$4*-ivMdV$AkTATS%$9bAR@S4uejguh%url3aBd5G~LJU@ZQrHLt_lb sapWh+md1a0JRV5X6e5DtqT`2s0vXNm;~r$=IRF3v07*qoM6N<$f?ec_)&Kwi diff --git a/Telegram/Resources/icons/player/player_shuffle@2x.png b/Telegram/Resources/icons/player/player_shuffle@2x.png index 54d44448fa27691cb47ba88316ef7f598f20cf47..3c2751ac87c2764e873f24d1bb91d6ad4a8e7d42 100644 GIT binary patch literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1SD@HFa!cZrH`(By7#_FZ+2_tn~JX-;(g4K>2J60`#Sgio4w!e8O{7MS!4nj{4^~%KH~jte>(;${@8loXU&}Db&(ClE@#o{m=bRFm z+i&xf*Vo589J@c^>({T-r;AVX=6$HZtn~S(%~7uQ!^}+;F=~@vK7QQ1tk}$dhrxEg z<=G}uA|_(poZeG+-hFrey#Fj~MyD0MoQ0*Ou7&-5eQ9ZFZI?e)?VV9+(tY!=Fl+Cs zt66LK+BlRadYn0T?vrYMUf#DVTd{u8^6Ki-az8h@eb(2}nKN&mQGmqBlpww7_3j^k z)|l{|KAX1r<=0Z)_mv@H-L6qOlTV&Gdp6Kw|9yYvdGqJ%igAlK_{VEa zJ@wS6SN=Lsu1my6Prvv=>_J$1?}e%g-yh@=_IS2TXDFDP)hdFRd@ z2_Ck>)1MbMpZ)mJFg1An^^4v=A07SbtWu(U>e;7HMVXnNcUINBnBlfEq-)d45UuX+ z?v8K`k<0&5BL2K^n8LfO+iNM4^q<4?UM*>3*csEe>7eqQ1m@Or=g;q4sHt1c(U9kT z^FrF&604U2Qp&HnYv$MK*s~mPS*W@{KRr4++T_8@mz}cphWEK!4;|UYcOW(<=0eiP zikb&)`!{ZM-2UtO_3+hKfkBJhz@+F6LM}UTjPGgUyOkdu1@B1yAJx{!NcJrpB z>z%uIMf(~zv)hUJ&SzNYxBRdGb7Mn+SyF6sfjG0GMt}3l0yCvJ5l1HVM^~?gKFkr& nd=y%xA{Vq_Ndp8*aQ$JM?BBFe)@SxRP|oml^>bP0l+XkKvDcWC literal 537 zcmV+!0_OdRP))e&?K?QWz0|CKLc-j6KZ%ObO}3z5x)RDp6h#1lG)-G96NV29JL`3j?ABv*DFbot$ zA%Ma#lzN^({s*b53L=8%c><)WDwwAE)b}=sh_F~JP?n_tI-k$)LSBP{AP^vBSz@_d zP75+k6IE3SpwsCjlywqN7={9*C<+*c0Yy>Z`~Eb|(6)D9hr$ zx~@ahG^A+?V1ff{Sr+QL7EIgi7DR;IZr9D#bq&k1o`M9}!yAbv`KZzed7ejko>QLZ zbUYr%SOj6reRR28z&YYFqQ`b!w|Lp#0-hA(S$M@^KH;?D%<7uF4rV9W749Fy6 zfQCuifNE*{umFqD5HLBw(+yD5V?Luvh_NB$vs5Yor-`8eU=9PIy)DteOalM_Bmx3J z8U}9HL|XrKNg~ky@wTww;Hd=wKzoHuBm~8S=ffyAY?{edU4IPjHj8vR}KyMMj0v2k{Gb`*#A_4V!R>%%dghC4Yq+1uGYC@(J;3cETw zl=*XluWM`1yF{DzC-L~%7o`s5goJ%FTpuYCjow;Xa#Qi?^zw^`E~loFLaS?Q2g;7w z+QOQcCXSp+g@u2%S{>P>sHm{=2Y2cvB_+Y(@GC6VsYCatGqbX?#Fj6rtE+`Yy=E{N zjAR3i2dnc@C=|H*SwjN~iR^e5%U~Qkc+jHbR*|&xF)kn+YW8Vvj++pO)3b<6NH}rg zMBee!*OW?>q^io;Y4qK@GchsZ!qD*W5xM*r;mEmwyX-GpuL!nSub$D!Y@~KqX7R<@Wp!)j4q0pl) zE|}mx0d5sMS~O-)S@2*l=5CiMVC zE|;Ux==j~h-@WPvV8Snpi-W_%Ze(qNK)~bi#QcVa)%WjrLzzrw!SX0qCY6p=|G0%{ ziGsN9p5orUdv}b$;c(C>6b1I1vZrUiwKas*O8YzCw30WjZYemh3kyF;uBk zm1l%{%(S$j-d-a`j$XH>vc8^1B0+s{Kg66p+oVv8?{%xItBbyHL2%X8)wQ;!hV_eP zZeDniOeO&+VjFZM0dYY!>7KZEq5qO7c~t0fW#93aua^3jAtsjk1j zzxW;|kwCaU#!hB3U$?bovi#@xusBdDqS!%yd;&CpNl8iBynQu}pPLItX={cN!|-(h zF5HU_1f*9a`V`zQD=Qlr8CeW!-gp=q71gs9)%v=n1rR!1)Wiyru2or`N5Ke;l4ggMFOrLm({&CGh@3FDKb}f z`$>A$y}g8}5b@w0)gPM`wWlc*y%Ng#!T$aVMo`40vJ$mx*Um|-^|QULln()uynFhDO@1e7+u$4ohdV*P5T!NuIq($Z3MXLUS! zhUjGyyPLn}%5|}xlGsha?OEn=F7}}BSy=2CzHwsOF8QV`e)|!UJ$#5YZqb?l0;mIK AcK`qY literal 761 zcmVm_TL}WBm5Uq9Xy!v+&ih|A2WG4F-c$*kCXy1Q!GIEbx6F zwOWk{tJP}oeZMf=cs$OB1Aygn$;7Qzt72h!A1eSvQG{l*nSeE$O+-;tEG+FPX*3!L z!;qO^v)LqKZQEwXg<*(Bqaj>4KVa$S++wj{Cb29lj?pxYy9@LAT)3(kuykCtT7~C% zi6qzS6^f#Oh)^n(;5ZHw=6N2f)v6GV153vd5&HdpB9UPj@wMS_$lbMGuP1aKroggs zvMl3pH~;`#*F~jL0TH2Iuj6vLFk$=s9*JhbjrDpR$LYEbKI1b9?GPhXr ze3hgC`MCLf&fPUl)8aVGvY0VnUthvFCXjpglwsR;A_?zH_?hu^-wN=1h}-Q}JTULV z)oR6jOhtBIF)+`9)9IAjx1P`E!f?6!)^~OMPxY-?XCki(pMr@T!mpYFu)l-L-M79A r_jKR-YTU2-)>q;R>04hhMf%o%wds9inqk}V00000NkvXXu0mjfT}ocF diff --git a/Telegram/Resources/icons/player/player_volume0.png b/Telegram/Resources/icons/player/player_volume0.png deleted file mode 100644 index 9a531489baae902915c4a1bb46c5212919aa209c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^{2(?58;~rMGjRk`9-c0aAsQ2}UNq!mP~c!bko4z& zcH+8bZo@^5J3KC}+^NUFuy}=*XPa%FL9eaPL(zE!^JCveMb`DWve>0fldAas{H}x4 c@5UAKZc8^MvCLYi3N(|!)78&qol`;+0NK1LzyJUM diff --git a/Telegram/Resources/icons/player/player_volume0@2x.png b/Telegram/Resources/icons/player/player_volume0@2x.png deleted file mode 100644 index dbaec7557b3fbf85db5f17402bc758cceb39bb1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^azHG_!3HE3EPS&CNacCDIEHw1zP)P5b-;j!*Pj(v53sOtTDYP0&;v=X#_$0C znrpr_ec@MHg#CWV8yHUx4Q+jR-=;HEhV6WTM$W^6ik9{Rwl+L@AD7?e)|qzopr02$FeaR2}S diff --git a/Telegram/Resources/icons/player/player_volume0@3x.png b/Telegram/Resources/icons/player/player_volume0@3x.png deleted file mode 100644 index 5b7750508315e6b304a3b5f0cf00c155de88593d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)sXfMA@HMULI}2Pdl>u}+O};R zhT#*uZYJ(tv zd7hs(1Hi!xxZ^l%yqqoek(4Q)75yqL*cZ3-RZ4K`kJW$K+_pKUHx3vIVCg!06ID}5dZ)H diff --git a/Telegram/Resources/icons/player/player_volume1@2x.png b/Telegram/Resources/icons/player/player_volume1@2x.png deleted file mode 100644 index 933e8ca9942210ffcf59c213a3149c2c5a12bb17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^azHG_!3HE3EPS&CM0vV6hIn+|z3Rx<-m;$oI&h2+U{6LJi@qIw~j`m%Ll&|p4Tc~Hy zyzap5LN&XSzuFjf^oI1OT>ZM0VMf^6qbssQ*YX$be0Oxut2xG7&&#BJ?qBuVCAc)& zZ|j`Nx<}ZL?8!3o3{Bl~Lo@cIdA*R%JGS!$;T0{r58K+X>^ls!sJ^O<{mp}EJbt-7 RsX(_fc)I$ztaD0e0syrxTg(6e diff --git a/Telegram/Resources/icons/player/player_volume1@3x.png b/Telegram/Resources/icons/player/player_volume1@3x.png deleted file mode 100644 index 1e9daea63e8f405fea06875ac7561f908ef27bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)OusIj1DX!#+nZMj6dIJA|}Qk^?^4Y_~S z?EXA(zi>c=&hJCYPdowuy`oyJ7A+PF%BI5p)q~sZHu=6!A5&YjWm&Y}?>~WSi|%&2 zbUYrv1lJPnx-MNVmv6zfLyyN}y5H|Vf@_1;G>zu-`LEd8pbf*I^?IEftQ_6xbZEER z6#^?o+qO+%7#0RALpzQ`aU7QdD?ty3L%LqCrNLFAwWJrXG*m1qr9{8qFW=y)>s|8p zNHd*I%iSU>(L_X!`_cyIP65kdd}bX~{kbOHdJ&u18hQLK*&Gyr6m z&7RK_CA-J7`A6rCuIrEEIF1YdUI}_On>~)V+imd%Dz?0A*zD73SUnM?l;!?ml@FI^ z(-1-+PmM+++-|o@7Of(=FUw#s;PvK`mTlV z9;(44*I^HpaI1Ilb=2B%7Y}uvfL%NrmWa8qOjz5Y1(*NJ<&;u@pVWPB`DCE?)LKJz z>2NgfIBJprg2$ctRpY7ONe<`sdg#jZ;3z(b#^4C9)jK_7u!oQI8HRiKcG$v?z#4uG cmiXx0FEA+vNfqZb0{{R307*qoM6N<$f`E2pSpWb4 diff --git a/Telegram/Resources/icons/player/player_volume2@3x.png b/Telegram/Resources/icons/player/player_volume2@3x.png deleted file mode 100644 index 824386b9d9f5f59025ebefe409d3353e19cf7479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)SfW#Uvd}Z6zY1 z&pX_=P5tP-xOJT-?~{C!CVhJHA#!@o0RVunh~MwWZnulpa&Ua-!J$wHMN!1dA{HHu zMsc}ZUV({4$K!F_ZnrnVM56QgJnr{gcIalaiR1AYtJNxo!{OJUIgZ24X7e!E4!vHl@pL*NBBG)wn9Jpy zMe{t5yWQ?7upL?yMN|~U?9p}o9{7FWVzG$FREy-6F523cr95HOR;Tw&7bwAm|35?N@Y>h<~=#^>{y_YQ{xnP@~rp6Aa% zxB4&h2i{Qqe&4(zMex*Df4*&qrG!3e%0sw%fX}~ay*<0}Wu0 zy9fQ2pT|$@Kl_{K^D zl&ycehEK_4K2GL;A9~+#F}zAin{?&eN47MJtJxcF$y8+<9J0KBzDi6*kyC|{;kL+{ zX+00M{xz;Iw@aARQS|+qLfy5yr+?KvKed3d+Cr-2Gqbhj*`444$rjF6*2U FngAR`IC}s9 diff --git a/Telegram/Resources/icons/player/player_volume3@2x.png b/Telegram/Resources/icons/player/player_volume3@2x.png deleted file mode 100644 index 501e14e1413bf9496a7ced6c49ec8497d536297c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmV*O zKI&CW@ILC@V}kcl3)U4Hcpud;TVB=QM_I)d{>cx`T7VgT8B8m@5?)rQj>o&R9b*jO zHFN0ru><{%IcF$uI~!w$x2S@P;n)*mYaVy`sm>>TU s@bDy>hZ&wkYp{i{^2oUwtnuvFCq`_1GrPv3$^ZZW07*qoM6N<$f|XZk5C8xG diff --git a/Telegram/Resources/icons/player/player_volume3@3x.png b/Telegram/Resources/icons/player/player_volume3@3x.png deleted file mode 100644 index 24ff5175cec95397424e24f12e8ae98142322d9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmV-x1C;!UP)smd z3?i9K;%n3`x}&25cXxLJ*b4gS=m?jWmx#q;&@>H-qPUOl?(W9x>uXuC74+NNo2h>~ zoyO46kb7uN(}W+DMc>@q;N#;%7`L*r0lhv$ z7Wzy~Oz=74@wgm15{V$6&sPPmgia=t&~=^nDHe+YyuH1hw?92SSw~MzP2v6hy=rhJ zw9n^5Z*MPdZ*O@&UDwgt+G_fXuqYG?AX^Ft&@8*Ux=c^f<>h5lyJ?I=D} zZSn2%^K13v%c_T~|-Urluy|mdoYp3!O+LgfmQE-aW3auIdY2E~Vb`zMH5t zXJ%$xd7oBQ6@7huCh(8%(^k<$gu%f<$5$@VXcUHF@IH>NTv&#~VWB2r2c6Ak`5MtM z4CmK~EJL9XuCK2hK_4C-;_U1Ui;Ih8SK|#04fa>#ESsB~f2HoRySvNBXEGV6s#-mo zodvflOp2mlV`IZKUeh$zUOk%S{QSHlwLGuai?+5lOioS;*UjqcYH45lXd=Ss=&0?g z>E`BU*;4V^+M4rKQ z7#kb=oi70_gTWw9PEMrJ66rje==1TszrXJa`Y#5f7k1OO5+ncs002ovPDHLkV1f!l Bpt=A6 diff --git a/Telegram/SourceFiles/media/player/media_player.style b/Telegram/SourceFiles/media/player/media_player.style index 22a726790a..ff24886a91 100644 --- a/Telegram/SourceFiles/media/player/media_player.style +++ b/Telegram/SourceFiles/media/player/media_player.style @@ -29,12 +29,11 @@ mediaPlayerButton: MediaPlayerButton { mediaPlayerButtonSize: size(25px, 30px); mediaPlayerButtonPosition: point(5px, 10px); -mediaPlayerSkipIconPosition: point(5px, 12px); mediaPlayerHeight: 35px; mediaPlayerPadding: 8px; mediaPlayerNameTop: 22px; -mediaPlayerPlayLeft: 7px; +mediaPlayerPlayLeft: 9px; mediaPlayerPlaySkip: 1px; mediaPlayerPlayTop: 0px; mediaPlayerCloseRight: 0px; @@ -47,61 +46,65 @@ mediaPlayerTime: LabelSimple(defaultLabelSimple) { } mediaPlayerRepeatButton: IconButton { - width: 31px; - height: 30px; + width: 30px; + height: 34px; icon: icon { - { "player/player_repeat", mediaPlayerActiveFg, point(9px, 11px) } + { "player/player_repeat", mediaPlayerActiveFg } }; - iconPosition: point(0px, 0px); + iconPosition: point(3px, 6px); - rippleAreaPosition: point(3px, 5px); - rippleAreaSize: 25px; + rippleAreaPosition: point(2px, 5px); + rippleAreaSize: 26px; ripple: RippleAnimation(defaultRippleAnimation) { color: lightButtonBgOver; } } mediaPlayerRepeatDisabledIcon: icon { - { "player/player_repeat", menuIconFg, point(9px, 11px)} + { "player/player_repeat", menuIconFg } }; mediaPlayerRepeatDisabledIconOver: icon { - { "player/player_repeat", menuIconFgOver, point(9px, 11px)} + { "player/player_repeat", menuIconFgOver } }; mediaPlayerRepeatOneIcon: icon { - { "player/player_repeat_one", mediaPlayerActiveFg, point(9px, 11px)} + { "player/player_repeat_single", mediaPlayerActiveFg } }; mediaPlayerRepeatOneDisabledIcon: icon { - { "player/player_repeat_one", menuIconFg, point(9px, 11px)} + { "player/player_repeat_single", menuIconFg } }; mediaPlayerRepeatOneDisabledIconOver: icon { - { "player/player_repeat_one", menuIconFgOver, point(9px, 11px)} + { "player/player_repeat_single", menuIconFgOver } }; mediaPlayerReverseIcon: icon { - { "player/player_reverse", mediaPlayerActiveFg, point(9px, 11px)} + { "player/player_order", mediaPlayerActiveFg } }; mediaPlayerReverseDisabledIcon: icon { - { "player/player_reverse", menuIconFg, point(9px, 11px)} + { "player/player_order", menuIconFg } }; mediaPlayerReverseDisabledIconOver: icon { - { "player/player_reverse", menuIconFgOver, point(9px, 11px)} + { "player/player_order", menuIconFgOver } }; mediaPlayerShuffleIcon: icon { - { "player/player_shuffle", mediaPlayerActiveFg, point(9px, 11px)} -}; -mediaPlayerShuffleDisabledIcon: icon { - { "player/player_shuffle", menuIconFg, point(9px, 11px)} -}; -mediaPlayerShuffleDisabledIconOver: icon { - { "player/player_shuffle", menuIconFgOver, point(9px, 11px)} -}; -mediaPlayerRepeatReverseIcon: icon { - { "player/player_repeat_reverse", mediaPlayerActiveFg, point(9px, 11px)} -}; -mediaPlayerRepeatShuffleIcon: icon { - { "player/player_repeat_shuffle", mediaPlayerActiveFg, point(9px, 11px)} + { "player/player_shuffle", mediaPlayerActiveFg } }; mediaPlayerRepeatDisabledRippleBg: windowBgOver; +mediaPlayerPlayButton: IconButton(mediaPlayerRepeatButton) { + width: 24px; + icon: icon{ + { "player/player_play", mediaPlayerActiveFg } + }; + iconPosition: point(0px, 5px); + rippleAreaPosition: point(0px, 5px); + rippleAreaSize: 24px; +} +mediaPlayerPauseIcon: icon{ + { "player/player_pause", mediaPlayerActiveFg } +}; +mediaPlayerCancelIcon: icon{ + { "player/panel_close", mediaPlayerActiveFg } +}; + mediaPlayerSpeedButton: IconButton { width: 31px; height: 30px; @@ -152,66 +155,52 @@ mediaPlayerPopupMenu: PopupMenu(defaultPopupMenu) { mediaPlayerMenuCheck: icon {{ "player/player_check", mediaPlayerActiveFg }}; mediaPlayerVolumeIcon0: icon { - { "player/player_volume0", mediaPlayerActiveFg }, + { "player/player_mini_off", mediaPlayerActiveFg }, }; mediaPlayerVolumeIcon1: icon { - { "player/player_volume1", mediaPlayerActiveFg }, + { "player/player_mini_half", mediaPlayerActiveFg }, }; -mediaPlayerVolumeIcon2: icon { - { "player/player_volume2", mediaPlayerActiveFg }, -}; -mediaPlayerVolumeIcon3: icon { - { "player/player_volume3", mediaPlayerActiveFg }, -}; -mediaPlayerVolumeToggle: IconButton { - width: 31px; - height: 30px; - - icon: mediaPlayerVolumeIcon0; - iconPosition: point(8px, 11px); - - rippleAreaPosition: point(3px, 5px); - rippleAreaSize: 25px; - ripple: RippleAnimation(defaultRippleAnimation) { - color: lightButtonBgOver; - } +mediaPlayerVolumeToggle: IconButton(mediaPlayerRepeatButton) { + width: 34px; + icon: icon { + { "player/player_mini_full", mediaPlayerActiveFg }, + }; + iconPosition: point(5px, 6px); + rippleAreaPosition: point(4px, 5px); } mediaPlayerVolumeMargin: 10px; mediaPlayerVolumeSize: size(27px, 100px); -mediaPlayerNextButton: IconButton(mediaPlayerRepeatButton) { - width: 25px; +mediaPlayerNextButton: IconButton(mediaPlayerPlayButton) { icon: icon { - { "player/player_next", mediaPlayerActiveFg, mediaPlayerSkipIconPosition }, + { "player/player_forward", mediaPlayerActiveFg }, }; - - rippleAreaPosition: point(0px, 5px); } mediaPlayerNextDisabledIcon: icon { - { "player/player_next", mediaPlayerInactiveFg, mediaPlayerSkipIconPosition }, + { "player/player_forward", mediaPlayerInactiveFg }, }; mediaPlayerPreviousButton: IconButton(mediaPlayerNextButton) { icon: icon { - { "player/player_next-flip_horizontal", mediaPlayerActiveFg, mediaPlayerSkipIconPosition }, + { "player/player_backward", mediaPlayerActiveFg }, }; - rippleAreaPosition: point(1px, 5px); } mediaPlayerPreviousDisabledIcon: icon { - { "player/player_next-flip_horizontal", mediaPlayerInactiveFg, mediaPlayerSkipIconPosition }, + { "player/player_backward", mediaPlayerInactiveFg }, }; -touchBarIconPlayerClose: icon {{ "player/player_close", windowFg }}; +touchBarIconPlayerClose: icon {{ "player/panel_close", windowFg }}; touchBarIconPlayerPlay: icon {{ "media_play", windowFg }}; touchBarIconPlayerPause: icon {{ "media_pause", windowFg }}; -touchBarIconPlayerNext: icon {{ "player/player_next", windowFg }}; -touchBarIconPlayerPrevious: icon {{ "player/player_next-flip_horizontal", windowFg }}; +touchBarIconPlayerNext: icon {{ "player/player_forward", windowFg }}; +touchBarIconPlayerPrevious: icon {{ "player/player_backward", windowFg }}; mediaPlayerClose: IconButton(mediaPlayerRepeatButton) { - width: 37px; - icon: icon {{ "player/player_close", menuIconFg, point(10px, 12px) }}; - iconOver: icon {{ "player/player_close", menuIconFgOver, point(10px, 12px) }}; + width: 39px; + icon: icon {{ "player/panel_close", menuIconFg }}; + iconOver: icon {{ "player/panel_close", menuIconFgOver }}; + iconPosition: point(5px, 6px); - rippleAreaPosition: point(3px, 5px); + rippleAreaPosition: point(4px, 5px); ripple: RippleAnimation(defaultRippleAnimation) { color: windowBgOver; } @@ -245,25 +234,18 @@ mediaPlayerPanelMarginBottom: 10px; mediaPlayerPanelWidth: 344px; mediaPlayerCoverHeight: 102px; -mediaPlayerPanelClose: IconButton(mediaPlayerClose) { - width: 43px; - height: 28px; - icon: icon {{ "player/player_close", menuIconFg, point(16px, 14px) }}; - iconOver: icon {{ "player/player_close", menuIconFgOver, point(16px, 14px) }}; -} - mediaPlayerPanelNextButton: IconButton(mediaPlayerRepeatButton) { width: 37px; - icon: icon {{ "player/player_panel_next", mediaPlayerActiveFg, point(10px, 10px) }}; + icon: icon {{ "player/player_forward", mediaPlayerActiveFg, point(6px, 4px) }}; } mediaPlayerPanelNextDisabledIcon: icon { - { "player/player_panel_next", mediaPlayerInactiveFg, point(10px, 10px) }, + { "player/player_forward", mediaPlayerInactiveFg, point(6px, 4px) }, }; mediaPlayerPanelPreviousButton: IconButton(mediaPlayerPanelNextButton) { - icon: icon {{ "player/player_panel_next-flip_horizontal", mediaPlayerActiveFg, point(10px, 10px) }}; + icon: icon {{ "player/player_backward", mediaPlayerActiveFg, point(6px, 4px) }}; } mediaPlayerPanelPreviousDisabledIcon: icon { - { "player/player_panel_next-flip_horizontal", mediaPlayerInactiveFg, point(10px, 10px) }, + { "player/player_backward", mediaPlayerInactiveFg, point(6px, 4px) }, }; mediaPlayerPanelPadding: 16px; diff --git a/Telegram/SourceFiles/media/player/media_player_instance.cpp b/Telegram/SourceFiles/media/player/media_player_instance.cpp index a16b66e6f7..35f042f6d0 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.cpp +++ b/Telegram/SourceFiles/media/player/media_player_instance.cpp @@ -497,6 +497,7 @@ bool Instance::moveInPlaylist( const auto jumpById = [&](FullMsgId id) { return jumpByItem(data->history->owner().message(id)); }; + const auto repeatAll = (repeat(data) == RepeatMode::All); if (order(data) == OrderMode::Shuffle) { const auto raw = data->shuffleData.get(); @@ -516,7 +517,7 @@ bool Instance::moveInPlaylist( raw->nonPlayedIds.erase(i); } } - if (repeat(data) == RepeatMode::All) { + if (repeatAll) { ensureShuffleMove(data, delta); } if (raw->nonPlayedIds.empty() @@ -544,7 +545,8 @@ bool Instance::moveInPlaylist( const auto newIndex = *data->playlistIndex + (order(data) == OrderMode::Reverse ? -delta : delta); - const auto useIndex = (!data->playlistSlice + const auto useIndex = (!repeatAll + || !data->playlistSlice || data->playlistSlice->skippedAfter() != 0 || data->playlistSlice->skippedBefore() != 0 || !data->playlistSlice->size()) @@ -553,7 +555,7 @@ bool Instance::moveInPlaylist( % int(data->playlistSlice->size())); if (const auto item = itemByIndex(data, useIndex)) { return jumpByItem(item); - } else if (repeat(data) == RepeatMode::All + } else if (repeatAll && data->playlistOtherSlice && data->playlistOtherSlice->size() > 0) { const auto &other = *data->playlistOtherSlice; diff --git a/Telegram/SourceFiles/media/player/media_player_repeat_controls.cpp b/Telegram/SourceFiles/media/player/media_player_repeat_controls.cpp index 3eb372d8ec..f57baf109b 100644 --- a/Telegram/SourceFiles/media/player/media_player_repeat_controls.cpp +++ b/Telegram/SourceFiles/media/player/media_player_repeat_controls.cpp @@ -53,8 +53,8 @@ void PrepareRepeatDropdown(not_null dropdown) { const auto shuffled = (mode == OrderMode::Shuffle); shuffle->setIconOverride(shuffled ? &st::mediaPlayerShuffleIcon - : &st::mediaPlayerShuffleDisabledIcon, - shuffled ? nullptr : &st::mediaPlayerShuffleDisabledIconOver); + : &st::mediaPlayerShuffleIcon, + shuffled ? nullptr : &st::mediaPlayerShuffleIcon); shuffle->setRippleColorOverride( shuffled ? nullptr : &st::mediaPlayerRepeatDisabledRippleBg); const auto reversed = (mode == OrderMode::Reverse); diff --git a/Telegram/SourceFiles/media/player/media_player_widget.cpp b/Telegram/SourceFiles/media/player/media_player_widget.cpp index 2d016c0c04..da0be18201 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.cpp +++ b/Telegram/SourceFiles/media/player/media_player_widget.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/shadow.h" #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" +#include "ui/wrap/fade_wrap.h" #include "ui/effects/ripple_animation.h" #include "ui/text/format_values.h" #include "ui/text/format_song_document_name.h" @@ -236,11 +237,13 @@ Widget::Widget(QWidget *parent, not_null session) : RpWidget(parent) , _session(session) , _nameLabel(this, st::mediaPlayerName) -, _timeLabel(this, st::mediaPlayerTime) -, _playPause(this) -, _volumeToggle(this, st::mediaPlayerVolumeToggle) -, _repeatToggle(this, st::mediaPlayerRepeatButton) -, _playbackSpeed(this, st::mediaPlayerSpeedButton) +, _rightControls(this, object_ptr(this)) +, _timeLabel(rightControls(), st::mediaPlayerTime) +, _playPause(this, st::mediaPlayerPlayButton) +, _volumeToggle(rightControls(), st::mediaPlayerVolumeToggle) +, _repeatToggle(rightControls(), st::mediaPlayerRepeatButton) +, _orderToggle(rightControls(), st::mediaPlayerRepeatButton) +, _playbackSpeed(rightControls(), st::mediaPlayerSpeedButton) , _close(this, st::mediaPlayerClose) , _shadow(this) , _playbackSlider(this, st::mediaPlayerPlayback) @@ -249,6 +252,8 @@ Widget::Widget(QWidget *parent, not_null session) setMouseTracking(true); resize(width(), st::mediaPlayerHeight + st::lineWidth); + _rightControls->show(anim::type::instant); + _nameLabel->setAttribute(Qt::WA_TransparentForMouseEvents); _timeLabel->setAttribute(Qt::WA_TransparentForMouseEvents); @@ -290,13 +295,16 @@ Widget::Widget(QWidget *parent, not_null session) updateVolumeToggleIcon(); }, lifetime()); - rpl::combine( - Core::App().settings().playerRepeatModeValue(), - Core::App().settings().playerOrderModeValue() + Core::App().settings().playerRepeatModeValue( ) | rpl::start_with_next([=] { updateRepeatToggleIcon(); }, lifetime()); + Core::App().settings().playerOrderModeValue( + ) | rpl::start_with_next([=] { + updateOrderToggleIcon(); + }, lifetime()); + _repeatToggle->setClickedCallback([=] { auto &settings = Core::App().settings(); settings.setPlayerRepeatMode([&] { @@ -342,23 +350,18 @@ Widget::Widget(QWidget *parent, not_null session) }, lifetime()); setType(AudioMsgId::Type::Song); - _playPause->finishTransform(); + //_playPause->finishTransform(); } void Widget::updateVolumeToggleIcon() { - auto icon = []() -> const style::icon * { - auto volume = Core::App().settings().songVolume(); - if (volume > 0) { - if (volume < 1 / 3.) { - return &st::mediaPlayerVolumeIcon1; - } else if (volume < 2 / 3.) { - return &st::mediaPlayerVolumeIcon2; - } - return &st::mediaPlayerVolumeIcon3; - } - return nullptr; - }; - _volumeToggle->setIconOverride(icon()); + _volumeToggle->setIconOverride([] { + const auto volume = Core::App().settings().songVolume(); + return (volume == 0.) + ? &st::mediaPlayerVolumeIcon0 + : (volume < 0.5) + ? &st::mediaPlayerVolumeIcon1 + : nullptr; + }()); } void Widget::setCloseCallback(Fn callback) { @@ -401,7 +404,7 @@ void Widget::hideShadow() { } QPoint Widget::getPositionForVolumeWidget() const { - auto x = _volumeToggle->x(); + auto x = _volumeToggle->x() + _rightControls->x(); x += (_volumeToggle->width() - st::mediaPlayerVolumeSize.width()) / 2; if (rtl()) x = width() - x - st::mediaPlayerVolumeSize.width(); return QPoint(x, height()); @@ -412,18 +415,22 @@ void Widget::volumeWidgetCreated(Dropdown *widget) { } QPoint Widget::getPositionForRepeatWidget() const { - auto x = _repeatToggle->x(); - x += (_repeatToggle->width() - st::mediaPlayerVolumeSize.width()) / 2; + auto x = _orderToggle->x() + _rightControls->x(); + x += (_orderToggle->width() - st::mediaPlayerVolumeSize.width()) / 2; if (rtl()) x = width() - x - st::mediaPlayerVolumeSize.width(); return QPoint(x, height()); } void Widget::repeatWidgetCreated(Dropdown *widget) { - _repeatToggle->installEventFilter(widget); + _orderToggle->installEventFilter(widget); } Widget::~Widget() = default; +not_null Widget::rightControls() { + return _rightControls->entity(); +} + void Widget::handleSeekProgress(float64 progress) { if (!_lastDurationMs) return; @@ -452,19 +459,29 @@ void Widget::resizeEvent(QResizeEvent *e) { } void Widget::updateControlsGeometry() { - auto right = st::mediaPlayerCloseRight; - _close->moveToRight(right, st::mediaPlayerPlayTop); right += _close->width(); + _close->moveToRight(st::mediaPlayerCloseRight, st::mediaPlayerPlayTop); + auto right = 0; if (hasPlaybackSpeedControl()) { - _playbackSpeed->moveToRight(right, st::mediaPlayerPlayTop); right += _playbackSpeed->width(); + _playbackSpeed->moveToRight(right, 0); right += _playbackSpeed->width(); } - _repeatToggle->moveToRight(right, st::mediaPlayerPlayTop); right += _repeatToggle->width(); - _volumeToggle->moveToRight(right, st::mediaPlayerPlayTop); right += _volumeToggle->width(); + _repeatToggle->moveToRight(right, 0); right += _repeatToggle->width(); + _orderToggle->moveToRight(right, 0); right += _orderToggle->width(); + _volumeToggle->moveToRight(right, 0); right += _volumeToggle->width(); + + updateControlsWrapGeometry(); updatePlayPrevNextPositions(); _playbackSlider->setGeometry(0, height() - st::mediaPlayerPlayback.fullWidth, width(), st::mediaPlayerPlayback.fullWidth); } +void Widget::updateControlsWrapGeometry() { + rightControls()->resize(getTimeRight() + _timeLabel->width(), _repeatToggle->height()); + _rightControls->moveToRight( + st::mediaPlayerCloseRight + _close->width(), + st::mediaPlayerPlayTop); +} + void Widget::paintEvent(QPaintEvent *e) { Painter p(this); auto fill = e->rect().intersected(QRect(0, 0, width(), st::mediaPlayerHeight)); @@ -504,10 +521,10 @@ void Widget::mouseReleaseEvent(QMouseEvent *e) { } void Widget::updateOverLabelsState(QPoint pos) { - auto left = getLabelsLeft(); - auto right = getLabelsRight(); - auto labels = myrtlrect(left, 0, width() - right - left, height() - st::mediaPlayerPlayback.fullWidth); - auto over = labels.contains(pos); + const auto left = getNameLeft(); + const auto right = getNameRight(); + const auto labels = myrtlrect(left, 0, width() - right - left, height() - st::mediaPlayerPlayback.fullWidth); + const auto over = labels.contains(pos); updateOverLabelsState(over); } @@ -531,7 +548,7 @@ void Widget::updatePlayPrevNextPositions() { updateLabelsGeometry(); } -int Widget::getLabelsLeft() const { +int Widget::getNameLeft() const { auto result = st::mediaPlayerPlayLeft + _playPause->width(); if (_previousTrack) { result += _previousTrack->width() + st::mediaPlayerPlaySkip + _nextTrack->width() + st::mediaPlayerPlaySkip; @@ -540,10 +557,18 @@ int Widget::getLabelsLeft() const { return result; } -int Widget::getLabelsRight() const { - auto result = st::mediaPlayerCloseRight + _close->width(); +int Widget::getNameRight() const { + return st::mediaPlayerCloseRight + + _close->width() + + st::mediaPlayerPadding; +} + +int Widget::getTimeRight() const { + auto result = 0; if (_type == AudioMsgId::Type::Song) { - result += _repeatToggle->width() + _volumeToggle->width(); + result += _repeatToggle->width() + + _orderToggle->width() + + _volumeToggle->width(); } if (hasPlaybackSpeedControl()) { result += _playbackSpeed->width(); @@ -553,49 +578,57 @@ int Widget::getLabelsRight() const { } void Widget::updateLabelsGeometry() { - auto left = getLabelsLeft(); - auto right = getLabelsRight(); - - auto widthForName = width() - left - right; - widthForName -= _timeLabel->width() + 2 * st::normalFont->spacew; + const auto left = getNameLeft(); + const auto widthForName = width() + - left + - getNameRight(); _nameLabel->resizeToWidth(widthForName); - _nameLabel->moveToLeft(left, st::mediaPlayerNameTop - st::mediaPlayerName.style.font->ascent); + + const auto right = getTimeRight(); _timeLabel->moveToRight(right, st::mediaPlayerNameTop - st::mediaPlayerTime.font->ascent); + + updateControlsWrapGeometry(); } void Widget::updateRepeatToggleIcon() { - const auto type = AudioMsgId::Type::Song; - const auto repeat = Core::App().settings().playerRepeatMode(); - const auto order = Core::App().settings().playerOrderMode(); - if (repeat == RepeatMode::None && order == OrderMode::Default) { + switch (Core::App().settings().playerRepeatMode()) { + case RepeatMode::None: _repeatToggle->setIconOverride( &st::mediaPlayerRepeatDisabledIcon, &st::mediaPlayerRepeatDisabledIconOver); _repeatToggle->setRippleColorOverride( &st::mediaPlayerRepeatDisabledRippleBg); - return; + break; + case RepeatMode::One: + _repeatToggle->setIconOverride(&st::mediaPlayerRepeatOneIcon); + _repeatToggle->setRippleColorOverride(nullptr); + break; + case RepeatMode::All: + _repeatToggle->setIconOverride(nullptr); + _repeatToggle->setRippleColorOverride(nullptr); + break; + } +} + +void Widget::updateOrderToggleIcon() { + switch (Core::App().settings().playerOrderMode()) { + case OrderMode::Default: + _orderToggle->setIconOverride( + &st::mediaPlayerReverseDisabledIcon, + &st::mediaPlayerReverseDisabledIconOver); + _orderToggle->setRippleColorOverride( + &st::mediaPlayerRepeatDisabledRippleBg); + break; + case OrderMode::Reverse: + _orderToggle->setIconOverride(nullptr); + _orderToggle->setRippleColorOverride(nullptr); + break; + case OrderMode::Shuffle: + _orderToggle->setIconOverride(&st::mediaPlayerShuffleIcon); + _orderToggle->setRippleColorOverride(nullptr); + break; } - const auto &icon = [&]() -> const style::icon& { - switch (repeat) { - case RepeatMode::None: - switch (order) { - case OrderMode::Reverse: return st::mediaPlayerReverseIcon; - case OrderMode::Shuffle: return st::mediaPlayerShuffleIcon; - } - break; - case RepeatMode::One: return st::mediaPlayerRepeatOneIcon; - case RepeatMode::All: - switch (order) { - case OrderMode::Default: return st::mediaPlayerRepeatButton.icon; - case OrderMode::Reverse: return st::mediaPlayerRepeatReverseIcon; - case OrderMode::Shuffle: return st::mediaPlayerRepeatShuffleIcon; - } - break; - } - Unexpected("Repeat / order values in Settings."); - }(); - _repeatToggle->setIconOverride(&icon); } void Widget::checkForTypeChange() { @@ -662,15 +695,11 @@ void Widget::handleSongUpdate(const TrackState &state) { if (instance()->isSeeking(_type)) { showPause = true; } - auto buttonState = [audio = state.id.audio(), showPause] { - if (audio->loading()) { - return ButtonState::Cancel; - } else if (showPause) { - return ButtonState::Pause; - } - return ButtonState::Play; - }; - _playPause->setState(buttonState()); + _playPause->setIconOverride(state.id.audio()->loading() + ? &st::mediaPlayerCancelIcon + : showPause + ? &st::mediaPlayerPauseIcon + : nullptr); updateTimeText(state); } diff --git a/Telegram/SourceFiles/media/player/media_player_widget.h b/Telegram/SourceFiles/media/player/media_player_widget.h index aeb8131f9d..36f2f3ae26 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.h +++ b/Telegram/SourceFiles/media/player/media_player_widget.h @@ -19,6 +19,8 @@ class LabelSimple; class IconButton; class PlainShadow; class FilledSlider; +template +class FadeWrap; } // namespace Ui namespace Media { @@ -72,19 +74,24 @@ protected: void mouseReleaseEvent(QMouseEvent *e) override; private: + [[nodiscard]] not_null rightControls(); + void handleSeekProgress(float64 progress); void handleSeekFinished(float64 progress); - int getLabelsLeft() const; - int getLabelsRight() const; + [[nodiscard]] int getNameLeft() const; + [[nodiscard]] int getNameRight() const; + [[nodiscard]] int getTimeRight() const; void updateOverLabelsState(QPoint pos); void updateOverLabelsState(bool over); void updatePlayPrevNextPositions(); void updateLabelsGeometry(); void updateRepeatToggleIcon(); + void updateOrderToggleIcon(); void updateControlsVisibility(); void updateControlsGeometry(); + void updateControlsWrapGeometry(); void createPrevNextButtons(); void destroyPrevNextButtons(); @@ -123,12 +130,14 @@ private: class PlayButton; class SpeedButton; object_ptr _nameLabel; + object_ptr> _rightControls; object_ptr _timeLabel; object_ptr _previousTrack = { nullptr }; - object_ptr _playPause; + object_ptr _playPause; object_ptr _nextTrack = { nullptr }; object_ptr _volumeToggle; object_ptr _repeatToggle; + object_ptr _orderToggle; object_ptr _playbackSpeed; object_ptr _close; object_ptr _shadow = { nullptr };