diff --git a/Telegram/SourceFiles/settings/business/settings_location.cpp b/Telegram/SourceFiles/settings/business/settings_location.cpp index 67a865696..2d9895ed9 100644 --- a/Telegram/SourceFiles/settings/business/settings_location.cpp +++ b/Telegram/SourceFiles/settings/business/settings_location.cpp @@ -70,6 +70,7 @@ void Location::setupContent( const auto content = Ui::CreateChild(this); +#if 0 // #TODO location choosing AddDividerTextWithLottie(content, { .lottie = u"location"_q, .lottieSize = st::settingsCloudPasswordIconSize, @@ -91,6 +92,7 @@ void Location::setupContent( showFinishes() | rpl::start_with_next([=] { address->setFocus(); }, address->lifetime()); +#endif if (!mapSupported()) { AddDividerTextWithLottie(content, { diff --git a/Telegram/SourceFiles/settings/settings_business.cpp b/Telegram/SourceFiles/settings/settings_business.cpp index a8792783c..c94c63464 100644 --- a/Telegram/SourceFiles/settings/settings_business.cpp +++ b/Telegram/SourceFiles/settings/settings_business.cpp @@ -16,6 +16,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "info/info_wrap_widget.h" // Info::Wrap. #include "info/settings/info_settings_widget.h" // SectionCustomTopBarData. #include "lang/lang_keys.h" +#include "main/main_account.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "settings/business/settings_away_message.h" #include "settings/business/settings_chatbots.h" @@ -58,19 +60,19 @@ using Order = std::vector; [[nodiscard]] Order FallbackOrder() { return Order{ - u"location"_q, - u"opening_hours"_q, + u"greeting_message"_q, + u"away_message"_q, u"quick_replies"_q, - u"greeting_messages"_q, - u"away_messages"_q, - u"chatbots"_q, + u"business_hours"_q, + u"business_location"_q, + u"business_bots"_q, }; } [[nodiscard]] base::flat_map EntryMap() { return base::flat_map{ { - u"location"_q, + u"business_location"_q, Entry{ &st::settingsBusinessIconLocation, tr::lng_business_subtitle_location(), @@ -79,7 +81,7 @@ using Order = std::vector; }, }, { - u"opening_hours"_q, + u"business_hours"_q, Entry{ &st::settingsBusinessIconHours, tr::lng_business_subtitle_opening_hours(), @@ -97,7 +99,7 @@ using Order = std::vector; }, }, { - u"greeting_messages"_q, + u"greeting_message"_q, Entry{ &st::settingsBusinessIconGreeting, tr::lng_business_subtitle_greeting_messages(), @@ -106,7 +108,7 @@ using Order = std::vector; }, }, { - u"away_messages"_q, + u"away_message"_q, Entry{ &st::settingsBusinessIconAway, tr::lng_business_subtitle_away_messages(), @@ -115,7 +117,7 @@ using Order = std::vector; }, }, { - u"chatbots"_q, + u"business_bots"_q, Entry{ &st::settingsBusinessIconChatbots, tr::lng_business_subtitle_chatbots(), @@ -222,9 +224,9 @@ void AddBusinessSummary( icons.reserve(int(entryMap.size())); { const auto &account = controller->session().account(); - const auto mtpOrder = FallbackOrder();/* session->account().appConfig().get( - "premium_promo_order", - FallbackOrder());*/ AssertIsDebug() + const auto mtpOrder = account.appConfig().get( + "business_promo_order", + FallbackOrder()); const auto processEntry = [&](Entry &entry) { icons.push_back(entry.icon); addRow(entry); @@ -589,4 +591,31 @@ void ShowBusiness(not_null controller) { controller->showSettings(Settings::BusinessId()); } +std::vector BusinessFeaturesOrder( + not_null<::Main::Session*> session) { + const auto mtpOrder = session->account().appConfig().get( + "business_promo_order", + FallbackOrder()); + return ranges::views::all( + mtpOrder + ) | ranges::views::transform([](const QString &s) { + if (s == u"greeting_message"_q) { + return BusinessFeature::GreetingMessages; + } else if (s == u"away_message"_q) { + return BusinessFeature::AwayMessages; + } else if (s == u"quick_replies"_q) { + return BusinessFeature::QuickReplies; + } else if (s == u"business_hours"_q) { + return BusinessFeature::OpeningHours; + } else if (s == u"business_location"_q) { + return BusinessFeature::Location; + } else if (s == u"business_bots"_q) { + return BusinessFeature::Chatbots; + } + return BusinessFeature::kCount; + }) | ranges::views::filter([](BusinessFeature feature) { + return (feature != BusinessFeature::kCount); + }) | ranges::to_vector; +} + } // namespace Settings diff --git a/Telegram/SourceFiles/settings/settings_business.h b/Telegram/SourceFiles/settings/settings_business.h index e255fd715..47bc2bca3 100644 --- a/Telegram/SourceFiles/settings/settings_business.h +++ b/Telegram/SourceFiles/settings/settings_business.h @@ -34,4 +34,7 @@ enum class BusinessFeature { void ShowBusiness(not_null controller); +[[nodiscard]] std::vector BusinessFeaturesOrder( + not_null<::Main::Session*> session); + } // namespace Settings diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index 809b8ba8e..3e3b8abac 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -180,7 +180,6 @@ using Order = std::vector; u"stories"_q, u"more_upload"_q, u"double_limits"_q, - u"business"_q, u"last_seen"_q, u"voice_to_text"_q, u"faster_download"_q, @@ -198,6 +197,7 @@ using Order = std::vector; u"infinite_reactions"_q, u"animated_userpics"_q, u"premium_stickers"_q, + u"business"_q, }; } @@ -1537,7 +1537,7 @@ not_null CreateSubscribeButton( return result; } -[[nodiscard]] std::vector PremiumPreviewOrder( +std::vector PremiumPreviewOrder( not_null session) { const auto mtpOrder = session->account().appConfig().get( "premium_promo_order", @@ -1684,9 +1684,9 @@ void AddSummaryPremium( icons.reserve(int(entryMap.size())); { const auto &account = controller->session().account(); - const auto mtpOrder = FallbackOrder();/* session->account().appConfig().get( + const auto mtpOrder = account.appConfig().get( "premium_promo_order", - FallbackOrder());*/ AssertIsDebug() + FallbackOrder()); const auto processEntry = [&](Entry &entry) { icons.push_back(entry.icon); addRow(entry);