mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-04-11 04:01:18 +00:00
Show premium page on limit increase decision.
This commit is contained in:
parent
dc444ec22b
commit
5cd065ef6b
@ -82,6 +82,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "ui/chat/attach/attach_prepare.h"
|
||||
#include "ui/toasts/common_toasts.h"
|
||||
#include "support/support_helper.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "storage/localimageloader.h"
|
||||
#include "storage/download_manager_mtproto.h"
|
||||
#include "storage/file_upload.h"
|
||||
@ -452,10 +453,7 @@ void ApiWrap::sendMessageFail(
|
||||
: tr::lng_error_noforwards_group(tr::now)
|
||||
}, .duration = kJoinErrorDuration });
|
||||
} else if (error.type() == qstr("PREMIUM_ACCOUNT_REQUIRED")) {
|
||||
Ui::ShowMultilineToast({
|
||||
.text = { u"Premium sticker."_q },
|
||||
.duration = kJoinErrorDuration,
|
||||
});
|
||||
Settings::ShowPremium(&session());
|
||||
}
|
||||
if (const auto item = _session->data().message(itemId)) {
|
||||
Assert(randomId != 0);
|
||||
|
@ -1082,7 +1082,7 @@ premiumBubblePadding: margins(14px, 0px, 14px, 0px);
|
||||
premiumBubbleHeight: 40px;
|
||||
premiumBubbleSkip: 5px;
|
||||
premiumBubbleTextSkip: 3px;
|
||||
premiumBubbleSlideDuration: 500;
|
||||
premiumBubbleSlideDuration: 1000;
|
||||
premiumBubbleTailSize: size(21px, 7px);
|
||||
premiumBubbleFont: font(19px);
|
||||
premiumLineTextSkip: 11px;
|
||||
|
@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "data/data_session.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "settings/settings_common.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "base/unixtime.h"
|
||||
#include "apiwrap.h"
|
||||
#include "styles/style_boxes.h"
|
||||
@ -432,9 +433,7 @@ void SimpleLimitBox(
|
||||
});
|
||||
} else {
|
||||
box->addButton(tr::lng_limits_increase(), [=] {
|
||||
Ui::ShowMultilineToast({
|
||||
.text = { u"Premium!"_q },
|
||||
});
|
||||
Settings::ShowPremium(session);
|
||||
});
|
||||
}
|
||||
|
||||
@ -565,9 +564,7 @@ void ChannelsLimitBox(
|
||||
});
|
||||
} else {
|
||||
box->addButton(tr::lng_limits_increase(), [=] {
|
||||
Ui::ShowMultilineToast({
|
||||
.text = { u"Premium!"_q },
|
||||
});
|
||||
Settings::ShowPremium(session);
|
||||
});
|
||||
}
|
||||
}, box->lifetime());
|
||||
|
@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "lottie/lottie_icon.h"
|
||||
#include "main/main_session.h"
|
||||
#include "settings/settings_common.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "ui/chat/chat_style.h"
|
||||
#include "ui/chat/chat_theme.h"
|
||||
#include "ui/effects/scroll_content_shadow.h"
|
||||
@ -447,9 +448,7 @@ void ReactionsSettingsBox(
|
||||
|
||||
button->setClickedCallback([=, emoji = r.emoji] {
|
||||
if (premium && !controller->session().user()->isPremium()) {
|
||||
Ui::ShowMultilineToast({
|
||||
.text = { u"Premium reaction."_q },
|
||||
});
|
||||
Settings::ShowPremium(&controller->session());
|
||||
return;
|
||||
}
|
||||
checkButton(button);
|
||||
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "ui/widgets/buttons.h"
|
||||
#include "ui/widgets/gradient_round_button.h"
|
||||
#include "ui/wrap/padding_wrap.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "lottie/lottie_single_player.h"
|
||||
#include "history/view/media/history_view_sticker.h"
|
||||
#include "window/window_session_controller.h"
|
||||
@ -204,7 +205,7 @@ void StickerBox(
|
||||
const auto width = size - buttonPadding.left() - buttonPadding.right();
|
||||
auto button = CreateUnlockButton(box, width);
|
||||
button->setClickedCallback([=] {
|
||||
controller->showSettings();
|
||||
controller->showSettings(Settings::PremiumId());
|
||||
});
|
||||
box->addButton(std::move(button));
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "history/history_item_components.h"
|
||||
#include "apiwrap.h"
|
||||
#include "storage/storage_account.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "core/application.h"
|
||||
#include "core/core_settings.h"
|
||||
#include "main/main_session.h"
|
||||
@ -98,10 +99,7 @@ void MaybeShowPremiumToast(
|
||||
const auto widget = QPointer<Ui::RpWidget>(
|
||||
controller->window().widget()->bodyWidget());
|
||||
const auto filter = [=](const auto ...) {
|
||||
Ui::ShowMultilineToast({
|
||||
.parentOverride = widget,
|
||||
.text = { u"Premium!"_q },
|
||||
});
|
||||
controller->showSettings(Settings::PremiumId());
|
||||
return false;
|
||||
};
|
||||
Ui::ShowMultilineToast({
|
||||
|
@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include "lang/lang_keys.h"
|
||||
#include "settings/settings_common.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "core/application.h"
|
||||
#include "ui/abstract_button.h"
|
||||
#include "ui/effects/gradient.h"
|
||||
#include "ui/text/text_utilities.h"
|
||||
@ -17,6 +19,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "ui/wrap/padding_wrap.h"
|
||||
#include "ui/wrap/vertical_layout.h"
|
||||
#include "window/window_session_controller.h"
|
||||
#include "window/window_controller.h"
|
||||
#include "main/main_session.h"
|
||||
#include "styles/style_boxes.h"
|
||||
#include "styles/style_chat_helpers.h"
|
||||
#include "styles/style_layers.h"
|
||||
@ -251,4 +255,20 @@ Type PremiumId() {
|
||||
return Premium::Id();
|
||||
}
|
||||
|
||||
void ShowPremium(not_null<Main::Session*> session) {
|
||||
const auto active = Core::App().activeWindow();
|
||||
const auto controller = (active && active->isPrimary())
|
||||
? active->sessionController()
|
||||
: nullptr;
|
||||
if (controller && session == &controller->session()) {
|
||||
controller->showSettings(Settings::PremiumId());
|
||||
} else {
|
||||
for (const auto &controller : session->windows()) {
|
||||
if (controller->window().isPrimary()) {
|
||||
controller->showSettings(Settings::PremiumId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Settings
|
||||
|
@ -9,9 +9,15 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
|
||||
#include "settings/settings_type.h"
|
||||
|
||||
namespace Main {
|
||||
class Session;
|
||||
} // namespace Main
|
||||
|
||||
namespace Settings {
|
||||
|
||||
Type PremiumId();
|
||||
[[nodiscard]] Type PremiumId();
|
||||
|
||||
void ShowPremium(not_null<::Main::Session*> session);
|
||||
|
||||
} // namespace Settings
|
||||
|
||||
|
@ -303,7 +303,7 @@ BubbleWidget::BubbleWidget(
|
||||
0.,
|
||||
1.,
|
||||
st::premiumBubbleSlideDuration,
|
||||
anim::easeOutCubic);
|
||||
anim::easeOutCirc);
|
||||
}, lifetime());
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "data/data_cloud_themes.h"
|
||||
#include "data/data_message_reactions.h"
|
||||
#include "history/history_item.h"
|
||||
#include "settings/settings_premium.h"
|
||||
#include "main/main_session.h"
|
||||
#include "window/section_memento.h"
|
||||
#include "window/window_slide_animation.h"
|
||||
@ -353,9 +354,7 @@ bool ShowReactPremiumError(
|
||||
if (i == end(list) || !i->premium) {
|
||||
return false;
|
||||
}
|
||||
Ui::ShowMultilineToast({
|
||||
.text = { u"Premium reaction."_q },
|
||||
});
|
||||
Settings::ShowPremium(&controller->session());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user