mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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);
|
const auto content = Ui::CreateChild<Ui::VerticalLayout>(this);
|
||||||
|
|
||||||
|
#if 0 // #TODO location choosing
|
||||||
AddDividerTextWithLottie(content, {
|
AddDividerTextWithLottie(content, {
|
||||||
.lottie = u"location"_q,
|
.lottie = u"location"_q,
|
||||||
.lottieSize = st::settingsCloudPasswordIconSize,
|
.lottieSize = st::settingsCloudPasswordIconSize,
|
||||||
|
@ -91,6 +92,7 @@ void Location::setupContent(
|
||||||
showFinishes() | rpl::start_with_next([=] {
|
showFinishes() | rpl::start_with_next([=] {
|
||||||
address->setFocus();
|
address->setFocus();
|
||||||
}, address->lifetime());
|
}, address->lifetime());
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!mapSupported()) {
|
if (!mapSupported()) {
|
||||||
AddDividerTextWithLottie(content, {
|
AddDividerTextWithLottie(content, {
|
||||||
|
|
|
@ -16,6 +16,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "info/info_wrap_widget.h" // Info::Wrap.
|
#include "info/info_wrap_widget.h" // Info::Wrap.
|
||||||
#include "info/settings/info_settings_widget.h" // SectionCustomTopBarData.
|
#include "info/settings/info_settings_widget.h" // SectionCustomTopBarData.
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
|
#include "main/main_account.h"
|
||||||
|
#include "main/main_app_config.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/business/settings_away_message.h"
|
#include "settings/business/settings_away_message.h"
|
||||||
#include "settings/business/settings_chatbots.h"
|
#include "settings/business/settings_chatbots.h"
|
||||||
|
@ -58,19 +60,19 @@ using Order = std::vector<QString>;
|
||||||
|
|
||||||
[[nodiscard]] Order FallbackOrder() {
|
[[nodiscard]] Order FallbackOrder() {
|
||||||
return Order{
|
return Order{
|
||||||
u"location"_q,
|
u"greeting_message"_q,
|
||||||
u"opening_hours"_q,
|
u"away_message"_q,
|
||||||
u"quick_replies"_q,
|
u"quick_replies"_q,
|
||||||
u"greeting_messages"_q,
|
u"business_hours"_q,
|
||||||
u"away_messages"_q,
|
u"business_location"_q,
|
||||||
u"chatbots"_q,
|
u"business_bots"_q,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] base::flat_map<QString, Entry> EntryMap() {
|
[[nodiscard]] base::flat_map<QString, Entry> EntryMap() {
|
||||||
return base::flat_map<QString, Entry>{
|
return base::flat_map<QString, Entry>{
|
||||||
{
|
{
|
||||||
u"location"_q,
|
u"business_location"_q,
|
||||||
Entry{
|
Entry{
|
||||||
&st::settingsBusinessIconLocation,
|
&st::settingsBusinessIconLocation,
|
||||||
tr::lng_business_subtitle_location(),
|
tr::lng_business_subtitle_location(),
|
||||||
|
@ -79,7 +81,7 @@ using Order = std::vector<QString>;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u"opening_hours"_q,
|
u"business_hours"_q,
|
||||||
Entry{
|
Entry{
|
||||||
&st::settingsBusinessIconHours,
|
&st::settingsBusinessIconHours,
|
||||||
tr::lng_business_subtitle_opening_hours(),
|
tr::lng_business_subtitle_opening_hours(),
|
||||||
|
@ -97,7 +99,7 @@ using Order = std::vector<QString>;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u"greeting_messages"_q,
|
u"greeting_message"_q,
|
||||||
Entry{
|
Entry{
|
||||||
&st::settingsBusinessIconGreeting,
|
&st::settingsBusinessIconGreeting,
|
||||||
tr::lng_business_subtitle_greeting_messages(),
|
tr::lng_business_subtitle_greeting_messages(),
|
||||||
|
@ -106,7 +108,7 @@ using Order = std::vector<QString>;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u"away_messages"_q,
|
u"away_message"_q,
|
||||||
Entry{
|
Entry{
|
||||||
&st::settingsBusinessIconAway,
|
&st::settingsBusinessIconAway,
|
||||||
tr::lng_business_subtitle_away_messages(),
|
tr::lng_business_subtitle_away_messages(),
|
||||||
|
@ -115,7 +117,7 @@ using Order = std::vector<QString>;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u"chatbots"_q,
|
u"business_bots"_q,
|
||||||
Entry{
|
Entry{
|
||||||
&st::settingsBusinessIconChatbots,
|
&st::settingsBusinessIconChatbots,
|
||||||
tr::lng_business_subtitle_chatbots(),
|
tr::lng_business_subtitle_chatbots(),
|
||||||
|
@ -222,9 +224,9 @@ void AddBusinessSummary(
|
||||||
icons.reserve(int(entryMap.size()));
|
icons.reserve(int(entryMap.size()));
|
||||||
{
|
{
|
||||||
const auto &account = controller->session().account();
|
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",
|
"business_promo_order",
|
||||||
FallbackOrder());*/ AssertIsDebug()
|
FallbackOrder());
|
||||||
const auto processEntry = [&](Entry &entry) {
|
const auto processEntry = [&](Entry &entry) {
|
||||||
icons.push_back(entry.icon);
|
icons.push_back(entry.icon);
|
||||||
addRow(entry);
|
addRow(entry);
|
||||||
|
@ -589,4 +591,31 @@ void ShowBusiness(not_null<Window::SessionController*> controller) {
|
||||||
controller->showSettings(Settings::BusinessId());
|
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
|
} // namespace Settings
|
||||||
|
|
|
@ -34,4 +34,7 @@ enum class BusinessFeature {
|
||||||
|
|
||||||
void ShowBusiness(not_null<Window::SessionController*> controller);
|
void ShowBusiness(not_null<Window::SessionController*> controller);
|
||||||
|
|
||||||
|
[[nodiscard]] std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||||
|
not_null<::Main::Session*> session);
|
||||||
|
|
||||||
} // namespace Settings
|
} // namespace Settings
|
||||||
|
|
|
@ -180,7 +180,6 @@ using Order = std::vector<QString>;
|
||||||
u"stories"_q,
|
u"stories"_q,
|
||||||
u"more_upload"_q,
|
u"more_upload"_q,
|
||||||
u"double_limits"_q,
|
u"double_limits"_q,
|
||||||
u"business"_q,
|
|
||||||
u"last_seen"_q,
|
u"last_seen"_q,
|
||||||
u"voice_to_text"_q,
|
u"voice_to_text"_q,
|
||||||
u"faster_download"_q,
|
u"faster_download"_q,
|
||||||
|
@ -198,6 +197,7 @@ using Order = std::vector<QString>;
|
||||||
u"infinite_reactions"_q,
|
u"infinite_reactions"_q,
|
||||||
u"animated_userpics"_q,
|
u"animated_userpics"_q,
|
||||||
u"premium_stickers"_q,
|
u"premium_stickers"_q,
|
||||||
|
u"business"_q,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1537,7 +1537,7 @@ not_null<Ui::GradientButton*> CreateSubscribeButton(
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] std::vector<PremiumPreview> PremiumPreviewOrder(
|
std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||||
not_null<Main::Session*> session) {
|
not_null<Main::Session*> session) {
|
||||||
const auto mtpOrder = session->account().appConfig().get<Order>(
|
const auto mtpOrder = session->account().appConfig().get<Order>(
|
||||||
"premium_promo_order",
|
"premium_promo_order",
|
||||||
|
@ -1684,9 +1684,9 @@ void AddSummaryPremium(
|
||||||
icons.reserve(int(entryMap.size()));
|
icons.reserve(int(entryMap.size()));
|
||||||
{
|
{
|
||||||
const auto &account = controller->session().account();
|
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",
|
"premium_promo_order",
|
||||||
FallbackOrder());*/ AssertIsDebug()
|
FallbackOrder());
|
||||||
const auto processEntry = [&](Entry &entry) {
|
const auto processEntry = [&](Entry &entry) {
|
||||||
icons.push_back(entry.icon);
|
icons.push_back(entry.icon);
|
||||||
addRow(entry);
|
addRow(entry);
|
||||||
|
|
Loading…
Add table
Reference in a new issue