mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Use server-side order for business features list.
This commit is contained in:
parent
a47c6f9c9a
commit
f812166249
4 changed files with 51 additions and 17 deletions
|
@ -70,6 +70,7 @@ void Location::setupContent(
|
|||
|
||||
const auto content = Ui::CreateChild<Ui::VerticalLayout>(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, {
|
||||
|
|
|
@ -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<QString>;
|
|||
|
||||
[[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<QString, Entry> EntryMap() {
|
||||
return base::flat_map<QString, Entry>{
|
||||
{
|
||||
u"location"_q,
|
||||
u"business_location"_q,
|
||||
Entry{
|
||||
&st::settingsBusinessIconLocation,
|
||||
tr::lng_business_subtitle_location(),
|
||||
|
@ -79,7 +81,7 @@ using Order = std::vector<QString>;
|
|||
},
|
||||
},
|
||||
{
|
||||
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<QString>;
|
|||
},
|
||||
},
|
||||
{
|
||||
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<QString>;
|
|||
},
|
||||
},
|
||||
{
|
||||
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<QString>;
|
|||
},
|
||||
},
|
||||
{
|
||||
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<Order>(
|
||||
"premium_promo_order",
|
||||
FallbackOrder());*/ AssertIsDebug()
|
||||
const auto mtpOrder = account.appConfig().get<Order>(
|
||||
"business_promo_order",
|
||||
FallbackOrder());
|
||||
const auto processEntry = [&](Entry &entry) {
|
||||
icons.push_back(entry.icon);
|
||||
addRow(entry);
|
||||
|
@ -589,4 +591,31 @@ void ShowBusiness(not_null<Window::SessionController*> controller) {
|
|||
controller->showSettings(Settings::BusinessId());
|
||||
}
|
||||
|
||||
std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||
not_null<::Main::Session*> session) {
|
||||
const auto mtpOrder = session->account().appConfig().get<Order>(
|
||||
"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
|
||||
|
|
|
@ -34,4 +34,7 @@ enum class BusinessFeature {
|
|||
|
||||
void ShowBusiness(not_null<Window::SessionController*> controller);
|
||||
|
||||
[[nodiscard]] std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||
not_null<::Main::Session*> session);
|
||||
|
||||
} // namespace Settings
|
||||
|
|
|
@ -180,7 +180,6 @@ using Order = std::vector<QString>;
|
|||
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<QString>;
|
|||
u"infinite_reactions"_q,
|
||||
u"animated_userpics"_q,
|
||||
u"premium_stickers"_q,
|
||||
u"business"_q,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1537,7 +1537,7 @@ not_null<Ui::GradientButton*> CreateSubscribeButton(
|
|||
return result;
|
||||
}
|
||||
|
||||
[[nodiscard]] std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||
std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||
not_null<Main::Session*> session) {
|
||||
const auto mtpOrder = session->account().appConfig().get<Order>(
|
||||
"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<Order>(
|
||||
const auto mtpOrder = account.appConfig().get<Order>(
|
||||
"premium_promo_order",
|
||||
FallbackOrder());*/ AssertIsDebug()
|
||||
FallbackOrder());
|
||||
const auto processEntry = [&](Entry &entry) {
|
||||
icons.push_back(entry.icon);
|
||||
addRow(entry);
|
||||
|
|
Loading…
Add table
Reference in a new issue