From 38b5cab006fe256de7115be3d7f925d62c4c684c Mon Sep 17 00:00:00 2001 From: AlexeyZavar <sltkval1@gmail.com> Date: Mon, 11 Nov 2024 16:37:55 +0300 Subject: [PATCH] feat: new badges --- .../ayu/{exterabadge.png => extera_badge.png} | Bin ...exterabadge@2x.png => extera_badge@2x.png} | Bin ...exterabadge@3x.png => extera_badge@3x.png} | Bin .../Resources/icons/ayu/extera_official.png | Bin 0 -> 506 bytes .../icons/ayu/extera_official@2x.png | Bin 0 -> 882 bytes .../icons/ayu/extera_official@3x.png | Bin 0 -> 1249 bytes Telegram/SourceFiles/ayu/ui/ayu_icons.style | 3 ++- .../info/profile/info_profile_badge.cpp | 15 ++++++++----- .../info/profile/info_profile_badge.h | 4 ++-- .../info/profile/info_profile_cover.cpp | 20 ++++++++++++------ 10 files changed, 28 insertions(+), 14 deletions(-) rename Telegram/Resources/icons/ayu/{exterabadge.png => extera_badge.png} (100%) rename Telegram/Resources/icons/ayu/{exterabadge@2x.png => extera_badge@2x.png} (100%) rename Telegram/Resources/icons/ayu/{exterabadge@3x.png => extera_badge@3x.png} (100%) create mode 100644 Telegram/Resources/icons/ayu/extera_official.png create mode 100644 Telegram/Resources/icons/ayu/extera_official@2x.png create mode 100644 Telegram/Resources/icons/ayu/extera_official@3x.png diff --git a/Telegram/Resources/icons/ayu/exterabadge.png b/Telegram/Resources/icons/ayu/extera_badge.png similarity index 100% rename from Telegram/Resources/icons/ayu/exterabadge.png rename to Telegram/Resources/icons/ayu/extera_badge.png diff --git a/Telegram/Resources/icons/ayu/exterabadge@2x.png b/Telegram/Resources/icons/ayu/extera_badge@2x.png similarity index 100% rename from Telegram/Resources/icons/ayu/exterabadge@2x.png rename to Telegram/Resources/icons/ayu/extera_badge@2x.png diff --git a/Telegram/Resources/icons/ayu/exterabadge@3x.png b/Telegram/Resources/icons/ayu/extera_badge@3x.png similarity index 100% rename from Telegram/Resources/icons/ayu/exterabadge@3x.png rename to Telegram/Resources/icons/ayu/extera_badge@3x.png diff --git a/Telegram/Resources/icons/ayu/extera_official.png b/Telegram/Resources/icons/ayu/extera_official.png new file mode 100644 index 0000000000000000000000000000000000000000..8786c7c1477c11afa5fce35ab3d432fd13e8090f GIT binary patch literal 506 zcmV<W0R{evP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0gp*UK~#7F#g;LS z!Y~j;KWHfci3W)Z3Ml9}1qYz!5*&b2a24q3p@s$uD4>BZMUo<scJ(bea_n)Gjfi-X zMda8sp6{6<4FJEWktS;9r|iPXWP<5*iX=&JyWMcV-%IUlpoBy;%wcl9Ue&1NfW~^g z9$Kvy+U+(vosPIUj$=eoq@JJ8CmxT7v&NBVG#WXl^+D$xq~GtWXFDqAl83_~s=}yk zKAJ_8)W(s>r?<&$Hp6&4#`%0!8Ku#3c^y!DX^}R{F`v&d7!1_hcDv0v;NfV)yobzz z&U2G)w~NJMkuz#?I2@cgT`RgyvO8eNHgvjNE=A+7*GowxVIDMdAYIVubi!t{!TbFd z-}zt!j)TkPA}-$V_gJk~Ij!})53`Ll%}HPBhhd2IdaZs*kvy~^I?yk5=}S(SHN+<m z_u7Ya>VW;lR|~t{uCSAGuZ`m%O;h+_6vyKc|G{Y$K@gxSQa2UbH5(qgDk*B$)SR*~ wY935VlJETCNU+j5Sdexqe#AjlYX7SE1NB?O4r(5*c>n+a07*qoM6N<$f-G*{1^@s6 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/ayu/extera_official@2x.png b/Telegram/Resources/icons/ayu/extera_official@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..641fd8c14ad19b40f5d5fdf9849711403892af40 GIT binary patch literal 882 zcmV-&1C9KNP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0|!Y&K~#7F?V3Gn zGC>f>C&2^~QNcnjY_zcO1?>C+wtfqHdq0Kt_SRZ!ubtpaVWEW<DkvzZpu+R;UpO%5 z-tF$O-bKg{4n;gO|DD;H*}1$C(LZ`&-s#2p6W}#IdIF(Ph|=jad-eHzv|6obGMUin zbRylnk>*XDOeUG}JjUZO&F6E{iB<urREk}8Os7+J=|WowWilB`Boe~!83J{QQ1Za{ z_cw*ZVfOm*@xd+-i^W*1t8hM_X}{mo?RKN<^~x^1$9_@SD^dbrXg;5(Xf#T0uv{)_ zG#W8MBBatN!ow}&K|CI33nqh50Kx@7=r#yT{B03J0r(-Wz<v`U6rj2}b)v-sMyBxs znZ^6n0zN-Kh2QZ+fZy*YT?l;?3<gODxm=D4g#s0eMJ8Z2n^C1wvAstob=wL++5h_b zBBz**z6VWTBod*`W@C9jypI}$CeR8?0Wyu5s?lcbj5k1kg*L;gcj5}b>Zlm6Vzfc8 z*CSbA3q<f*@dp9Oy;l9a8N_J4UU#%9RRjQp(ssM0!{PAb^LO4CWhs?Pjx&m?0Kl{D zL4Zorc03-*2{7Kty}XS0AV8*tHE6fn)a`aj6(_3?cs1!k01g?lU=?e%8kNgsB_U1) z;IL!nK>(%)s;t**CIp2^lp39e58%}Ut_SQ2haIS{)oRsNgwxfBO*n>{;r2qvw@we; zhBvHmA^^5njbq-O+$3T+9CG(Wr_)gmAJG`bwi|`pRI<`N&1UoAGu73{bV3vf!giXs z^JPFN-5ZRR@Avzpg1PGQc<Onv(P*$rjpEp9wMZ2i?+fQbvJ<ywfUG7;>%tI17w8pQ z23yY<iOV9hctQcY-HyCMCV@zK02#$?7K;V9@|uyFjSdC__JeMLm6vU2l*a2g;A7N? zwiZJt%x&;K5C}+3(e6Qf8=k#fE^NcX+Xz|h<8>KSh5$0@Q5J25%qaP8KVs7UkPk)A z>RkQnAMzPsuVk}X)<PiG(bK?qnchZ~rwDM9zkfCGnwJ;wAKEB%r+ZQ)LjV8(07*qo IM6N<$f^RjDbpQYW literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/ayu/extera_official@3x.png b/Telegram/Resources/icons/ayu/extera_official@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..234720bbba1d3cf8c70a671bb1d84312010402bd GIT binary patch literal 1249 zcmV<71Rnc|P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!00009a7bBm001F4 z001F40Y#QEU;qFB0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1a?V8K~#7F?VG<Z zEkP8=4-W|v3XOsU1qqQzNJPy)K}+vncz*)_1U0=vMM5JeC=e7#6eLL8o4ohFn@qCr z=FZNXGiP^pV?W6TcbAy&&iOHC&U6sbAF8p^Ni~_&0y(G!a!?E8pccqM7e%JKyPL+x z$7yJ2D7nDf+Z)~8-O<Ct1I4C;B8GVgGB-Czy}i9{?|*%L(aFgPy}!RxETRcCF)=~Y z)6-thUS3|(?d>haAc{bflatBC;rjYIxr(N6CoK^t<o7};YzDy@V}NkTA;8qGuCA!r zY*G=Z2?PP)Y;oaxLr+gn^4aL<D0Ow|1Wh>ar>Cdn>-YEff1d+5^+uyX8Uzc3S&<IW zWkD-d5DV1T*GCHr3p6k=KxGEA>gec*K0iN6g4jtfEiIK^902p4pPwfwB7xvfY{^|2 z85|rGM?jH4p^+#CQXk0{2ob6Zrqv1rl0;FqKvfjSfWX4#N0mDyev>Uwm7H@c=>*o7 zx?tv@7RUixAgrybip0d&aW9q+nw_1c#l=PH@9(FJiwin9I3O;P|D7ce-oWtiFcpOn zWo2b05yoJC-rwIR4p;%8=*B6PumnQ7p7#v0iPG*lu0VLfQ&Uq(3D*~Ifi#L;Hhe`% z<NI7I7z1iWzU5mlf$}JKN<>K`@j(VN79WwE0%7+-OPo+q(wv{4QwSInW|C{SBvT-i z34FI^Y-oyNfH*HNFBHnm%uG_AeSLkkK9eaBDuyAft*z1O>MCgyVqUFa<MQzE&>GpS ziK0ePY<YQ^@*vc_(qN2mBQ~r8X+$h7lS-pyUTLz5X;y(W>OMC&H>8cGc^O0kX|TP$ zt!fTH`|r8<_3!%K?gmtqRN&Hle0(Ht{P_4dS>$Hfx(^VCn?3u0J+%A#`?mM2Gbk(c zaY3%JwY5bX8yi9XBM<WeS-DVW)-Opn+iW~PKhyg9I_>Q2kc2$U3uAnIe6-%T3WO~4 z?Cgy4V0U*nnNb|_h+g3I^fdE+rjv%5aaO(@U@jby@-Q!q&DFi;jAAggyc(A<=)Ju? zuV=N*3uE%>TJs9?d3JZf++3!kZC;%5c;`XBigQ6K;4(E$^Fs2<dD*N)kz20x1v4be zgtW{H5sPaHEP)W&^6FiNskKAXywH`#eZlOdhG}!t#wLWOc}f0vwm|8gKyBcQ;FApS z7n%Y|`WB-fMM#5Lw7I!SV`F29P}u*9O{oL|SdQQ-3v3fBsy{go3h_aCIq9;(7D#)A zUnHpeaA6CCNT69ODhh}raSx)BYZV2OE|Ww8AzhDo$c>AuD3*n|XpfVCRq#hJEgVIV z5`36tWMm{M#+R)<7;XSpXqiUsI24++v6m0hJF@1O6dJEWcS#Ip(TtQMy?lTZ#%IXF zweq#f9jG()oXQ=j^ChI$D8{+f!rOqQgN${kH`=jqm>T+XeE4z4!VPfhIP7L~-bf>` zHy1N8jVh3#HB~Sn8V)&j^`I02m6`gihJ#ul2em*BYJnWo0y+2#*Kjex;2EYc00000 LNkvXXu0mjf&ww|B literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/ayu/ui/ayu_icons.style b/Telegram/SourceFiles/ayu/ui/ayu_icons.style index 4f4934b86..2cf747de7 100644 --- a/Telegram/SourceFiles/ayu/ui/ayu_icons.style +++ b/Telegram/SourceFiles/ayu/ui/ayu_icons.style @@ -30,6 +30,7 @@ inChannelBadgeSelectedIcon: icon {{ "ayu/channel", msgInDateFgSelected }}; outChannelBadgeIcon: icon {{ "ayu/channel", msgOutDateFg }}; outChannelBadgeSelectedIcon: icon {{ "ayu/channel", msgOutDateFgSelected }}; -infoExteraBadge: icon {{ "ayu/exterabadge", profileVerifiedCheckBg }}; +infoExteraOfficialBadge: icon {{ "ayu/extera_official", profileVerifiedCheckBg }}; +infoExteraSupporterBadge: icon {{ "ayu/extera_badge", profileVerifiedCheckBg }}; winEnterWithGuestIcon: icon {{ "ayu/ghost_tray", windowFg }}; diff --git a/Telegram/SourceFiles/info/profile/info_profile_badge.cpp b/Telegram/SourceFiles/info/profile/info_profile_badge.cpp index 170654838..f04ffbf29 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_badge.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_badge.cpp @@ -187,14 +187,19 @@ void Badge::setContent(Content content) { st::attentionButtonFg); }, _view->lifetime()); } break; - case BadgeType::AyuGram: - case BadgeType::Extera: { - const auto icon = &st::infoExteraBadge; - _view->resize(icon->size()); + case BadgeType::Extera: + case BadgeType::ExteraSupporter: { + const auto icon = (_content.badge == BadgeType::Extera + ? &st::infoExteraOfficialBadge + : &st::infoExteraSupporterBadge); + const auto skip = st::infoVerifiedCheckPosition.x(); + _view->resize( + icon->width() + skip, + icon->height()); _view->paintRequest( ) | rpl::start_with_next([=, check = _view.data()]{ Painter p(check); - icon->paint(p, 0, 0, check->width()); + icon->paint(p, skip, 0, check->width()); }, _view->lifetime()); } break; } diff --git a/Telegram/SourceFiles/info/profile/info_profile_badge.h b/Telegram/SourceFiles/info/profile/info_profile_badge.h index cffe08a81..219b8dc3f 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_badge.h +++ b/Telegram/SourceFiles/info/profile/info_profile_badge.h @@ -42,8 +42,8 @@ enum class BadgeType { Premium = 0x04, Scam = 0x08, Fake = 0x10, - AyuGram = 0x20, - Extera = 0x40, + Extera = 0x20, + ExteraSupporter = 0x40, }; inline constexpr bool is_flag_type(BadgeType) { return true; } diff --git a/Telegram/SourceFiles/info/profile/info_profile_cover.cpp b/Telegram/SourceFiles/info/profile/info_profile_cover.cpp index 0ca3ae4b3..7b2796cce 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_cover.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_cover.cpp @@ -369,7 +369,7 @@ Cover::Cover( Window::GifPauseReason::Layer); }, 0, - BadgeType::None | BadgeType::AyuGram | BadgeType::Extera)) + BadgeType::None | BadgeType::Extera | BadgeType::ExteraSupporter)) , _userpic(topic ? nullptr : object_ptr<Ui::UserpicButton>( @@ -418,10 +418,10 @@ Cover::Cover( refreshNameGeometry(width()); }, _name->lifetime()); - if (isAyuGramRelated(getBareID(_peer))) { - _devBadge->setContent(Info::Profile::Badge::Content{BadgeType::AyuGram}); - } else if (isExteraRelated(getBareID(_peer))) { + if (isExteraRelated(getBareID(_peer)) || isAyuGramRelated(getBareID(_peer))) { _devBadge->setContent(Info::Profile::Badge::Content{BadgeType::Extera}); + } else if (false) { + _devBadge->setContent(Info::Profile::Badge::Content{BadgeType::ExteraSupporter}); } else { _devBadge->setContent(Info::Profile::Badge::Content{BadgeType::None}); } @@ -770,7 +770,12 @@ void Cover::refreshNameGeometry(int newWidth) { nameWidth -= st::infoVerifiedCheckPosition.x() + widget->width(); } if (const auto widget = _devBadge->widget()) { - nameWidth -= st::infoVerifiedCheckPosition.x() + widget->width(); + nameWidth -= st::infoVerifiedCheckPosition.x() + + widget->width() + + (_badge->widget() + ? (_badge->widget()->width() + + st::infoVerifiedCheckPosition.x()) + : 0); } auto nameLeft = _st.nameLeft; const auto badgeTop = _st.nameTop; @@ -789,7 +794,10 @@ void Cover::refreshNameGeometry(int newWidth) { const auto badgeLeft = nameLeft + _name->width(); _badge->move(badgeLeft, badgeTop, badgeBottom); - const auto devBadgeLeft = badgeLeft + (_badge->widget() ? (_badge->widget()->width() + 2) : 0) + 4; + const auto devBadgeLeft = badgeLeft + + (_badge->widget() + ? (_badge->widget()->width() + st::infoVerifiedCheckPosition.x()) + : 0); const auto devBadgeTop = _st.nameTop; const auto devBadgeBottom = _st.nameTop + _name->height(); _devBadge->move(devBadgeLeft, devBadgeTop, devBadgeBottom);