From 4cafacc8dbe4db17ce3878cf1d0037d8a4d7cee3 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 29 Jun 2024 11:29:09 +0400 Subject: [PATCH] Add message effects promo section. --- .../Resources/icons/settings/premium/effects.png | Bin 0 -> 726 bytes .../icons/settings/premium/effects@2x.png | Bin 0 -> 1395 bytes .../icons/settings/premium/effects@3x.png | Bin 0 -> 2093 bytes Telegram/Resources/langs/lang.strings | 2 ++ .../SourceFiles/boxes/premium_preview_box.cpp | 5 +++++ Telegram/SourceFiles/boxes/premium_preview_box.h | 1 + Telegram/SourceFiles/settings/settings.style | 1 + .../SourceFiles/settings/settings_premium.cpp | 13 +++++++++++++ 8 files changed, 22 insertions(+) create mode 100644 Telegram/Resources/icons/settings/premium/effects.png create mode 100644 Telegram/Resources/icons/settings/premium/effects@2x.png create mode 100644 Telegram/Resources/icons/settings/premium/effects@3x.png diff --git a/Telegram/Resources/icons/settings/premium/effects.png b/Telegram/Resources/icons/settings/premium/effects.png new file mode 100644 index 0000000000000000000000000000000000000000..56af6306310d223df7cb87571b3c4d87c7eef94b GIT binary patch literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDq2jfyu$s#WBP} z@M*AZe`caUoY-!Unl%Dkt?~{_1ynlLnusjACSY>AV}d}ZpR&|iuZ0UHd6X?)a3QDZ z$3G4ykwpTLjz_NFJ85gKe@?FG^z1v^Eh_J&r_C!*J9p;r;r~@0Dwj^5?heqXsi|?X zP1t;subnyeJ)_pttgTV^@836{efInNVjH>BPd7!aZ8PXTYBba5!1H-5H$t?oCKw!e zq`&|0!wKh~AAkID{d)Ze+EcqOzjTR8X<_*Bx31MG(M0NK(nr<)#1$W3zSNw5zTZtb zq3h_Q=g-ye^|~!~)V=(2OMu3U606NOYi4pE+I&+-fFr|XR@PRox4T1rP8QstH1WmH zpOR9X3`}}+1;jX5;?{4!{L&#XZ@aXX>oRQtzV@wAYmYykdH%UZ_xuHS^Oj$Jc{fj- zhi(0%jooqU(>F#K&CJ<-_aBd1O3_Z4#sD3$==IlI7`LDJSkcpRuKsO_m7xSr$`5IV z;I=#Goc6}?Z!Bjhxs|p#)kyNg%d*`p^MpE6_TRt1is@s}$}ex<^496`Y`>eQF2JNE z)w_tn>B9T(l{RuF2UCn%ofK!-B`NAn@1Dl3ekI2&(JOIBte*IcNheii*5q-=_4zG7 zT=Ym~!|E8l?>}oUxTmx(^i>hkSg9SlG^p~mEHJ=JuV!t%n#KCQIc9HM`(9faz8@tH zi$b&#`42f9WIFuw$B&GyQ6H8EtrXdI@`CJ#P8X#eKR!QloV3Btz^m6ydG=Yo>E3g+ z%TkSIb{{>IU?9+Mns`R{)7P(4ofh8N^w0Q@K5OS^i)Yb$%0X$$)78&qol`;+02V$m AP5=M^ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings/premium/effects@2x.png b/Telegram/Resources/icons/settings/premium/effects@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5f5e4ada627654bfb021b7e0e9f189bfc7303b94 GIT binary patch literal 1395 zcmV-(1&sQMP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NG-AP12R9Fe^SXn4-Q5e2vN+dE5 z88W71${2YdB#ESu@*v(si#pN+hC4l+1*9kTOS-WX?RtyHF8(YyHFi@k9Mn?|^y-{-Yg;jEvOK&|oh}i!BzF>gecLT3R|gJG;2J z=;`UbzrVk|y$M={g@w(`%p4pXtgWpHDtw)3XlR(2m{?z5zq`Bp`T6tt!|d#A zadEMyrzaPqtgH-*ot>Rr=67jxbMxxz>YJOJKVuMn8XO!nH8rJ>%gf8qJ2^SQMpEY2 z2`w$H($dnWrzc@>9(R9#A8!+Qc6N4|nVCaFLsVscem*BB$JNzUb~N+=IyyQoEG$ru zQi$5xTHqxoCo`0>LU}Rm?d`?J#=@qlsfpoNP}JSs4MPV9ht}3s?3RMg@$qq2SC@x} zhm3&S-QD4(xw#oO_V)G#1qGX%n+kpzkI&D~fq{V(&)3)Y?(PoyA0Hp_@$r-|gQ%&g zfjyQ&4<^pUogFHSy zo{^COX-rHEgr&dm6ZjPs;Vl`GA^2rj}H=;LUy^lyhIj(qlkzI>2Xlajg1Z1 zVy7o2CcM17KsPir7#J9Ukoq$-Gwbc`g~!|5+tAQZdfoc^`Y4PnA|WAxVmmoGA)6N! z6;X~PA|N0Dkhlxb*4NjMii#Q;8IctPSNZz-IzK<(+uJ)eH5JtZB3xlfaZn{>!mF#R z?CflCkW{$dRYeB}2U9o^!q3kS8c4F*+S+(us9CBCg6pTGq(meRBG%N@+}heAr4jpt z;>Go%LV93eKvF=qwzfb;BeAlwf;^}m%+r#^7r@WOI64*F)`tL z)8w;WUS9ajzrhg%5(wz*?CfvA^L--U@|gkwou8iz#?CjE&RJhypPrt6e0=1Z?Ck7t zA6fL+*qFir{PH6@+PJtl0%l`lGdem-U8Sd|vx4Bt3JVLV**6K2Y*0;6wgF*bVL|#3 zR1Y-7Tu>GbGc*t14276mSy=(8zrP=y5XrYKEiDj%!-{|}Yiw-%en8vX+whFS{`&d~ zZ{_9Xc*L6m9TF142W4@P9wkl}jJQd|iNZ{DrlzI<3C}$}JuGZxGE55$FotM#brp>m z;vh{=Wo0E%#xWqR8M3Z2P!YbYJ{qVfI0|&<7Z@KguI1j9{n!n3QTsmQCifCr~+ykR)|`r@=i+>TCJeofq%UNzW@^lQIP%Wrr7`h002ovPDHLkV1gI^ Bca{JE literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings/premium/effects@3x.png b/Telegram/Resources/icons/settings/premium/effects@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..30ec7d9eab70de000d84b312e64990e463ba3ec9 GIT binary patch literal 2093 zcmV+|2-5e7P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91NT34%1ONa40RR91NB{r;0FW_8?*IS?mq|oHRA>e5nq}w}TM)qif4e(T zpIumBfQnf7?EYYb7+-9`4h-;{4T_+mAaC^l7?_a!laqHHt=g*(JQtQ^O+h4za6)RS}dGn?# zz9J+=v1-+-{r&6Ls8ORldGaVT3-J2&>$7Li9yxO4;K75(k01Z}^QQ%Y$EHo2${;{O zip7%hKY~#gEn4*8!GnJi|2=&8aQyi3si~oT)C1ZOBPegk|j$H8Z_wf zRX~Z{I$5?%XD3Qs6#)`n-Ab#^mh}9yV;4$XB^? znk`$laJ0&l=|4}CH*en6t5-X)PiU%Z*RCSsrcIl?FB~vnKnRM}uV4S$w{QLW^%Gj7 zN00U{fh%VJ{{4k)t5&UU+_>S2k0kigvSrJLpxEr$v*EX6#}1)|xA^ekgR2A{5e^+X zWQtg#M2X(Ld#_!)mH=QX!Y#b(_&hcCLw^lsZ*y;W((hkK!Epu`t<1v6)Fh*0|yQW z!7*dTm>m7XZQHiJd-tw`luw^N)kELCdv^y+A5$6taO<+XUcGvvjK?sYA)e~x%a>;d z#+zllaN)uY8#WXKHmU=rkEte2n#ihc+qR+D?c2A{ojb<}Cp?7Qs%q7$g9i`ZxN#!~ z*R=ZX-Mex3b?es6km0voX3UsjA_RxYk2S+Wj6#J9iJt5uhsj zgRJW1%a@7}7BG48WD6tw@QD*Apnu`Q1#J9V|aq*}FVkqtI$)=bybtXXr< zo;{i|>Ui1%B;pQC|GQ$@B2geBhLG2sIdcZ@N3ltRvMqjE4pR1VVCSM37fM--dkxLQ zI*60VRKbD;9nf92Vwg7{2Pu3_IVX)Sig5w+#WXDzanp5Rn`q(U4Y1Qq`~!zj*PYt(1gg`cI0?&Ds`C2VJ%z zc$+tGR_rtY=FFKRTqw4YyDeL`OiJ05Sh&lp085uHRoExMZq#0m8Z3DLr4$jA`<`$a zGGvI1^ytw;MsR6C_n}anHf>t+G%+dDb`g#w+1l>dvSo`5(zX@ki4!NvNYH<>vUl&^ znGz%kUbt|f$Vy(SEGVdG)d=@UOWI4H#r=%IiLE$x?AV~@@v#2z;lqNZ9aUrO*Q=y5Sx@i|Gq-=gysK#ee{1CQB3+iHa2~wqe7DSmG2Zyc{iG zYNe#mE{J96W8~VkYo@>E6p=v9ojdpZ`ST8q8#*uKA5*4GY23K6rDyF^A6+J8Qy-dG zmT;nkCfOieKTFNff^7Tv@#Du8D^`S~9!ZUZIc?d;8|>AqmngjSyjal-4(XC|ZP1_r%^L0?mYz;L zIy7Pk2BSueVjC+F{{XGc5R0TVH*f$JX^2sLfHiaGOf!pD^*G)%HOWX~!-IuRVvma# zFIFB7z}vTP9cIlbB2~OL7o|%R6Zp}iM@gxd@%e?T+u%M*s3CQzUcEX_kKjwX`y0bG^F;(57Q7HI0h8mGE?v6Br<44{)s}9+K`u&kz$CixV#$vK z68wXfV>NkcS}gd3gbN}H6#*2(139;gg0M)pwcIbAzcooW$s)#)1tJSX7KkkHhgjfW X6bGP`k1YYr00000NkvXXu0mjflhyBA literal 0 HcmV?d00001 diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 95559a1c7..b517e1f8d 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2195,6 +2195,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_premium_summary_about_translation" = "Real-time translation of channels and chats into other languages."; "lng_premium_summary_subtitle_business" = "Telegram Business"; "lng_premium_summary_about_business" = "Upgrade your account with business features such as location, opening hours and quick replies."; +"lng_premium_summary_subtitle_effects" = "Message Effects"; +"lng_premium_summary_about_effects" = "Add over 500 animated effects to private messages."; "lng_premium_summary_bottom_subtitle" = "About Telegram Premium"; "lng_premium_summary_bottom_about" = "While the free version of Telegram already gives its users more than any other messaging application, **Telegram Premium** pushes its capabilities even further.\n\n**Telegram Premium** is a paid option, because most Premium Features require additional expenses from Telegram to third parties such as data center providers and server manufacturers. Contributions from **Telegram Premium** users allow us to cover such costs and also help Telegram stay free for everyone."; "lng_premium_summary_button" = "Subscribe for {cost} per month"; diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.cpp b/Telegram/SourceFiles/boxes/premium_preview_box.cpp index 76a2a18b7..f163be612 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_preview_box.cpp @@ -131,6 +131,8 @@ void PreloadSticker(const std::shared_ptr &media) { return tr::lng_premium_summary_subtitle_translation(); case PremiumFeature::Business: return tr::lng_premium_summary_subtitle_business(); + case PremiumFeature::Effects: + return tr::lng_premium_summary_subtitle_effects(); case PremiumFeature::BusinessLocation: return tr::lng_business_subtitle_location(); @@ -192,6 +194,8 @@ void PreloadSticker(const std::shared_ptr &media) { return tr::lng_premium_summary_about_translation(); case PremiumFeature::Business: return tr::lng_premium_summary_about_business(); + case PremiumFeature::Effects: + return tr::lng_premium_summary_about_effects(); case PremiumFeature::BusinessLocation: return tr::lng_business_about_location(); @@ -529,6 +533,7 @@ struct VideoPreviewDocument { case PremiumFeature::Wallpapers: return "wallpapers"; case PremiumFeature::LastSeen: return "last_seen"; case PremiumFeature::MessagePrivacy: return "message_privacy"; + case PremiumFeature::Effects: return "effects"; case PremiumFeature::BusinessLocation: return "business_location"; case PremiumFeature::BusinessHours: return "business_hours"; diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.h b/Telegram/SourceFiles/boxes/premium_preview_box.h index 63b1bd1be..4dae5c30d 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.h +++ b/Telegram/SourceFiles/boxes/premium_preview_box.h @@ -70,6 +70,7 @@ enum class PremiumFeature { LastSeen, MessagePrivacy, Business, + Effects, // Business features. BusinessLocation, diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index 5fb976285..6ffd1842a 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -95,6 +95,7 @@ settingsPremiumIconTags: icon {{ "settings/premium/tags", settingsIconFg }}; settingsPremiumIconLastSeen: icon {{ "settings/premium/lastseen", settingsIconFg }}; settingsPremiumIconPrivacy: icon {{ "settings/premium/privacy", settingsIconFg }}; settingsPremiumIconBusiness: icon {{ "settings/premium/market", settingsIconFg }}; +settingsPremiumIconEffects: icon {{ "settings/premium/effects", settingsIconFg }}; settingsStoriesIconOrder: icon {{ "settings/premium/stories_order", premiumButtonBg1 }}; settingsStoriesIconStealth: icon {{ "menu/stealth", premiumButtonBg1 }}; diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index 9a003d3d2..45ef5f63d 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -197,6 +197,7 @@ using Order = std::vector; u"animated_userpics"_q, u"premium_stickers"_q, u"business"_q, + u"effects"_q, }; } @@ -377,6 +378,16 @@ using Order = std::vector; true, }, }, + { + u"effects"_q, + Entry{ + &st::settingsPremiumIconEffects, + tr::lng_premium_summary_subtitle_effects(), + tr::lng_premium_summary_about_effects(), + PremiumFeature::Effects, + true, + }, + }, }; } @@ -1601,6 +1612,8 @@ std::vector PremiumFeaturesOrder( return PremiumFeature::RealTimeTranslation; } else if (s == u"wallpapers"_q) { return PremiumFeature::Wallpapers; + } else if (s == u"effects"_q) { + return PremiumFeature::Effects; } return PremiumFeature::kCount; }) | ranges::views::filter([](PremiumFeature type) {