From 8035fe877170fc19a5f0f13982433f5adb445303 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 23 May 2022 12:40:30 +0400 Subject: [PATCH] Handle tg://premium_offer links. --- .../SourceFiles/core/local_url_handlers.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Telegram/SourceFiles/core/local_url_handlers.cpp b/Telegram/SourceFiles/core/local_url_handlers.cpp index ce4845121..fc46c094c 100644 --- a/Telegram/SourceFiles/core/local_url_handlers.cpp +++ b/Telegram/SourceFiles/core/local_url_handlers.cpp @@ -44,6 +44,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "settings/settings_main.h" #include "settings/settings_privacy_security.h" #include "settings/settings_chat.h" +#include "settings/settings_premium.h" #include "mainwidget.h" #include "main/main_session.h" #include "main/main_session_settings.h" @@ -737,6 +738,22 @@ bool ResolveInvoice( 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 const std::vector &LocalUrlHandlers() { @@ -805,6 +822,10 @@ const std::vector &LocalUrlHandlers() { qsl("invoice/?\\?(.+)(#|$)"), ResolveInvoice, }, + { + qsl("premium_offer/?(\\?.+)?(#|$)"), + ResolvePremiumOffer, + }, { qsl("^([^\\?]+)(\\?|#|$)"), HandleUnknown