diff --git a/Telegram/Resources/icons/settings/premium/promo/business_away.png b/Telegram/Resources/icons/settings/premium/promo/business_away.png new file mode 100644 index 000000000..b18690565 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_away.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_away@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_away@2x.png new file mode 100644 index 000000000..24813a145 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_away@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_away@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_away@3x.png new file mode 100644 index 000000000..d473fdbd4 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_away@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatbot.png b/Telegram/Resources/icons/settings/premium/promo/business_chatbot.png new file mode 100644 index 000000000..5e71b3b93 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatbot.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatbot@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_chatbot@2x.png new file mode 100644 index 000000000..ba588c6ec Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatbot@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatbot@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_chatbot@3x.png new file mode 100644 index 000000000..615d94b27 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatbot@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatlink.png b/Telegram/Resources/icons/settings/premium/promo/business_chatlink.png new file mode 100644 index 000000000..5b812d8ec Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatlink.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatlink@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_chatlink@2x.png new file mode 100644 index 000000000..6490fb474 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatlink@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_chatlink@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_chatlink@3x.png new file mode 100644 index 000000000..af17dbc53 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_chatlink@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_greeting.png b/Telegram/Resources/icons/settings/premium/promo/business_greeting.png new file mode 100644 index 000000000..22d1526c2 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_greeting.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_greeting@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_greeting@2x.png new file mode 100644 index 000000000..21c575d73 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_greeting@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_greeting@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_greeting@3x.png new file mode 100644 index 000000000..3bf932cd6 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_greeting@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_hours.png b/Telegram/Resources/icons/settings/premium/promo/business_hours.png new file mode 100644 index 000000000..ea917bb24 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_hours.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_hours@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_hours@2x.png new file mode 100644 index 000000000..62411855b Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_hours@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_hours@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_hours@3x.png new file mode 100644 index 000000000..923950f84 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_hours@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_intro.png b/Telegram/Resources/icons/settings/premium/promo/business_intro.png new file mode 100644 index 000000000..57d1c8c82 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_intro.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_intro@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_intro@2x.png new file mode 100644 index 000000000..4132668cc Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_intro@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_intro@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_intro@3x.png new file mode 100644 index 000000000..587b4e36e Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_intro@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_location.png b/Telegram/Resources/icons/settings/premium/promo/business_location.png new file mode 100644 index 000000000..074f44184 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_location.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_location@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_location@2x.png new file mode 100644 index 000000000..abc79b9b9 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_location@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_location@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_location@3x.png new file mode 100644 index 000000000..1d58a00bc Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_location@3x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_quickreply.png b/Telegram/Resources/icons/settings/premium/promo/business_quickreply.png new file mode 100644 index 000000000..91282589d Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_quickreply.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_quickreply@2x.png b/Telegram/Resources/icons/settings/premium/promo/business_quickreply@2x.png new file mode 100644 index 000000000..90662ccf9 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_quickreply@2x.png differ diff --git a/Telegram/Resources/icons/settings/premium/promo/business_quickreply@3x.png b/Telegram/Resources/icons/settings/premium/promo/business_quickreply@3x.png new file mode 100644 index 000000000..ebe964f29 Binary files /dev/null and b/Telegram/Resources/icons/settings/premium/promo/business_quickreply@3x.png differ diff --git a/Telegram/SourceFiles/api/api_chat_links.cpp b/Telegram/SourceFiles/api/api_chat_links.cpp index f8a3f1979..aa5be9f55 100644 --- a/Telegram/SourceFiles/api/api_chat_links.cpp +++ b/Telegram/SourceFiles/api/api_chat_links.cpp @@ -55,7 +55,6 @@ namespace { ChatLinks::ChatLinks(not_null api) : _api(api) { } - void ChatLinks::create( const QString &title, const TextWithEntities &message, diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.cpp b/Telegram/SourceFiles/boxes/premium_preview_box.cpp index bb71e2e63..67e402da5 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_preview_box.cpp @@ -1210,11 +1210,13 @@ void DecorateListPromoBox( box->closeBox(); }); - Data::AmPremiumValue( - session - ) | rpl::skip(1) | rpl::start_with_next([=] { - box->closeBox(); - }, box->lifetime()); + if (!descriptor.hideSubscriptionButton) { + Data::AmPremiumValue( + session + ) | rpl::skip(1) | rpl::start_with_next([=] { + box->closeBox(); + }, box->lifetime()); + } if (const auto &hidden = descriptor.hiddenCallback) { box->boxClosing() | rpl::start_with_next(hidden, box->lifetime()); @@ -1274,11 +1276,10 @@ void Show( })); return; } else if (descriptor.section == PremiumFeature::Business) { - const auto window = show->resolveWindow( - ChatHelpers::WindowUsage::PremiumPromo); - if (window) { - Settings::ShowBusiness(window); - } + show->showBox(Box([=](not_null box) { + TelegramBusinessPreviewBox(box, &show->session()); + DecorateListPromoBox(box, show, descriptor); + })); return; } auto &list = Preloads(); @@ -1576,6 +1577,75 @@ void UpgradedStoriesPreviewBox( tr::lng_premium_stories_about_mobile()); } +void TelegramBusinessPreviewBox( + not_null box, + not_null session) { + using namespace Ui::Text; + + box->setTitle(tr::lng_business_title()); + + auto entries = std::vector(); + const auto push = [&]( + tr::phrase<> title, + tr::phrase<> description, + const style::icon &icon) { + entries.push_back({ + .title = title(), + .about = description(WithEntities), + .icon = &icon, + }); + }; + for (const auto feature : Settings::BusinessFeaturesOrder(session)) { + switch (feature) { + case PremiumFeature::GreetingMessage: push( + tr::lng_business_subtitle_greeting_messages, + tr::lng_business_about_greeting_messages, + st::settingsBusinessPromoGreeting); + break; + case PremiumFeature::AwayMessage: push( + tr::lng_business_subtitle_away_messages, + tr::lng_business_about_away_messages, + st::settingsBusinessPromoAway); + break; + case PremiumFeature::QuickReplies: push( + tr::lng_business_subtitle_quick_replies, + tr::lng_business_about_quick_replies, + st::settingsBusinessPromoReplies); + break; + case PremiumFeature::BusinessHours: push( + tr::lng_business_subtitle_opening_hours, + tr::lng_business_about_opening_hours, + st::settingsBusinessPromoHours); + break; + case PremiumFeature::BusinessLocation: push( + tr::lng_business_subtitle_location, + tr::lng_business_about_location, + st::settingsBusinessPromoLocation); + break; + case PremiumFeature::BusinessBots: push( + tr::lng_business_subtitle_chatbots, + tr::lng_business_about_chatbots, + st::settingsBusinessPromoChatbots); + break; + case PremiumFeature::ChatIntro: push( + tr::lng_business_subtitle_chat_intro, + tr::lng_business_about_chat_intro, + st::settingsBusinessPromoChatIntro); + break; + case PremiumFeature::ChatLinks: push( + tr::lng_business_subtitle_chat_links, + tr::lng_business_about_chat_links, + st::settingsBusinessPromoChatLinks); + break; + } + } + + Ui::Premium::ShowListBox( + box, + st::defaultPremiumLimits, + std::move(entries)); +} + object_ptr CreateUnlockButton( QWidget *parent, rpl::producer text) { diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.h b/Telegram/SourceFiles/boxes/premium_preview_box.h index 8e1dc503b..63b1bd1be 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.h +++ b/Telegram/SourceFiles/boxes/premium_preview_box.h @@ -45,6 +45,10 @@ void UpgradedStoriesPreviewBox( not_null box, not_null session); +void TelegramBusinessPreviewBox( + not_null box, + not_null session); + enum class PremiumFeature { // Premium features. Stories, diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index e06c9956f..9c1c98d22 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -113,6 +113,15 @@ settingsBusinessIconChatbots: icon {{ "settings/premium/business/business_chatbo settingsBusinessIconChatIntro: icon {{ "settings/premium/business/business_intro", settingsIconFg }}; settingsBusinessIconChatLinks: icon {{ "settings/premium/business/business_links", settingsIconFg }}; +settingsBusinessPromoLocation: icon {{ "settings/premium/promo/business_location", premiumButtonBg1 }}; +settingsBusinessPromoHours: icon {{ "settings/premium/promo/business_hours", premiumButtonBg1 }}; +settingsBusinessPromoReplies: icon {{ "settings/premium/promo/business_quickreply", premiumButtonBg1 }}; +settingsBusinessPromoGreeting: icon {{ "settings/premium/promo/business_greeting", premiumButtonBg1 }}; +settingsBusinessPromoAway: icon {{ "settings/premium/promo/business_away", premiumButtonBg1 }}; +settingsBusinessPromoChatbots: icon {{ "settings/premium/promo/business_chatbot", premiumButtonBg1 }}; +settingsBusinessPromoChatIntro: icon {{ "settings/premium/promo/business_intro", premiumButtonBg1 }}; +settingsBusinessPromoChatLinks: icon {{ "settings/premium/promo/business_chatlink", premiumButtonBg1 }}; + settingsPremiumNewBadge: FlatLabel(defaultFlatLabel) { style: TextStyle(semiboldTextStyle) { font: font(10px semibold);