mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-23 16:56:55 +00:00
PremiumPreview/BusinessFeature -> PremiumFeature.
This commit is contained in:
parent
f812166249
commit
88751896af
@ -776,7 +776,7 @@ void BackgroundPreviewBox::applyForPeer() {
|
||||
} else {
|
||||
ShowPremiumPreviewBox(
|
||||
_controller->uiShow(),
|
||||
PremiumPreview::Wallpapers);
|
||||
PremiumFeature::Wallpapers);
|
||||
}
|
||||
});
|
||||
const auto cancel = CreateChild<RoundButton>(
|
||||
|
@ -682,7 +682,7 @@ void EditCaptionBox::setupEmojiPanel() {
|
||||
&& !_controller->session().premium()) {
|
||||
ShowPremiumPreviewBox(
|
||||
_controller,
|
||||
PremiumPreview::AnimatedEmoji);
|
||||
PremiumFeature::AnimatedEmoji);
|
||||
} else {
|
||||
Data::InsertCustomEmoji(_field.get(), data.document);
|
||||
}
|
||||
|
@ -587,7 +587,7 @@ void GiftsBox(
|
||||
const auto content = box->addRow(
|
||||
object_ptr<Ui::VerticalLayout>(box),
|
||||
{});
|
||||
auto buttonCallback = [=](PremiumPreview section) {
|
||||
auto buttonCallback = [=](PremiumFeature section) {
|
||||
stars->setPaused(true);
|
||||
const auto previewBoxShown = [=](
|
||||
not_null<Ui::BoxContent*> previewBox) {
|
||||
|
@ -1216,7 +1216,7 @@ void LanguageBox::setupTop(not_null<Ui::VerticalLayout*> container) {
|
||||
if (checked && !premium) {
|
||||
ShowPremiumPreviewToBuy(
|
||||
_controller,
|
||||
PremiumPreview::RealTimeTranslation);
|
||||
PremiumFeature::RealTimeTranslation);
|
||||
_translateChatTurnOff.fire(false);
|
||||
}
|
||||
return premium
|
||||
|
@ -60,7 +60,7 @@ constexpr auto kStarPeriod = 3 * crl::time(1000);
|
||||
using Data::ReactionId;
|
||||
|
||||
struct Descriptor {
|
||||
PremiumPreview section = PremiumPreview::Stickers;
|
||||
PremiumFeature section = PremiumFeature::Stickers;
|
||||
DocumentData *requestedSticker = nullptr;
|
||||
bool fromSettings = false;
|
||||
Fn<void()> hiddenCallback;
|
||||
@ -91,92 +91,118 @@ void PreloadSticker(const std::shared_ptr<Data::DocumentMedia> &media) {
|
||||
media->videoThumbnailWanted(origin);
|
||||
}
|
||||
|
||||
[[nodiscard]] rpl::producer<QString> SectionTitle(PremiumPreview section) {
|
||||
[[nodiscard]] rpl::producer<QString> SectionTitle(PremiumFeature section) {
|
||||
switch (section) {
|
||||
case PremiumPreview::Wallpapers:
|
||||
case PremiumFeature::Wallpapers:
|
||||
return tr::lng_premium_summary_subtitle_wallpapers();
|
||||
case PremiumPreview::Stories:
|
||||
case PremiumFeature::Stories:
|
||||
return tr::lng_premium_summary_subtitle_stories();
|
||||
case PremiumPreview::DoubleLimits:
|
||||
case PremiumFeature::DoubleLimits:
|
||||
return tr::lng_premium_summary_subtitle_double_limits();
|
||||
case PremiumPreview::MoreUpload:
|
||||
case PremiumFeature::MoreUpload:
|
||||
return tr::lng_premium_summary_subtitle_more_upload();
|
||||
case PremiumPreview::FasterDownload:
|
||||
case PremiumFeature::FasterDownload:
|
||||
return tr::lng_premium_summary_subtitle_faster_download();
|
||||
case PremiumPreview::VoiceToText:
|
||||
case PremiumFeature::VoiceToText:
|
||||
return tr::lng_premium_summary_subtitle_voice_to_text();
|
||||
case PremiumPreview::NoAds:
|
||||
case PremiumFeature::NoAds:
|
||||
return tr::lng_premium_summary_subtitle_no_ads();
|
||||
case PremiumPreview::EmojiStatus:
|
||||
case PremiumFeature::EmojiStatus:
|
||||
return tr::lng_premium_summary_subtitle_emoji_status();
|
||||
case PremiumPreview::InfiniteReactions:
|
||||
case PremiumFeature::InfiniteReactions:
|
||||
return tr::lng_premium_summary_subtitle_infinite_reactions();
|
||||
case PremiumPreview::TagsForMessages:
|
||||
case PremiumFeature::TagsForMessages:
|
||||
return tr::lng_premium_summary_subtitle_tags_for_messages();
|
||||
case PremiumPreview::LastSeen:
|
||||
case PremiumFeature::LastSeen:
|
||||
return tr::lng_premium_summary_subtitle_last_seen();
|
||||
case PremiumPreview::MessagePrivacy:
|
||||
case PremiumFeature::MessagePrivacy:
|
||||
return tr::lng_premium_summary_subtitle_message_privacy();
|
||||
case PremiumPreview::Stickers:
|
||||
case PremiumFeature::Stickers:
|
||||
return tr::lng_premium_summary_subtitle_premium_stickers();
|
||||
case PremiumPreview::AnimatedEmoji:
|
||||
case PremiumFeature::AnimatedEmoji:
|
||||
return tr::lng_premium_summary_subtitle_animated_emoji();
|
||||
case PremiumPreview::AdvancedChatManagement:
|
||||
case PremiumFeature::AdvancedChatManagement:
|
||||
return tr::lng_premium_summary_subtitle_advanced_chat_management();
|
||||
case PremiumPreview::ProfileBadge:
|
||||
case PremiumFeature::ProfileBadge:
|
||||
return tr::lng_premium_summary_subtitle_profile_badge();
|
||||
case PremiumPreview::AnimatedUserpics:
|
||||
case PremiumFeature::AnimatedUserpics:
|
||||
return tr::lng_premium_summary_subtitle_animated_userpics();
|
||||
case PremiumPreview::RealTimeTranslation:
|
||||
case PremiumFeature::RealTimeTranslation:
|
||||
return tr::lng_premium_summary_subtitle_translation();
|
||||
case PremiumPreview::Business:
|
||||
case PremiumFeature::Business:
|
||||
return tr::lng_premium_summary_subtitle_business();
|
||||
|
||||
case PremiumFeature::BusinessLocation:
|
||||
return tr::lng_business_subtitle_location();
|
||||
case PremiumFeature::BusinessHours:
|
||||
return tr::lng_business_subtitle_opening_hours();
|
||||
case PremiumFeature::QuickReplies:
|
||||
return tr::lng_business_subtitle_quick_replies();
|
||||
case PremiumFeature::GreetingMessage:
|
||||
return tr::lng_business_subtitle_greeting_messages();
|
||||
case PremiumFeature::AwayMessage:
|
||||
return tr::lng_business_subtitle_away_messages();
|
||||
case PremiumFeature::BusinessBots:
|
||||
return tr::lng_business_subtitle_chatbots();
|
||||
}
|
||||
Unexpected("PremiumPreview in SectionTitle.");
|
||||
Unexpected("PremiumFeature in SectionTitle.");
|
||||
}
|
||||
|
||||
[[nodiscard]] rpl::producer<QString> SectionAbout(PremiumPreview section) {
|
||||
[[nodiscard]] rpl::producer<QString> SectionAbout(PremiumFeature section) {
|
||||
switch (section) {
|
||||
case PremiumPreview::Wallpapers:
|
||||
case PremiumFeature::Wallpapers:
|
||||
return tr::lng_premium_summary_about_wallpapers();
|
||||
case PremiumPreview::Stories:
|
||||
case PremiumFeature::Stories:
|
||||
return tr::lng_premium_summary_about_stories();
|
||||
case PremiumPreview::DoubleLimits:
|
||||
case PremiumFeature::DoubleLimits:
|
||||
return tr::lng_premium_summary_about_double_limits();
|
||||
case PremiumPreview::MoreUpload:
|
||||
case PremiumFeature::MoreUpload:
|
||||
return tr::lng_premium_summary_about_more_upload();
|
||||
case PremiumPreview::FasterDownload:
|
||||
case PremiumFeature::FasterDownload:
|
||||
return tr::lng_premium_summary_about_faster_download();
|
||||
case PremiumPreview::VoiceToText:
|
||||
case PremiumFeature::VoiceToText:
|
||||
return tr::lng_premium_summary_about_voice_to_text();
|
||||
case PremiumPreview::NoAds:
|
||||
case PremiumFeature::NoAds:
|
||||
return tr::lng_premium_summary_about_no_ads();
|
||||
case PremiumPreview::EmojiStatus:
|
||||
case PremiumFeature::EmojiStatus:
|
||||
return tr::lng_premium_summary_about_emoji_status();
|
||||
case PremiumPreview::InfiniteReactions:
|
||||
case PremiumFeature::InfiniteReactions:
|
||||
return tr::lng_premium_summary_about_infinite_reactions();
|
||||
case PremiumPreview::TagsForMessages:
|
||||
case PremiumFeature::TagsForMessages:
|
||||
return tr::lng_premium_summary_about_tags_for_messages();
|
||||
case PremiumPreview::LastSeen:
|
||||
case PremiumFeature::LastSeen:
|
||||
return tr::lng_premium_summary_about_last_seen();
|
||||
case PremiumPreview::MessagePrivacy:
|
||||
case PremiumFeature::MessagePrivacy:
|
||||
return tr::lng_premium_summary_about_message_privacy();
|
||||
case PremiumPreview::Stickers:
|
||||
case PremiumFeature::Stickers:
|
||||
return tr::lng_premium_summary_about_premium_stickers();
|
||||
case PremiumPreview::AnimatedEmoji:
|
||||
case PremiumFeature::AnimatedEmoji:
|
||||
return tr::lng_premium_summary_about_animated_emoji();
|
||||
case PremiumPreview::AdvancedChatManagement:
|
||||
case PremiumFeature::AdvancedChatManagement:
|
||||
return tr::lng_premium_summary_about_advanced_chat_management();
|
||||
case PremiumPreview::ProfileBadge:
|
||||
case PremiumFeature::ProfileBadge:
|
||||
return tr::lng_premium_summary_about_profile_badge();
|
||||
case PremiumPreview::AnimatedUserpics:
|
||||
case PremiumFeature::AnimatedUserpics:
|
||||
return tr::lng_premium_summary_about_animated_userpics();
|
||||
case PremiumPreview::RealTimeTranslation:
|
||||
case PremiumFeature::RealTimeTranslation:
|
||||
return tr::lng_premium_summary_about_translation();
|
||||
case PremiumPreview::Business:
|
||||
case PremiumFeature::Business:
|
||||
return tr::lng_premium_summary_about_business();
|
||||
|
||||
case PremiumFeature::BusinessLocation:
|
||||
return tr::lng_business_about_location();
|
||||
case PremiumFeature::BusinessHours:
|
||||
return tr::lng_business_about_opening_hours();
|
||||
case PremiumFeature::QuickReplies:
|
||||
return tr::lng_business_about_quick_replies();
|
||||
case PremiumFeature::GreetingMessage:
|
||||
return tr::lng_business_about_greeting_messages();
|
||||
case PremiumFeature::AwayMessage:
|
||||
return tr::lng_business_about_away_messages();
|
||||
case PremiumFeature::BusinessBots:
|
||||
return tr::lng_business_about_chatbots();
|
||||
}
|
||||
Unexpected("PremiumPreview in SectionTitle.");
|
||||
Unexpected("PremiumFeature in SectionTitle.");
|
||||
}
|
||||
|
||||
[[nodiscard]] object_ptr<Ui::RpWidget> ChatBackPreview(
|
||||
@ -468,33 +494,40 @@ struct VideoPreviewDocument {
|
||||
RectPart align = RectPart::Bottom;
|
||||
};
|
||||
|
||||
[[nodiscard]] bool VideoAlignToTop(PremiumPreview section) {
|
||||
return (section == PremiumPreview::MoreUpload)
|
||||
|| (section == PremiumPreview::NoAds)
|
||||
|| (section == PremiumPreview::AnimatedEmoji);
|
||||
[[nodiscard]] bool VideoAlignToTop(PremiumFeature section) {
|
||||
return (section == PremiumFeature::MoreUpload)
|
||||
|| (section == PremiumFeature::NoAds)
|
||||
|| (section == PremiumFeature::AnimatedEmoji);
|
||||
}
|
||||
|
||||
[[nodiscard]] DocumentData *LookupVideo(
|
||||
not_null<Main::Session*> session,
|
||||
PremiumPreview section) {
|
||||
PremiumFeature section) {
|
||||
const auto name = [&] {
|
||||
switch (section) {
|
||||
case PremiumPreview::MoreUpload: return "more_upload";
|
||||
case PremiumPreview::FasterDownload: return "faster_download";
|
||||
case PremiumPreview::VoiceToText: return "voice_to_text";
|
||||
case PremiumPreview::NoAds: return "no_ads";
|
||||
case PremiumPreview::AnimatedEmoji: return "animated_emoji";
|
||||
case PremiumPreview::AdvancedChatManagement:
|
||||
case PremiumFeature::MoreUpload: return "more_upload";
|
||||
case PremiumFeature::FasterDownload: return "faster_download";
|
||||
case PremiumFeature::VoiceToText: return "voice_to_text";
|
||||
case PremiumFeature::NoAds: return "no_ads";
|
||||
case PremiumFeature::AnimatedEmoji: return "animated_emoji";
|
||||
case PremiumFeature::AdvancedChatManagement:
|
||||
return "advanced_chat_management";
|
||||
case PremiumPreview::EmojiStatus: return "emoji_status";
|
||||
case PremiumPreview::InfiniteReactions: return "infinite_reactions";
|
||||
case PremiumPreview::TagsForMessages: return "saved_tags";
|
||||
case PremiumPreview::ProfileBadge: return "profile_badge";
|
||||
case PremiumPreview::AnimatedUserpics: return "animated_userpics";
|
||||
case PremiumPreview::RealTimeTranslation: return "translations";
|
||||
case PremiumPreview::Wallpapers: return "wallpapers";
|
||||
case PremiumPreview::LastSeen: return "last_seen";
|
||||
case PremiumPreview::MessagePrivacy: return "message_privacy";
|
||||
case PremiumFeature::EmojiStatus: return "emoji_status";
|
||||
case PremiumFeature::InfiniteReactions: return "infinite_reactions";
|
||||
case PremiumFeature::TagsForMessages: return "saved_tags";
|
||||
case PremiumFeature::ProfileBadge: return "profile_badge";
|
||||
case PremiumFeature::AnimatedUserpics: return "animated_userpics";
|
||||
case PremiumFeature::RealTimeTranslation: return "translations";
|
||||
case PremiumFeature::Wallpapers: return "wallpapers";
|
||||
case PremiumFeature::LastSeen: return "last_seen";
|
||||
case PremiumFeature::MessagePrivacy: return "message_privacy";
|
||||
|
||||
case PremiumFeature::BusinessLocation: return "business_location";
|
||||
case PremiumFeature::BusinessHours: return "business_hours";
|
||||
case PremiumFeature::QuickReplies: return "quick_replies";
|
||||
case PremiumFeature::GreetingMessage: return "greeting_message";
|
||||
case PremiumFeature::AwayMessage: return "away_message";
|
||||
case PremiumFeature::BusinessBots: return "business_bots";
|
||||
}
|
||||
return "";
|
||||
}();
|
||||
@ -721,7 +754,7 @@ struct VideoPreviewDocument {
|
||||
[[nodiscard]] not_null<Ui::RpWidget*> GenericPreview(
|
||||
not_null<Ui::RpWidget*> parent,
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void()> readyCallback) {
|
||||
const auto result = Ui::CreateChild<Ui::RpWidget>(parent.get());
|
||||
result->show();
|
||||
@ -762,10 +795,10 @@ struct VideoPreviewDocument {
|
||||
[[nodiscard]] not_null<Ui::RpWidget*> GenerateDefaultPreview(
|
||||
not_null<Ui::RpWidget*> parent,
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void()> readyCallback) {
|
||||
switch (section) {
|
||||
case PremiumPreview::Stickers:
|
||||
case PremiumFeature::Stickers:
|
||||
return StickersPreview(parent, std::move(show), readyCallback);
|
||||
default:
|
||||
return GenericPreview(
|
||||
@ -789,8 +822,8 @@ struct VideoPreviewDocument {
|
||||
|
||||
[[nodiscard]] object_ptr<Ui::RpWidget> CreateSwitch(
|
||||
not_null<Ui::RpWidget*> parent,
|
||||
not_null<rpl::variable<PremiumPreview>*> selected,
|
||||
std::vector<PremiumPreview> order) {
|
||||
not_null<rpl::variable<PremiumFeature>*> selected,
|
||||
std::vector<PremiumFeature> order) {
|
||||
const auto padding = st::premiumDotPadding;
|
||||
const auto width = padding.left() + st::premiumDot + padding.right();
|
||||
const auto height = padding.top() + st::premiumDot + padding.bottom();
|
||||
@ -861,14 +894,20 @@ void PreviewBox(
|
||||
Ui::Animations::Simple animation;
|
||||
Fn<void()> preload;
|
||||
std::vector<Hiding> hiding;
|
||||
rpl::variable<PremiumPreview> selected;
|
||||
std::vector<PremiumPreview> order;
|
||||
rpl::variable<PremiumFeature> selected;
|
||||
std::vector<PremiumFeature> order;
|
||||
};
|
||||
const auto state = outer->lifetime().make_state<State>();
|
||||
state->selected = descriptor.section;
|
||||
state->order = Settings::PremiumPreviewOrder(&show->session());
|
||||
auto premiumOrder = Settings::PremiumFeaturesOrder(&show->session());
|
||||
auto businessOrder = Settings::BusinessFeaturesOrder(&show->session());
|
||||
state->order = ranges::contains(businessOrder, descriptor.section)
|
||||
? std::move(businessOrder)
|
||||
: ranges::contains(businessOrder, descriptor.section)
|
||||
? std::move(premiumOrder)
|
||||
: std::vector{ descriptor.section };
|
||||
|
||||
const auto index = [=](PremiumPreview section) {
|
||||
const auto index = [=](PremiumFeature section) {
|
||||
const auto it = ranges::find(state->order, section);
|
||||
return (it == end(state->order))
|
||||
? 0
|
||||
@ -911,7 +950,7 @@ void PreviewBox(
|
||||
return;
|
||||
}
|
||||
const auto now = state->selected.current();
|
||||
if (now != PremiumPreview::Stickers && !state->stickersPreload) {
|
||||
if (now != PremiumFeature::Stickers && !state->stickersPreload) {
|
||||
const auto ready = [=] {
|
||||
if (state->stickersPreload) {
|
||||
state->stickersPreloadReady = true;
|
||||
@ -922,14 +961,14 @@ void PreviewBox(
|
||||
state->stickersPreload = GenerateDefaultPreview(
|
||||
outer,
|
||||
show,
|
||||
PremiumPreview::Stickers,
|
||||
PremiumFeature::Stickers,
|
||||
ready);
|
||||
state->stickersPreload->hide();
|
||||
}
|
||||
};
|
||||
|
||||
switch (descriptor.section) {
|
||||
case PremiumPreview::Stickers:
|
||||
case PremiumFeature::Stickers:
|
||||
state->content = media
|
||||
? StickerPreview(outer, show, media, state->preload)
|
||||
: StickersPreview(outer, show, state->preload);
|
||||
@ -945,7 +984,7 @@ void PreviewBox(
|
||||
|
||||
state->selected.value(
|
||||
) | rpl::combine_previous(
|
||||
) | rpl::start_with_next([=](PremiumPreview was, PremiumPreview now) {
|
||||
) | rpl::start_with_next([=](PremiumFeature was, PremiumFeature now) {
|
||||
const auto animationCallback = [=] {
|
||||
if (!state->animation.animating()) {
|
||||
for (const auto &hiding : base::take(state->hiding)) {
|
||||
@ -987,7 +1026,7 @@ void PreviewBox(
|
||||
.leftTill = state->content->x() - start,
|
||||
});
|
||||
state->leftFrom = start;
|
||||
if (now == PremiumPreview::Stickers && state->stickersPreload) {
|
||||
if (now == PremiumFeature::Stickers && state->stickersPreload) {
|
||||
state->content = base::take(state->stickersPreload);
|
||||
state->content->show();
|
||||
if (base::take(state->stickersPreloadReady)) {
|
||||
@ -1058,14 +1097,14 @@ void PreviewBox(
|
||||
return Settings::LookupPremiumRef(state->selected.current());
|
||||
};
|
||||
auto unlock = state->selected.value(
|
||||
) | rpl::map([=](PremiumPreview section) {
|
||||
return (section == PremiumPreview::InfiniteReactions)
|
||||
) | rpl::map([=](PremiumFeature section) {
|
||||
return (section == PremiumFeature::InfiniteReactions)
|
||||
? tr::lng_premium_unlock_reactions()
|
||||
: (section == PremiumPreview::Stickers)
|
||||
: (section == PremiumFeature::Stickers)
|
||||
? tr::lng_premium_unlock_stickers()
|
||||
: (section == PremiumPreview::AnimatedEmoji)
|
||||
: (section == PremiumFeature::AnimatedEmoji)
|
||||
? tr::lng_premium_unlock_emoji()
|
||||
: (section == PremiumPreview::EmojiStatus)
|
||||
: (section == PremiumFeature::EmojiStatus)
|
||||
? tr::lng_premium_unlock_status()
|
||||
: tr::lng_premium_more_about();
|
||||
}) | rpl::flatten_latest();
|
||||
@ -1212,19 +1251,19 @@ void Show(
|
||||
descriptor.shownCallback(raw);
|
||||
}
|
||||
return;
|
||||
} else if (descriptor.section == PremiumPreview::DoubleLimits) {
|
||||
} else if (descriptor.section == PremiumFeature::DoubleLimits) {
|
||||
show->showBox(Box([=](not_null<Ui::GenericBox*> box) {
|
||||
DoubledLimitsPreviewBox(box, &show->session());
|
||||
DecorateListPromoBox(box, show, descriptor);
|
||||
}));
|
||||
return;
|
||||
} else if (descriptor.section == PremiumPreview::Stories) {
|
||||
} else if (descriptor.section == PremiumFeature::Stories) {
|
||||
show->showBox(Box([=](not_null<Ui::GenericBox*> box) {
|
||||
UpgradedStoriesPreviewBox(box, &show->session());
|
||||
DecorateListPromoBox(box, show, descriptor);
|
||||
}));
|
||||
return;
|
||||
} else if (descriptor.section == PremiumPreview::Business) {
|
||||
} else if (descriptor.section == PremiumFeature::Business) {
|
||||
const auto window = show->resolveWindow(
|
||||
ChatHelpers::WindowUsage::PremiumPromo);
|
||||
if (window) {
|
||||
@ -1298,21 +1337,21 @@ void ShowStickerPreviewBox(
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
not_null<DocumentData*> document) {
|
||||
Show(std::move(show), Descriptor{
|
||||
.section = PremiumPreview::Stickers,
|
||||
.section = PremiumFeature::Stickers,
|
||||
.requestedSticker = document,
|
||||
});
|
||||
}
|
||||
|
||||
void ShowPremiumPreviewBox(
|
||||
not_null<Window::SessionController*> controller,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void(not_null<Ui::BoxContent*>)> shown) {
|
||||
ShowPremiumPreviewBox(controller->uiShow(), section, std::move(shown));
|
||||
}
|
||||
|
||||
void ShowPremiumPreviewBox(
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void(not_null<Ui::BoxContent*>)> shown,
|
||||
bool hideSubscriptionButton) {
|
||||
Show(std::move(show), Descriptor{
|
||||
@ -1324,7 +1363,7 @@ void ShowPremiumPreviewBox(
|
||||
|
||||
void ShowPremiumPreviewToBuy(
|
||||
not_null<Window::SessionController*> controller,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void()> hiddenCallback) {
|
||||
Show(controller->uiShow(), Descriptor{
|
||||
.section = section,
|
||||
|
@ -45,7 +45,8 @@ void UpgradedStoriesPreviewBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
not_null<Main::Session*> session);
|
||||
|
||||
enum class PremiumPreview {
|
||||
enum class PremiumFeature {
|
||||
// Premium features.
|
||||
Stories,
|
||||
DoubleLimits,
|
||||
MoreUpload,
|
||||
@ -66,23 +67,31 @@ enum class PremiumPreview {
|
||||
MessagePrivacy,
|
||||
Business,
|
||||
|
||||
// Business features.
|
||||
BusinessLocation,
|
||||
BusinessHours,
|
||||
QuickReplies,
|
||||
GreetingMessage,
|
||||
AwayMessage,
|
||||
BusinessBots,
|
||||
|
||||
kCount,
|
||||
};
|
||||
|
||||
void ShowPremiumPreviewBox(
|
||||
not_null<Window::SessionController*> controller,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void(not_null<Ui::BoxContent*>)> shown = nullptr);
|
||||
|
||||
void ShowPremiumPreviewBox(
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void(not_null<Ui::BoxContent*>)> shown = nullptr,
|
||||
bool hideSubscriptionButton = false);
|
||||
|
||||
void ShowPremiumPreviewToBuy(
|
||||
not_null<Window::SessionController*> controller,
|
||||
PremiumPreview section,
|
||||
PremiumFeature section,
|
||||
Fn<void()> hiddenCallback = nullptr);
|
||||
|
||||
void PremiumUnavailableBox(not_null<Ui::GenericBox*> box);
|
||||
|
@ -1135,7 +1135,7 @@ void SendFilesBox::setupEmojiPanel() {
|
||||
_captionToPeer,
|
||||
data.document)
|
||||
: (_limits & SendFilesAllow::EmojiWithoutPremium))) {
|
||||
ShowPremiumPreviewBox(_show, PremiumPreview::AnimatedEmoji);
|
||||
ShowPremiumPreviewBox(_show, PremiumFeature::AnimatedEmoji);
|
||||
} else {
|
||||
Data::InsertCustomEmoji(_caption.data(), data.document);
|
||||
}
|
||||
|
@ -665,7 +665,7 @@ bool ShowSearchTagsPromo(
|
||||
if (!controller) {
|
||||
return false;
|
||||
}
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::TagsForMessages);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::TagsForMessages);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ namespace {
|
||||
if (const auto controller = my.sessionWindow.get()) {
|
||||
ShowPremiumPreviewBox(
|
||||
controller,
|
||||
PremiumPreview::TagsForMessages);
|
||||
PremiumFeature::TagsForMessages);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ void FillSponsoredMessagesMenu(
|
||||
menu->addSeparator(&st::expandedMenuSeparator);
|
||||
}
|
||||
menu->addAction(tr::lng_sponsored_hide_ads(tr::now), [=] {
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::NoAds);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
|
||||
}, &st::menuIconCancel);
|
||||
}
|
||||
|
||||
|
@ -362,7 +362,7 @@ ClickHandlerPtr HideSponsoredClickHandler() {
|
||||
return std::make_shared<LambdaClickHandler>([=](ClickContext context) {
|
||||
const auto my = context.other.value<ClickHandlerContext>();
|
||||
if (const auto controller = my.sessionWindow.get()) {
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::NoAds);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -793,7 +793,7 @@ void ShowTrialTranscribesToast(int left, TimeId until) {
|
||||
}
|
||||
const auto filter = [=](const auto &...) {
|
||||
if (const auto controller = window->sessionController()) {
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::VoiceToText);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::VoiceToText);
|
||||
window->activate();
|
||||
}
|
||||
return false;
|
||||
|
@ -3031,7 +3031,7 @@ void Message::refreshReactions() {
|
||||
= ExtractController(context)) {
|
||||
ShowPremiumPreviewBox(
|
||||
controller,
|
||||
PremiumPreview::TagsForMessages);
|
||||
PremiumFeature::TagsForMessages);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ void StickerToast::showWithTitle(const QString &title) {
|
||||
&& (i->second->flags & Data::StickersSetFlag::Installed)) {
|
||||
ShowPremiumPreviewBox(
|
||||
_controller,
|
||||
PremiumPreview::AnimatedEmoji);
|
||||
PremiumFeature::AnimatedEmoji);
|
||||
} else {
|
||||
_controller->show(Box<StickerSetBox>(
|
||||
_controller->uiShow(),
|
||||
|
@ -272,7 +272,7 @@ ClickHandlerPtr TranscribeButton::link() {
|
||||
if (const auto controller = my.sessionWindow.get()) {
|
||||
ShowPremiumPreviewBox(
|
||||
controller,
|
||||
PremiumPreview::VoiceToText);
|
||||
PremiumFeature::VoiceToText);
|
||||
}
|
||||
} else {
|
||||
const auto max = session->api().transcribes().trialsMaxLengthMs();
|
||||
|
@ -281,7 +281,7 @@ bool EmojiStatusPanel::filter(
|
||||
if (_chooseFilter) {
|
||||
return _chooseFilter(chosenId);
|
||||
} else if (chosenId && !controller->session().premium()) {
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::EmojiStatus);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::EmojiStatus);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -352,7 +352,7 @@ struct Feature {
|
||||
data->requested = false;
|
||||
const auto usage = ChatHelpers::WindowUsage::PremiumPromo;
|
||||
if (const auto window = show->resolveWindow(usage)) {
|
||||
ShowPremiumPreviewBox(window, PremiumPreview::Stories);
|
||||
ShowPremiumPreviewBox(window, PremiumFeature::Stories);
|
||||
window->window().activate();
|
||||
}
|
||||
} else if (now.mode.cooldownTill > now.now) {
|
||||
|
@ -1254,7 +1254,7 @@ void OverlayWidget::showPremiumDownloadPromo() {
|
||||
const auto filter = [=](const auto &...) {
|
||||
const auto usage = ChatHelpers::WindowUsage::PremiumPromo;
|
||||
if (const auto window = uiShow()->resolveWindow(usage)) {
|
||||
ShowPremiumPreviewBox(window, PremiumPreview::Stories);
|
||||
ShowPremiumPreviewBox(window, PremiumFeature::Stories);
|
||||
window->window().activate();
|
||||
}
|
||||
return false;
|
||||
|
@ -53,7 +53,7 @@ struct Entry {
|
||||
const style::icon *icon;
|
||||
rpl::producer<QString> title;
|
||||
rpl::producer<QString> description;
|
||||
BusinessFeature feature = BusinessFeature::Location;
|
||||
PremiumFeature feature = PremiumFeature::BusinessLocation;
|
||||
};
|
||||
|
||||
using Order = std::vector<QString>;
|
||||
@ -77,7 +77,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconLocation,
|
||||
tr::lng_business_subtitle_location(),
|
||||
tr::lng_business_about_location(),
|
||||
BusinessFeature::Location,
|
||||
PremiumFeature::BusinessLocation,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -86,7 +86,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconHours,
|
||||
tr::lng_business_subtitle_opening_hours(),
|
||||
tr::lng_business_about_opening_hours(),
|
||||
BusinessFeature::OpeningHours,
|
||||
PremiumFeature::BusinessHours,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -95,7 +95,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconReplies,
|
||||
tr::lng_business_subtitle_quick_replies(),
|
||||
tr::lng_business_about_quick_replies(),
|
||||
BusinessFeature::QuickReplies,
|
||||
PremiumFeature::QuickReplies,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -104,7 +104,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconGreeting,
|
||||
tr::lng_business_subtitle_greeting_messages(),
|
||||
tr::lng_business_about_greeting_messages(),
|
||||
BusinessFeature::GreetingMessages,
|
||||
PremiumFeature::GreetingMessage,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -113,7 +113,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconAway,
|
||||
tr::lng_business_subtitle_away_messages(),
|
||||
tr::lng_business_about_away_messages(),
|
||||
BusinessFeature::AwayMessages,
|
||||
PremiumFeature::AwayMessage,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -122,7 +122,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsBusinessIconChatbots,
|
||||
tr::lng_business_subtitle_chatbots(),
|
||||
tr::lng_business_about_chatbots(),
|
||||
BusinessFeature::Chatbots,
|
||||
PremiumFeature::BusinessBots,
|
||||
},
|
||||
},
|
||||
};
|
||||
@ -131,7 +131,7 @@ using Order = std::vector<QString>;
|
||||
void AddBusinessSummary(
|
||||
not_null<Ui::VerticalLayout*> content,
|
||||
not_null<Window::SessionController*> controller,
|
||||
Fn<void(BusinessFeature)> buttonCallback) {
|
||||
Fn<void(PremiumFeature)> buttonCallback) {
|
||||
const auto &stDefault = st::settingsButton;
|
||||
const auto &stLabel = st::defaultFlatLabel;
|
||||
const auto iconSize = st::settingsPremiumIconDouble.size();
|
||||
@ -359,15 +359,22 @@ void Business::setupContent() {
|
||||
|
||||
Ui::AddSkip(content, st::settingsFromFileTop);
|
||||
|
||||
AddBusinessSummary(content, _controller, [=](BusinessFeature feature) {
|
||||
AddBusinessSummary(content, _controller, [=](PremiumFeature feature) {
|
||||
if (!_controller->session().premium()) {
|
||||
_setPaused(true);
|
||||
const auto hidden = crl::guard(this, [=] { _setPaused(false); });
|
||||
|
||||
ShowPremiumPreviewToBuy(_controller, feature, hidden);
|
||||
return;
|
||||
}
|
||||
showOther([&] {
|
||||
switch (feature) {
|
||||
case BusinessFeature::AwayMessages: return AwayMessageId();
|
||||
case BusinessFeature::OpeningHours: return WorkingHoursId();
|
||||
case BusinessFeature::Location: return LocationId();
|
||||
case BusinessFeature::GreetingMessages: return GreetingId();
|
||||
case BusinessFeature::QuickReplies: return QuickRepliesId();
|
||||
case BusinessFeature::Chatbots: return ChatbotsId();
|
||||
case PremiumFeature::AwayMessage: return AwayMessageId();
|
||||
case PremiumFeature::BusinessHours: return WorkingHoursId();
|
||||
case PremiumFeature::BusinessLocation: return LocationId();
|
||||
case PremiumFeature::GreetingMessage: return GreetingId();
|
||||
case PremiumFeature::QuickReplies: return QuickRepliesId();
|
||||
case PremiumFeature::BusinessBots: return ChatbotsId();
|
||||
}
|
||||
Unexpected("Feature in Business::setupContent.");
|
||||
}());
|
||||
@ -591,7 +598,7 @@ void ShowBusiness(not_null<Window::SessionController*> controller) {
|
||||
controller->showSettings(Settings::BusinessId());
|
||||
}
|
||||
|
||||
std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||
std::vector<PremiumFeature> BusinessFeaturesOrder(
|
||||
not_null<::Main::Session*> session) {
|
||||
const auto mtpOrder = session->account().appConfig().get<Order>(
|
||||
"business_promo_order",
|
||||
@ -600,21 +607,21 @@ std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||
mtpOrder
|
||||
) | ranges::views::transform([](const QString &s) {
|
||||
if (s == u"greeting_message"_q) {
|
||||
return BusinessFeature::GreetingMessages;
|
||||
return PremiumFeature::GreetingMessage;
|
||||
} else if (s == u"away_message"_q) {
|
||||
return BusinessFeature::AwayMessages;
|
||||
return PremiumFeature::AwayMessage;
|
||||
} else if (s == u"quick_replies"_q) {
|
||||
return BusinessFeature::QuickReplies;
|
||||
return PremiumFeature::QuickReplies;
|
||||
} else if (s == u"business_hours"_q) {
|
||||
return BusinessFeature::OpeningHours;
|
||||
return PremiumFeature::BusinessHours;
|
||||
} else if (s == u"business_location"_q) {
|
||||
return BusinessFeature::Location;
|
||||
return PremiumFeature::BusinessLocation;
|
||||
} else if (s == u"business_bots"_q) {
|
||||
return BusinessFeature::Chatbots;
|
||||
return PremiumFeature::BusinessBots;
|
||||
}
|
||||
return BusinessFeature::kCount;
|
||||
}) | ranges::views::filter([](BusinessFeature feature) {
|
||||
return (feature != BusinessFeature::kCount);
|
||||
return PremiumFeature::kCount;
|
||||
}) | ranges::views::filter([](PremiumFeature feature) {
|
||||
return (feature != PremiumFeature::kCount);
|
||||
}) | ranges::to_vector;
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include "settings/settings_type.h"
|
||||
|
||||
enum class PremiumFeature;
|
||||
|
||||
namespace Main {
|
||||
class Session;
|
||||
} // namespace Main
|
||||
@ -19,22 +21,11 @@ class SessionController;
|
||||
|
||||
namespace Settings {
|
||||
|
||||
enum class BusinessFeature {
|
||||
Location,
|
||||
OpeningHours,
|
||||
QuickReplies,
|
||||
GreetingMessages,
|
||||
AwayMessages,
|
||||
Chatbots,
|
||||
|
||||
kCount,
|
||||
};
|
||||
|
||||
[[nodiscard]] Type BusinessId();
|
||||
|
||||
void ShowBusiness(not_null<Window::SessionController*> controller);
|
||||
|
||||
[[nodiscard]] std::vector<BusinessFeature> BusinessFeaturesOrder(
|
||||
[[nodiscard]] std::vector<PremiumFeature> BusinessFeaturesOrder(
|
||||
not_null<::Main::Session*> session);
|
||||
|
||||
} // namespace Settings
|
||||
|
@ -169,7 +169,7 @@ struct Entry {
|
||||
const style::icon *icon;
|
||||
rpl::producer<QString> title;
|
||||
rpl::producer<QString> description;
|
||||
PremiumPreview section = PremiumPreview::DoubleLimits;
|
||||
PremiumFeature section = PremiumFeature::DoubleLimits;
|
||||
bool newBadge = false;
|
||||
};
|
||||
|
||||
@ -209,7 +209,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconTags,
|
||||
tr::lng_premium_summary_subtitle_tags_for_messages(),
|
||||
tr::lng_premium_summary_about_tags_for_messages(),
|
||||
PremiumPreview::TagsForMessages,
|
||||
PremiumFeature::TagsForMessages,
|
||||
true,
|
||||
},
|
||||
},
|
||||
@ -219,7 +219,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconLastSeen,
|
||||
tr::lng_premium_summary_subtitle_last_seen(),
|
||||
tr::lng_premium_summary_about_last_seen(),
|
||||
PremiumPreview::LastSeen,
|
||||
PremiumFeature::LastSeen,
|
||||
true,
|
||||
},
|
||||
},
|
||||
@ -229,7 +229,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconPrivacy,
|
||||
tr::lng_premium_summary_subtitle_message_privacy(),
|
||||
tr::lng_premium_summary_about_message_privacy(),
|
||||
PremiumPreview::MessagePrivacy,
|
||||
PremiumFeature::MessagePrivacy,
|
||||
true,
|
||||
},
|
||||
},
|
||||
@ -239,7 +239,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconWallpapers,
|
||||
tr::lng_premium_summary_subtitle_wallpapers(),
|
||||
tr::lng_premium_summary_about_wallpapers(),
|
||||
PremiumPreview::Wallpapers,
|
||||
PremiumFeature::Wallpapers,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -248,7 +248,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconStories,
|
||||
tr::lng_premium_summary_subtitle_stories(),
|
||||
tr::lng_premium_summary_about_stories(),
|
||||
PremiumPreview::Stories,
|
||||
PremiumFeature::Stories,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -257,7 +257,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconDouble,
|
||||
tr::lng_premium_summary_subtitle_double_limits(),
|
||||
tr::lng_premium_summary_about_double_limits(),
|
||||
PremiumPreview::DoubleLimits,
|
||||
PremiumFeature::DoubleLimits,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -266,7 +266,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconFiles,
|
||||
tr::lng_premium_summary_subtitle_more_upload(),
|
||||
tr::lng_premium_summary_about_more_upload(),
|
||||
PremiumPreview::MoreUpload,
|
||||
PremiumFeature::MoreUpload,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -275,7 +275,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconSpeed,
|
||||
tr::lng_premium_summary_subtitle_faster_download(),
|
||||
tr::lng_premium_summary_about_faster_download(),
|
||||
PremiumPreview::FasterDownload,
|
||||
PremiumFeature::FasterDownload,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -284,7 +284,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconVoice,
|
||||
tr::lng_premium_summary_subtitle_voice_to_text(),
|
||||
tr::lng_premium_summary_about_voice_to_text(),
|
||||
PremiumPreview::VoiceToText,
|
||||
PremiumFeature::VoiceToText,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -293,7 +293,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconChannelsOff,
|
||||
tr::lng_premium_summary_subtitle_no_ads(),
|
||||
tr::lng_premium_summary_about_no_ads(),
|
||||
PremiumPreview::NoAds,
|
||||
PremiumFeature::NoAds,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -302,7 +302,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconStatus,
|
||||
tr::lng_premium_summary_subtitle_emoji_status(),
|
||||
tr::lng_premium_summary_about_emoji_status(),
|
||||
PremiumPreview::EmojiStatus,
|
||||
PremiumFeature::EmojiStatus,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -311,7 +311,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconLike,
|
||||
tr::lng_premium_summary_subtitle_infinite_reactions(),
|
||||
tr::lng_premium_summary_about_infinite_reactions(),
|
||||
PremiumPreview::InfiniteReactions,
|
||||
PremiumFeature::InfiniteReactions,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -320,7 +320,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsIconStickers,
|
||||
tr::lng_premium_summary_subtitle_premium_stickers(),
|
||||
tr::lng_premium_summary_about_premium_stickers(),
|
||||
PremiumPreview::Stickers,
|
||||
PremiumFeature::Stickers,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -329,7 +329,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsIconEmoji,
|
||||
tr::lng_premium_summary_subtitle_animated_emoji(),
|
||||
tr::lng_premium_summary_about_animated_emoji(),
|
||||
PremiumPreview::AnimatedEmoji,
|
||||
PremiumFeature::AnimatedEmoji,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -338,7 +338,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsIconChat,
|
||||
tr::lng_premium_summary_subtitle_advanced_chat_management(),
|
||||
tr::lng_premium_summary_about_advanced_chat_management(),
|
||||
PremiumPreview::AdvancedChatManagement,
|
||||
PremiumFeature::AdvancedChatManagement,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -347,7 +347,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconStar,
|
||||
tr::lng_premium_summary_subtitle_profile_badge(),
|
||||
tr::lng_premium_summary_about_profile_badge(),
|
||||
PremiumPreview::ProfileBadge,
|
||||
PremiumFeature::ProfileBadge,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -356,7 +356,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconPlay,
|
||||
tr::lng_premium_summary_subtitle_animated_userpics(),
|
||||
tr::lng_premium_summary_about_animated_userpics(),
|
||||
PremiumPreview::AnimatedUserpics,
|
||||
PremiumFeature::AnimatedUserpics,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -365,7 +365,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconTranslations,
|
||||
tr::lng_premium_summary_subtitle_translation(),
|
||||
tr::lng_premium_summary_about_translation(),
|
||||
PremiumPreview::RealTimeTranslation,
|
||||
PremiumFeature::RealTimeTranslation,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -374,7 +374,7 @@ using Order = std::vector<QString>;
|
||||
&st::settingsPremiumIconPlay, AssertIsDebug()
|
||||
tr::lng_premium_summary_subtitle_business(),
|
||||
tr::lng_premium_summary_about_business(),
|
||||
PremiumPreview::Business,
|
||||
PremiumFeature::Business,
|
||||
true,
|
||||
},
|
||||
},
|
||||
@ -971,7 +971,7 @@ void Premium::setupContent() {
|
||||
|
||||
setupSubscriptionOptions(content);
|
||||
|
||||
auto buttonCallback = [=](PremiumPreview section) {
|
||||
auto buttonCallback = [=](PremiumFeature section) {
|
||||
_setPaused(true);
|
||||
const auto hidden = crl::guard(this, [=] { _setPaused(false); });
|
||||
|
||||
@ -1350,7 +1350,7 @@ void StartPremiumPayment(
|
||||
}
|
||||
}
|
||||
|
||||
QString LookupPremiumRef(PremiumPreview section) {
|
||||
QString LookupPremiumRef(PremiumFeature section) {
|
||||
for (const auto &[ref, entry] : EntryMap()) {
|
||||
if (entry.section == section) {
|
||||
return ref;
|
||||
@ -1537,7 +1537,7 @@ not_null<Ui::GradientButton*> CreateSubscribeButton(
|
||||
return result;
|
||||
}
|
||||
|
||||
std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||
std::vector<PremiumFeature> PremiumFeaturesOrder(
|
||||
not_null<Main::Session*> session) {
|
||||
const auto mtpOrder = session->account().appConfig().get<Order>(
|
||||
"premium_promo_order",
|
||||
@ -1546,41 +1546,41 @@ std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||
mtpOrder
|
||||
) | ranges::views::transform([](const QString &s) {
|
||||
if (s == u"more_upload"_q) {
|
||||
return PremiumPreview::MoreUpload;
|
||||
return PremiumFeature::MoreUpload;
|
||||
} else if (s == u"faster_download"_q) {
|
||||
return PremiumPreview::FasterDownload;
|
||||
return PremiumFeature::FasterDownload;
|
||||
} else if (s == u"voice_to_text"_q) {
|
||||
return PremiumPreview::VoiceToText;
|
||||
return PremiumFeature::VoiceToText;
|
||||
} else if (s == u"no_ads"_q) {
|
||||
return PremiumPreview::NoAds;
|
||||
return PremiumFeature::NoAds;
|
||||
} else if (s == u"emoji_status"_q) {
|
||||
return PremiumPreview::EmojiStatus;
|
||||
return PremiumFeature::EmojiStatus;
|
||||
} else if (s == u"infinite_reactions"_q) {
|
||||
return PremiumPreview::InfiniteReactions;
|
||||
return PremiumFeature::InfiniteReactions;
|
||||
} else if (s == u"saved_tags"_q) {
|
||||
return PremiumPreview::TagsForMessages;
|
||||
return PremiumFeature::TagsForMessages;
|
||||
} else if (s == u"last_seen"_q) {
|
||||
return PremiumPreview::LastSeen;
|
||||
return PremiumFeature::LastSeen;
|
||||
} else if (s == u"message_privacy"_q) {
|
||||
return PremiumPreview::MessagePrivacy;
|
||||
return PremiumFeature::MessagePrivacy;
|
||||
} else if (s == u"premium_stickers"_q) {
|
||||
return PremiumPreview::Stickers;
|
||||
return PremiumFeature::Stickers;
|
||||
} else if (s == u"animated_emoji"_q) {
|
||||
return PremiumPreview::AnimatedEmoji;
|
||||
return PremiumFeature::AnimatedEmoji;
|
||||
} else if (s == u"advanced_chat_management"_q) {
|
||||
return PremiumPreview::AdvancedChatManagement;
|
||||
return PremiumFeature::AdvancedChatManagement;
|
||||
} else if (s == u"profile_badge"_q) {
|
||||
return PremiumPreview::ProfileBadge;
|
||||
return PremiumFeature::ProfileBadge;
|
||||
} else if (s == u"animated_userpics"_q) {
|
||||
return PremiumPreview::AnimatedUserpics;
|
||||
return PremiumFeature::AnimatedUserpics;
|
||||
} else if (s == u"translations"_q) {
|
||||
return PremiumPreview::RealTimeTranslation;
|
||||
return PremiumFeature::RealTimeTranslation;
|
||||
} else if (s == u"wallpapers"_q) {
|
||||
return PremiumPreview::Wallpapers;
|
||||
return PremiumFeature::Wallpapers;
|
||||
}
|
||||
return PremiumPreview::kCount;
|
||||
}) | ranges::views::filter([](PremiumPreview type) {
|
||||
return (type != PremiumPreview::kCount);
|
||||
return PremiumFeature::kCount;
|
||||
}) | ranges::views::filter([](PremiumFeature type) {
|
||||
return (type != PremiumFeature::kCount);
|
||||
}) | ranges::to_vector;
|
||||
}
|
||||
|
||||
@ -1588,7 +1588,7 @@ void AddSummaryPremium(
|
||||
not_null<Ui::VerticalLayout*> content,
|
||||
not_null<Window::SessionController*> controller,
|
||||
const QString &ref,
|
||||
Fn<void(PremiumPreview)> buttonCallback) {
|
||||
Fn<void(PremiumFeature)> buttonCallback) {
|
||||
const auto &stDefault = st::settingsButton;
|
||||
const auto &stLabel = st::defaultFlatLabel;
|
||||
const auto iconSize = st::settingsPremiumIconDouble.size();
|
||||
|
@ -9,7 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include "settings/settings_type.h"
|
||||
|
||||
enum class PremiumPreview;
|
||||
enum class PremiumFeature;
|
||||
|
||||
namespace style {
|
||||
struct RoundButton;
|
||||
@ -57,7 +57,7 @@ void StartPremiumPayment(
|
||||
not_null<Window::SessionController*> controller,
|
||||
const QString &ref);
|
||||
|
||||
[[nodiscard]] QString LookupPremiumRef(PremiumPreview section);
|
||||
[[nodiscard]] QString LookupPremiumRef(PremiumFeature section);
|
||||
|
||||
void ShowPremiumPromoToast(
|
||||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
@ -91,14 +91,14 @@ struct SubscribeButtonArgs final {
|
||||
[[nodiscard]] not_null<Ui::GradientButton*> CreateSubscribeButton(
|
||||
SubscribeButtonArgs &&args);
|
||||
|
||||
[[nodiscard]] std::vector<PremiumPreview> PremiumPreviewOrder(
|
||||
[[nodiscard]] std::vector<PremiumFeature> PremiumFeaturesOrder(
|
||||
not_null<::Main::Session*> session);
|
||||
|
||||
void AddSummaryPremium(
|
||||
not_null<Ui::VerticalLayout*> content,
|
||||
not_null<Window::SessionController*> controller,
|
||||
const QString &ref,
|
||||
Fn<void(PremiumPreview)> buttonCallback);
|
||||
Fn<void(PremiumFeature)> buttonCallback);
|
||||
|
||||
} // namespace Settings
|
||||
|
||||
|
@ -529,7 +529,7 @@ bool ShowReactPremiumError(
|
||||
if (controller->session().premium()) {
|
||||
return false;
|
||||
}
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::TagsForMessages);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::TagsForMessages);
|
||||
return true;
|
||||
} else if (controller->session().premium()
|
||||
|| ranges::contains(item->chosenReactions(), id)
|
||||
@ -538,7 +538,7 @@ bool ShowReactPremiumError(
|
||||
} else if (!id.custom()) {
|
||||
return false;
|
||||
}
|
||||
ShowPremiumPreviewBox(controller, PremiumPreview::InfiniteReactions);
|
||||
ShowPremiumPreviewBox(controller, PremiumFeature::InfiniteReactions);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1031,7 +1031,7 @@ void MainMenu::chooseEmojiStatus() {
|
||||
if (const auto widget = _badge->widget()) {
|
||||
_emojiStatusPanel->show(_controller, widget, _badge->sizeTag());
|
||||
} else {
|
||||
ShowPremiumPreviewBox(_controller, PremiumPreview::EmojiStatus);
|
||||
ShowPremiumPreviewBox(_controller, PremiumFeature::EmojiStatus);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user