Don't allow gifting premium if can't buy.

This commit is contained in:
John Preston 2024-01-02 00:12:51 +04:00
parent a4d7309209
commit 5e255e56eb
4 changed files with 9 additions and 3 deletions

View file

@ -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<bool> Session::premiumPossibleValue() const {
_1 || _2);
}
bool Session::premiumCanBuy() const {
return _premiumPossible.current();
}
bool Session::isTestMode() const {
return mtp().isTestMode();
}

View file

@ -87,6 +87,7 @@ public:
[[nodiscard]] bool premiumPossible() const;
[[nodiscard]] rpl::producer<bool> premiumPossibleValue() const;
[[nodiscard]] bool premiumBadgesShown() const;
[[nodiscard]] bool premiumCanBuy() const;
[[nodiscard]] bool isTestMode() const;
[[nodiscard]] uint64 uniqueId() const; // userId() with TestDC shift.

View file

@ -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(),

View file

@ -1124,7 +1124,8 @@ void Filler::addGiftPremium() {
|| user->isBot()
|| user->isNotificationsUser()
|| !user->canReceiveGifts()
|| user->isRepliesChat()) {
|| user->isRepliesChat()
|| !user->session().premiumCanBuy()) {
return;
}