diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 541a65a91b..f8dab61e2e 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -3879,6 +3879,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_dialogs_suggestions_premium_upgrade_about" = "Upgrade to the annual payment plan for Telegram Premium now to get the discount."; "lng_dialogs_suggestions_premium_restore_title" = "Get Premium back with up to {text} off"; "lng_dialogs_suggestions_premium_restore_about" = "Your Telegram Premium has recently expired. Tap here to extend it."; +"lng_dialogs_suggestions_premium_grace_title" = "⚠️ Your Premium subscription is expiring!"; +"lng_dialogs_suggestions_premium_grace_about" = "Don’t lose access to exclusive features."; "lng_dialogs_suggestions_userpics_title" = "Add your photo! 📸"; "lng_dialogs_suggestions_userpics_about" = "Help your friends spot you easily."; diff --git a/Telegram/SourceFiles/dialogs/dialogs_top_bar_suggestion.cpp b/Telegram/SourceFiles/dialogs/dialogs_top_bar_suggestion.cpp index 9b5f448e68..ca0c3b703d 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_top_bar_suggestion.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_top_bar_suggestion.cpp @@ -50,6 +50,7 @@ constexpr auto kSugBirthdayContacts = "BIRTHDAY_CONTACTS_TODAY"_cs; constexpr auto kSugPremiumAnnual = "PREMIUM_ANNUAL"_cs; constexpr auto kSugPremiumUpgrade = "PREMIUM_UPGRADE"_cs; constexpr auto kSugPremiumRestore = "PREMIUM_RESTORE"_cs; +constexpr auto kSugPremiumGrace = "PREMIUM_GRACE"_cs; constexpr auto kSugSetUserpic = "USERPIC_SETUP"_cs; } // namespace @@ -107,6 +108,34 @@ rpl::producer*> TopBarSuggestionValue( using RightIcon = TopBarSuggestionContent::RightIcon; const auto config = &session->appConfig(); if (session->premiumCanBuy() + && config->suggestionCurrent(kSugPremiumGrace.utf8())) { + content->setRightIcon(RightIcon::Close); + content->setClickedCallback([=] { + const auto controller = FindSessionController(parent); + if (!controller) { + return; + } + UrlClickHandler::Open( + u"https://t.me/premiumbot?start=status"_q, + QVariant::fromValue(ClickHandlerContext{ + .sessionWindow = base::make_weak(controller), + })); + }); + content->setHideCallback([=] { + config->dismissSuggestion(kSugPremiumGrace.utf8()); + repeat(repeat); + }); + content->setContent( + tr::lng_dialogs_suggestions_premium_grace_title( + tr::now, + Ui::Text::Bold), + tr::lng_dialogs_suggestions_premium_grace_about( + tr::now, + TextWithEntities::Simple)); + state->desiredWrapToggle.force_assign( + Toggle{ true, anim::type::normal }); + return; + } else if (session->premiumCanBuy() && config->suggestionCurrent(kSugBirthdayContacts.utf8())) { session->data().contactBirthdays( ) | rpl::start_with_next(crl::guard(content, [=](