diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index ba03b8f6c4..42bdae3036 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1878,7 +1878,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_stars_rating_tooltip" = "Profile level reflects the user's payment reliability."; "lng_stars_rating_learn_more" = "Learn More"; -"lng_stars_rating_about_url" = "https://telegram.org/"; "lng_manage_discussion_group" = "Discussion"; "lng_manage_discussion_group_add" = "Add a group"; diff --git a/Telegram/SourceFiles/info/profile/info_profile_cover.cpp b/Telegram/SourceFiles/info/profile/info_profile_cover.cpp index de499e71ed..de47f7258b 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_cover.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_cover.cpp @@ -36,12 +36,14 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/labels.h" #include "ui/widgets/popup_menu.h" #include "ui/text/text_utilities.h" +#include "ui/basic_click_handlers.h" #include "ui/ui_utility.h" #include "ui/painter.h" #include "base/event_filter.h" #include "base/unixtime.h" #include "window/window_controller.h" #include "window/window_session_controller.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "settings/settings_premium.h" #include "chat_helpers/stickers_lottie.h" @@ -669,6 +671,11 @@ Cover::Cover( _status->widthValue() | rpl::start_with_next([=](int width) { rating->setMinimalAddedWidth(width); }, rating->lifetime()); + const auto session = &_peer->session(); + rating->learnMoreRequests() | rpl::start_with_next([=] { + const auto &appConfig = session->appConfig(); + UrlClickHandler::Open(appConfig.starsRatingLearnMoreUrl()); + }, rating->lifetime()); _statusShift = rating->collapsedWidthValue(); _statusShift.changes() | rpl::start_with_next([=] { refreshStatusGeometry(width()); diff --git a/Telegram/SourceFiles/main/main_app_config.cpp b/Telegram/SourceFiles/main/main_app_config.cpp index 32b1ae53d8..0c24bbd062 100644 --- a/Telegram/SourceFiles/main/main_app_config.cpp +++ b/Telegram/SourceFiles/main/main_app_config.cpp @@ -232,6 +232,12 @@ QString AppConfig::ageVerifyBotUsername() const { return get(u"verify_age_bot_username"_q, QString()); } +QString AppConfig::starsRatingLearnMoreUrl() const { + return get( + u"stars_rating_learnmore_url"_q, + u"https://telegram.org/blog"_q); +} + void AppConfig::refresh(bool force) { if (_requestId || !_api) { if (force) { diff --git a/Telegram/SourceFiles/main/main_app_config.h b/Telegram/SourceFiles/main/main_app_config.h index 7dc2205d1a..d481d7c7b1 100644 --- a/Telegram/SourceFiles/main/main_app_config.h +++ b/Telegram/SourceFiles/main/main_app_config.h @@ -109,6 +109,8 @@ public: [[nodiscard]] int ageVerifyMinAge() const; [[nodiscard]] QString ageVerifyBotUsername() const; + [[nodiscard]] QString starsRatingLearnMoreUrl() const; + void refresh(bool force = false); private: diff --git a/Telegram/SourceFiles/ui/controls/stars_rating.cpp b/Telegram/SourceFiles/ui/controls/stars_rating.cpp index fb047ded9e..23ec63146f 100644 --- a/Telegram/SourceFiles/ui/controls/stars_rating.cpp +++ b/Telegram/SourceFiles/ui/controls/stars_rating.cpp @@ -13,7 +13,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/widgets/tooltip.h" -#include "ui/basic_click_handlers.h" #include "ui/painter.h" #include "ui/rp_widget.h" #include "ui/ui_utility.h" @@ -213,7 +212,7 @@ void StarsRating::toggleTooltips(bool shown) { outer.width()); }, widget->lifetime()); button->setClickedCallback([=] { - UrlClickHandler::Open(tr::lng_stars_rating_about_url(tr::now)); + _learnMoreRequests.fire({}); }); } @@ -346,6 +345,10 @@ rpl::producer StarsRating::collapsedWidthValue() const { return _collapsedWidthValue.value(); } +rpl::producer<> StarsRating::learnMoreRequests() const { + return _learnMoreRequests.events(); +} + rpl::lifetime &StarsRating::lifetime() { return _widget->lifetime(); } diff --git a/Telegram/SourceFiles/ui/controls/stars_rating.h b/Telegram/SourceFiles/ui/controls/stars_rating.h index 6e94480b72..7af2a41c62 100644 --- a/Telegram/SourceFiles/ui/controls/stars_rating.h +++ b/Telegram/SourceFiles/ui/controls/stars_rating.h @@ -40,6 +40,7 @@ public: void setMinimalAddedWidth(int addedWidth); [[nodiscard]] rpl::producer collapsedWidthValue() const; + [[nodiscard]] rpl::producer<> learnMoreRequests() const; [[nodiscard]] rpl::lifetime &lifetime(); @@ -73,6 +74,8 @@ private: Ui::Animations::Simple _expandedAnimation; mutable int _activeWidth = 0; + rpl::event_stream<> _learnMoreRequests; + base::Timer _collapseTimer; };