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