From 28d9330969103ace0d5d23604506f8c1b32cdd28 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 28 Nov 2023 21:51:53 +0400 Subject: [PATCH] Add premium promo section about wallpapers. --- Telegram/Resources/langs/lang.strings | 3 +++ .../SourceFiles/boxes/background_preview_box.cpp | 2 +- Telegram/SourceFiles/boxes/premium_preview_box.cpp | 5 +++++ Telegram/SourceFiles/boxes/premium_preview_box.h | 1 + Telegram/SourceFiles/data/data_web_page.cpp | 2 ++ Telegram/SourceFiles/data/data_web_page.h | 1 + .../history/view/media/history_view_web_page.cpp | 3 +++ Telegram/SourceFiles/settings/settings.style | 1 + Telegram/SourceFiles/settings/settings_premium.cpp | 14 +++++++++++++- 9 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index faefa64bf..b27a6aa1a 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1945,6 +1945,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_premium_summary_subtitle_gift#other" = "{user} has gifted you a {count}-months subscription for Telegram Premium."; "lng_premium_summary_subtitle_gift_me#one" = "You gifted {user} a {count}-month subscription for Telegram Premium."; "lng_premium_summary_subtitle_gift_me#other" = "You gifted {user} a {count}-months subscription for Telegram Premium."; +"lng_premium_summary_subtitle_wallpapers" = "Wallpapers for Both Sides"; +"lng_premium_summary_about_wallpapers" = "Set custom wallpapers for you and your chat partner."; "lng_premium_summary_subtitle_stories" = "Upgraded Stories"; "lng_premium_summary_about_stories" = "Priority order, stealth mode, permanent views history and more."; "lng_premium_summary_subtitle_double_limits" = "Doubled Limits"; @@ -4135,6 +4137,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_view_button_request_join" = "Request to Join"; "lng_view_button_external_link" = "Open link"; "lng_view_button_boost" = "Boost"; +"lng_view_button_giftcode" = "Open"; "lng_sponsored_hide_ads" = "Hide"; "lng_sponsored_title" = "What are sponsored messages?"; diff --git a/Telegram/SourceFiles/boxes/background_preview_box.cpp b/Telegram/SourceFiles/boxes/background_preview_box.cpp index 09cd20781..c54f581ce 100644 --- a/Telegram/SourceFiles/boxes/background_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/background_preview_box.cpp @@ -691,7 +691,7 @@ void BackgroundPreviewBox::applyForPeer() { } else { ShowPremiumPreviewBox( _controller->uiShow(), - PremiumPreview::AnimatedEmoji); + PremiumPreview::Wallpapers); } }); const auto cancel = CreateChild( diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.cpp b/Telegram/SourceFiles/boxes/premium_preview_box.cpp index 7a49f5cc0..6cdb9a10a 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_preview_box.cpp @@ -93,6 +93,8 @@ void PreloadSticker(const std::shared_ptr &media) { [[nodiscard]] rpl::producer SectionTitle(PremiumPreview section) { switch (section) { + case PremiumPreview::Wallpapers: + return tr::lng_premium_summary_subtitle_wallpapers(); case PremiumPreview::Stories: return tr::lng_premium_summary_subtitle_stories(); case PremiumPreview::DoubleLimits: @@ -127,6 +129,8 @@ void PreloadSticker(const std::shared_ptr &media) { [[nodiscard]] rpl::producer SectionAbout(PremiumPreview section) { switch (section) { + case PremiumPreview::Wallpapers: + return tr::lng_premium_summary_about_wallpapers(); case PremiumPreview::Stories: return tr::lng_premium_summary_about_stories(); case PremiumPreview::DoubleLimits: @@ -471,6 +475,7 @@ struct VideoPreviewDocument { case PremiumPreview::ProfileBadge: return "profile_badge"; case PremiumPreview::AnimatedUserpics: return "animated_userpics"; case PremiumPreview::RealTimeTranslation: return "translations"; + case PremiumPreview::Wallpapers: return "wallpapers"; } return ""; }(); diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.h b/Telegram/SourceFiles/boxes/premium_preview_box.h index dbe2be446..35c055717 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.h +++ b/Telegram/SourceFiles/boxes/premium_preview_box.h @@ -60,6 +60,7 @@ enum class PremiumPreview { ProfileBadge, AnimatedUserpics, RealTimeTranslation, + Wallpapers, kCount, }; diff --git a/Telegram/SourceFiles/data/data_web_page.cpp b/Telegram/SourceFiles/data/data_web_page.cpp index 95b042775..7aaeaf5d7 100644 --- a/Telegram/SourceFiles/data/data_web_page.cpp +++ b/Telegram/SourceFiles/data/data_web_page.cpp @@ -179,6 +179,8 @@ WebPageType ParseWebPageType( return WebPageType::BotApp; } else if (type == u"telegram_channel_boost"_q) { return WebPageType::ChannelBoost; + } else if (type == u"telegram_giftcode"_q) { + return WebPageType::Giftcode; } else if (hasIV) { return WebPageType::ArticleWithIV; } else { diff --git a/Telegram/SourceFiles/data/data_web_page.h b/Telegram/SourceFiles/data/data_web_page.h index 04f16a7b6..629ba2bc9 100644 --- a/Telegram/SourceFiles/data/data_web_page.h +++ b/Telegram/SourceFiles/data/data_web_page.h @@ -27,6 +27,7 @@ enum class WebPageType : uint8 { Channel, ChannelWithRequest, ChannelBoost, + Giftcode, Photo, Video, diff --git a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp index 6b9e291d3..2fc8c043e 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp @@ -106,6 +106,8 @@ std::vector> PrepareCollageMedia( ? tr::lng_view_button_request_join(tr::now) : (type == WebPageType::ChannelBoost) ? tr::lng_view_button_boost(tr::now) + : (type == WebPageType::Giftcode) + ? tr::lng_view_button_giftcode(tr::now) : (type == WebPageType::VoiceChat) ? tr::lng_view_button_voice_chat(tr::now) : (type == WebPageType::Livestream) @@ -125,6 +127,7 @@ std::vector> PrepareCollageMedia( || (type == WebPageType::Group) || (type == WebPageType::Channel) || (type == WebPageType::ChannelBoost) + || (type == WebPageType::Giftcode) // || (type == WebPageType::Bot) || (type == WebPageType::User) || (type == WebPageType::VoiceChat) diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index 17ce558b2..9304a3ebd 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -77,6 +77,7 @@ settingsIconInterfaceScale: icon {{ "settings/interface_scale", settingsIconFg } settingsIconStickers: icon {{ "settings/stickers", settingsIconFg }}; settingsIconEmoji: icon {{ "settings/emoji", settingsIconFg }}; +settingsPremiumIconWallpapers: icon {{ "settings/photo", settingsIconFg }}; settingsPremiumIconStories: icon {{ "settings/stories", settingsIconFg }}; settingsPremiumIconChannelsOff: icon {{ "settings/premium/channels_off", settingsIconFg }}; settingsPremiumIconDouble: icon {{ "settings/premium/double", settingsIconFg }}; diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index 3ffb3de33..319a0830a 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -176,6 +176,7 @@ using Order = std::vector; [[nodiscard]] Order FallbackOrder() { return Order{ + u"wallpapers"_q, u"stories"_q, u"double_limits"_q, u"more_upload"_q, @@ -195,6 +196,16 @@ using Order = std::vector; [[nodiscard]] base::flat_map EntryMap() { return base::flat_map{ + { + u"wallpapers"_q, + Entry{ + &st::settingsPremiumIconWallpapers, + tr::lng_premium_summary_subtitle_wallpapers(), + tr::lng_premium_summary_about_wallpapers(), + PremiumPreview::Wallpapers, + true, + }, + }, { u"stories"_q, Entry{ @@ -202,7 +213,6 @@ using Order = std::vector; tr::lng_premium_summary_subtitle_stories(), tr::lng_premium_summary_about_stories(), PremiumPreview::Stories, - true, }, }, { @@ -1660,6 +1670,8 @@ not_null CreateSubscribeButton( return PremiumPreview::AnimatedUserpics; } else if (s == u"translations"_q) { return PremiumPreview::RealTimeTranslation; + } else if (s == u"wallpapers"_q) { + return PremiumPreview::Wallpapers; } return PremiumPreview::kCount; }) | ranges::views::filter([](PremiumPreview type) {