mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-18 22:17:01 +00:00
Don't shows premium section / preview if unavailable.
This commit is contained in:
parent
86889cf1ef
commit
524771529a
@ -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.";
|
||||
|
@ -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<Window::SessionController*> controller, QImage back) {
|
||||
void Show(
|
||||
not_null<Window::SessionController*> 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<Ui::GenericBox*> box) {
|
||||
Ui::ConfirmBox(box, {
|
||||
.text = tr::lng_premium_unavailable(
|
||||
tr::now,
|
||||
Ui::Text::RichLangValue),
|
||||
.inform = true,
|
||||
});
|
||||
}
|
||||
|
@ -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<Window::SessionController*> controller,
|
||||
PremiumPreview section,
|
||||
const base::flat_map<QString, ReactionDisableType> &disabled = {});
|
||||
|
||||
void PremiumUnavailableBox(not_null<Ui::GenericBox*> box);
|
||||
|
@ -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<Main::Session*> session, const QString &ref) {
|
||||
void ShowPremium(
|
||||
not_null<Window::SessionController*> controller,
|
||||
const QString &ref) {
|
||||
if (!controller->session().premiumPossible()) {
|
||||
controller->show(Box(PremiumUnavailableBox));
|
||||
return;
|
||||
}
|
||||
controller->setPremiumRef(ref);
|
||||
controller->showSettings(Settings::PremiumId());
|
||||
}
|
||||
|
@ -336,7 +336,7 @@ bool ShowSendPremiumError(
|
||||
not_null<SessionController*> controller,
|
||||
not_null<DocumentData*> document) {
|
||||
if (!document->isPremiumSticker()
|
||||
|| document->session().user()->isPremium()) {
|
||||
|| document->session().premium()) {
|
||||
return false;
|
||||
}
|
||||
ShowStickerPreviewBox(controller, document);
|
||||
|
Loading…
Reference in New Issue
Block a user