Handle tg://premium_offer links.

This commit is contained in:
John Preston 2022-05-23 12:40:30 +04:00
parent e37c157fff
commit 8035fe8771

View file

@ -44,6 +44,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "settings/settings_main.h" #include "settings/settings_main.h"
#include "settings/settings_privacy_security.h" #include "settings/settings_privacy_security.h"
#include "settings/settings_chat.h" #include "settings/settings_chat.h"
#include "settings/settings_premium.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h" #include "main/main_session_settings.h"
@ -737,6 +738,22 @@ bool ResolveInvoice(
return true; return true;
} }
bool ResolvePremiumOffer(
Window::SessionController *controller,
const Match &match,
const QVariant &context) {
if (!controller) {
return false;
}
const auto params = url_parse_params(
match->captured(1).mid(1),
qthelp::UrlParamNameTransform::ToLower);
const auto ref = params.value(qsl("ref"));
controller->showSettings(::Settings::PremiumId());
controller->window().activate();
return true;
}
} // namespace } // namespace
const std::vector<LocalUrlHandler> &LocalUrlHandlers() { const std::vector<LocalUrlHandler> &LocalUrlHandlers() {
@ -805,6 +822,10 @@ const std::vector<LocalUrlHandler> &LocalUrlHandlers() {
qsl("invoice/?\\?(.+)(#|$)"), qsl("invoice/?\\?(.+)(#|$)"),
ResolveInvoice, ResolveInvoice,
}, },
{
qsl("premium_offer/?(\\?.+)?(#|$)"),
ResolvePremiumOffer,
},
{ {
qsl("^([^\\?]+)(\\?|#|$)"), qsl("^([^\\?]+)(\\?|#|$)"),
HandleUnknown HandleUnknown