diff --git a/Telegram/SourceFiles/main/main_session.cpp b/Telegram/SourceFiles/main/main_session.cpp index 18ec34ba4..9a3722eae 100644 --- a/Telegram/SourceFiles/main/main_session.cpp +++ b/Telegram/SourceFiles/main/main_session.cpp @@ -240,7 +240,7 @@ bool Session::premium() const { } bool Session::premiumPossible() const { - return premium() || _premiumPossible.current(); + return premium() || premiumCanBuy(); } bool Session::premiumBadgesShown() const { @@ -262,6 +262,10 @@ rpl::producer Session::premiumPossibleValue() const { _1 || _2); } +bool Session::premiumCanBuy() const { + return _premiumPossible.current(); +} + bool Session::isTestMode() const { return mtp().isTestMode(); } diff --git a/Telegram/SourceFiles/main/main_session.h b/Telegram/SourceFiles/main/main_session.h index 24c165f0b..cca061d08 100644 --- a/Telegram/SourceFiles/main/main_session.h +++ b/Telegram/SourceFiles/main/main_session.h @@ -87,6 +87,7 @@ public: [[nodiscard]] bool premiumPossible() const; [[nodiscard]] rpl::producer premiumPossibleValue() const; [[nodiscard]] bool premiumBadgesShown() const; + [[nodiscard]] bool premiumCanBuy() const; [[nodiscard]] bool isTestMode() const; [[nodiscard]] uint64 uniqueId() const; // userId() with TestDC shift. diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index d6f512008..addff370b 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -419,7 +419,7 @@ void SetupPremium( controller->setPremiumRef("settings"); showOther(PremiumId()); }); - { + if (controller->session().premiumCanBuy()) { const auto button = AddButtonWithIcon( container, tr::lng_settings_gift_premium(), diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index 4b8ce6409..e5764b193 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -1124,7 +1124,8 @@ void Filler::addGiftPremium() { || user->isBot() || user->isNotificationsUser() || !user->canReceiveGifts() - || user->isRepliesChat()) { + || user->isRepliesChat() + || !user->session().premiumCanBuy()) { return; }