From 00bea8d1ee0a8366edc592a8544334cd0da29b2d Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 7 Jun 2022 11:41:44 +0400 Subject: [PATCH] Don't show subscribe button with blocked premium. --- .../SourceFiles/boxes/premium_limits_box.cpp | 2 +- .../SourceFiles/settings/settings_premium.cpp | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/boxes/premium_limits_box.cpp b/Telegram/SourceFiles/boxes/premium_limits_box.cpp index a11709977d..58d81a0df4 100644 --- a/Telegram/SourceFiles/boxes/premium_limits_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_limits_box.cpp @@ -890,7 +890,7 @@ void FileSizeLimitBox( const auto defaultGb = (defaultLimit + 999) / 2000; const auto premiumGb = (premiumLimit + 999) / 2000; - const auto current = fileSizeBytes + const auto current = (fileSizeBytes && premiumPossible) ? std::clamp( float64(((fileSizeBytes / uint64(1024 * 1024)) + 999) / 1000), defaultGb, diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index dd5e5c03f4..58eeec7526 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -910,18 +910,27 @@ QPointer Premium::createPinnedToBottom( status->resizeToWidth(width); }, status->lifetime()); + const auto session = &_controller->session(); + auto premiumPossible = session->account().appConfig().value( + ) | rpl::map([=] { + return session->premiumPossible(); + }); rpl::combine( button->heightValue(), status->heightValue(), std::move(text), - Data::AmPremiumValue(&_controller->session()) + Data::AmPremiumValue(session), + std::move(premiumPossible) ) | rpl::start_with_next([=]( int buttonHeight, int statusHeight, const TextWithEntities &text, - bool premium) { + bool premium, + bool premiumPossible) { const auto padding = st::settingsPremiumButtonPadding; - const auto finalHeight = !premium + const auto finalHeight = !premiumPossible + ? 0 + : !premium ? (padding.top() + buttonHeight + padding.bottom()) : text.text.isEmpty() ? 0 @@ -929,7 +938,7 @@ QPointer Premium::createPinnedToBottom( content->resize(content->width(), finalHeight); button->moveToLeft(padding.left(), padding.top()); status->moveToLeft(0, 0); - button->setVisible(!premium); + button->setVisible(!premium && premiumPossible); status->setVisible(premium && !text.text.isEmpty()); if (!premium || text.text.isEmpty()) { _bottomSkipRounding.reset();