From b377c02ad38d5043cbfaab37b3db7a86cfe381c9 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 4 Jul 2024 10:07:18 +0300 Subject: [PATCH] Added support of min boost level for channel ads to feature list. --- .../premium/features/feature_off_sponsored.png | Bin 0 -> 771 bytes .../features/feature_off_sponsored@2x.png | Bin 0 -> 1540 bytes .../features/feature_off_sponsored@3x.png | Bin 0 -> 2194 bytes .../boxes/peers/replace_boost_box.cpp | 1 + Telegram/SourceFiles/ui/boxes/boost_box.cpp | 11 +++++++++-- Telegram/SourceFiles/ui/boxes/boost_box.h | 1 + Telegram/SourceFiles/ui/effects/premium.style | 1 + 7 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 Telegram/Resources/icons/settings/premium/features/feature_off_sponsored.png create mode 100644 Telegram/Resources/icons/settings/premium/features/feature_off_sponsored@2x.png create mode 100644 Telegram/Resources/icons/settings/premium/features/feature_off_sponsored@3x.png diff --git a/Telegram/Resources/icons/settings/premium/features/feature_off_sponsored.png b/Telegram/Resources/icons/settings/premium/features/feature_off_sponsored.png new file mode 100644 index 0000000000000000000000000000000000000000..06a33dc3c089717f0c8ad67beca035d1daea3184 GIT binary patch literal 771 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDq2jfhpJ1#WBP} z@NS5$$Erk;bMvQMaB<}3bQMwMIJlc*nzQ`{F%6D~HJvgnf+n{_SR7?aiUf04EY#$2 z(a02g%uR)5W`wIx)}BT^m+iUw=PudwhKS`Sa)Po0YpyKb<#k z-nS~-_QMAm`eSzQ-hDRh^P4w5I%4|z`io`$*fLA5bzK~Ipl-kX1{Wnm37-9SDq`IW z1*V^NRZ3j9e!cMIFg`v$wq{2gx#K!!=H}A9Y(dWR=FjhSdu%e>>xk-&fB)>V_*$K& zdZ|wI(9zRdBwmr0o^IF&v}pEhX{UdyHgulO+RDYkG~@X33)zw!sN(u`bU8H)|=AYM|>eYYz^Or9!M}t?YcWT^w`}XavTT;KY zM7Xr3zIySZLn+{yieQ+wQ0KCTK`XcH+SN7jX_2MIn_?kM~Sob(CO2s zw{JI}eb$Wk;Nd<0cJADnW7fTN(FA+>Cf}JpY9S#Fsl%T?e_k8L{aSvux3@P(n1)Esx8Ejr z^UTkQHXomCH2bW@U&G#?<}-aJv1?8~If0|xVMW<)S>IG6NtwI+@;o{#Zogf(W{pCG z)>Ng5e#@0R1@>&++A0c+C}!2VG}WnIQ%^tjP-(i9wN+~V`Q;TAr!Baz`2EbBeEhMj toZPa@nL6BtCN`S_&s~pBO!@cv-2T3`qBhw)RyRQj(9_k=Wt~$(69A{aJm3HT literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings/premium/features/feature_off_sponsored@2x.png b/Telegram/Resources/icons/settings/premium/features/feature_off_sponsored@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..996851dbc9f57f50181b43546053c9f9a7389393 GIT binary patch literal 1540 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 NBYiWydR>>q{{ktQFPs1X literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp b/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp index 70648d627a..a3bc8b69bd 100644 --- a/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/replace_boost_box.cpp @@ -459,6 +459,7 @@ Ui::BoostFeatures LookupBoostFeatures(not_null channel) { .customWallpaperLevel = group ? levelLimits.groupCustomWallpaperLevelMin() : levelLimits.channelCustomWallpaperLevelMin(), + .sponsoredLevel = levelLimits.channelRestrictSponsoredLevelMin(), }; } diff --git a/Telegram/SourceFiles/ui/boxes/boost_box.cpp b/Telegram/SourceFiles/ui/boxes/boost_box.cpp index 691d84f16c..bb99e43a86 100644 --- a/Telegram/SourceFiles/ui/boxes/boost_box.cpp +++ b/Telegram/SourceFiles/ui/boxes/boost_box.cpp @@ -175,7 +175,7 @@ void AddFeaturesList( st::boostFeatureIconPosition); }; const auto proj = &Ui::Text::RichLangValue; - const auto max = std::max({ + const auto lowMax = std::max({ features.linkLogoLevel, features.transcribeLevel, features.emojiPackLevel, @@ -189,9 +189,13 @@ void AddFeaturesList( ? 0 : features.linkStylesByLevel.back().first), }); + const auto highMax = std::max(lowMax, features.sponsoredLevel); auto nameColors = 0; auto linkStyles = 0; - for (auto i = std::max(startFromLevel, 1); i <= max; ++i) { + for (auto i = std::max(startFromLevel, 1); i <= highMax; ++i) { + if ((i > lowMax) && (i < highMax)) { + continue; + } const auto unlocks = (i == startFromLevel); container->add( MakeFeaturesBadge( @@ -202,6 +206,9 @@ void AddFeaturesList( lt_count, rpl::single(float64(i)))), st::boostLevelBadgePadding); + if (i >= features.sponsoredLevel) { + add(tr::lng_channel_earn_off(proj), st::boostFeatureOffSponsored); + } if (i >= features.customWallpaperLevel) { add( (group diff --git a/Telegram/SourceFiles/ui/boxes/boost_box.h b/Telegram/SourceFiles/ui/boxes/boost_box.h index ecac121b9c..6c129512de 100644 --- a/Telegram/SourceFiles/ui/boxes/boost_box.h +++ b/Telegram/SourceFiles/ui/boxes/boost_box.h @@ -40,6 +40,7 @@ struct BoostFeatures { int wallpaperLevel = 0; int wallpapersCount = 0; int customWallpaperLevel = 0; + int sponsoredLevel = 0; }; struct BoostBoxData { diff --git a/Telegram/SourceFiles/ui/effects/premium.style b/Telegram/SourceFiles/ui/effects/premium.style index afdac71466..33fae62ebd 100644 --- a/Telegram/SourceFiles/ui/effects/premium.style +++ b/Telegram/SourceFiles/ui/effects/premium.style @@ -364,3 +364,4 @@ boostFeatureLink: icon{{ "settings/premium/features/feature_links", windowBgActi boostFeatureName: icon{{ "settings/premium/features/feature_color_names", windowBgActive }}; boostFeatureStories: icon{{ "settings/premium/features/feature_stories", windowBgActive }}; boostFeatureTranscribe: icon{{ "settings/premium/features/feature_voice", windowBgActive }}; +boostFeatureOffSponsored: icon{{ "settings/premium/features/feature_off_sponsored", windowBgActive }};