diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 7190a0f2b2..da75bcc490 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1705,6 +1705,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_premium_summary_agree" = "By purchasing a Premium subscription, you agree to {terms} and {policy}."; "lng_premium_success" = "You've successfully subscribed to Telegram Premium!"; +"lng_premium_unavailable" = "This feature requires subscription to **Telegram Premium**.\n\nUnfortunately, **Telegram Premium** is not available in your region."; "lng_accounts_limit_title" = "Limit Reached"; "lng_accounts_limit1#one" = "You have reached the limit of **{count}** connected accounts."; diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.cpp b/Telegram/SourceFiles/boxes/premium_preview_box.cpp index 3542eaa5eb..678226b82c 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_preview_box.cpp @@ -22,9 +22,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/path_shift_gradient.h" #include "ui/effects/premium_graphics.h" #include "ui/text/text.h" +#include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" #include "ui/widgets/gradient_round_button.h" #include "ui/wrap/padding_wrap.h" +#include "ui/boxes/confirm_box.h" #include "settings/settings_premium.h" #include "lottie/lottie_single_player.h" #include "history/view/media/history_view_sticker.h" @@ -743,6 +745,10 @@ void Show(not_null controller, QImage back) { void Show( not_null controller, Descriptor &&descriptor) { + if (!controller->session().premiumPossible()) { + controller->show(Box(PremiumUnavailableBox)); + return; + } auto &list = Preloads(); for (auto i = begin(list); i != end(list);) { const auto already = i->controller.get(); @@ -830,3 +836,12 @@ void ShowPremiumPreviewBox( .disabled = disabled, }); } + +void PremiumUnavailableBox(not_null box) { + Ui::ConfirmBox(box, { + .text = tr::lng_premium_unavailable( + tr::now, + Ui::Text::RichLangValue), + .inform = true, + }); +} diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.h b/Telegram/SourceFiles/boxes/premium_preview_box.h index 2226209e46..01513f931d 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.h +++ b/Telegram/SourceFiles/boxes/premium_preview_box.h @@ -9,6 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL class DocumentData; +namespace Ui { +class GenericBox; +} // namespace Ui + namespace Window { class SessionController; } // namespace Window @@ -32,3 +36,5 @@ void ShowPremiumPreviewBox( not_null controller, PremiumPreview section, const base::flat_map &disabled = {}); + +void PremiumUnavailableBox(not_null box); diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index dbefd30b73..b995276719 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "info/settings/info_settings_widget.h" // SectionCustomTopBarData. #include "lang/lang_keys.h" #include "main/main_session.h" +#include "boxes/premium_preview_box.h" #include "settings/settings_common.h" #include "settings/settings_premium.h" #include "ui/abstract_button.h" @@ -23,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/premium_graphics.h" #include "ui/text/text_utilities.h" #include "ui/text/format_values.h" +#include "ui/layers/generic_box.h" #include "ui/widgets/gradient_round_button.h" #include "ui/widgets/labels.h" #include "ui/wrap/fade_wrap.h" @@ -993,6 +995,10 @@ void ShowPremium(not_null session, const QString &ref) { void ShowPremium( not_null controller, const QString &ref) { + if (!controller->session().premiumPossible()) { + controller->show(Box(PremiumUnavailableBox)); + return; + } controller->setPremiumRef(ref); controller->showSettings(Settings::PremiumId()); } diff --git a/Telegram/SourceFiles/window/section_widget.cpp b/Telegram/SourceFiles/window/section_widget.cpp index b1acb79ce9..6a00b4f5f6 100644 --- a/Telegram/SourceFiles/window/section_widget.cpp +++ b/Telegram/SourceFiles/window/section_widget.cpp @@ -336,7 +336,7 @@ bool ShowSendPremiumError( not_null controller, not_null document) { if (!document->isPremiumSticker() - || document->session().user()->isPremium()) { + || document->session().premium()) { return false; } ShowStickerPreviewBox(controller, document);