From 63c7d0301825b78c30dc7307f1f1466be049eb79 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 19 Jun 2024 16:07:04 +0300 Subject: [PATCH] Remove old implementation of get_theme_parameters_json_string. --- td/telegram/AttachMenuManager.cpp | 4 +-- td/telegram/InlineQueriesManager.cpp | 2 +- td/telegram/Payments.cpp | 2 +- td/telegram/Td.cpp | 2 +- td/telegram/ThemeManager.cpp | 48 +++++++--------------------- td/telegram/ThemeManager.h | 3 +- 6 files changed, 17 insertions(+), 44 deletions(-) diff --git a/td/telegram/AttachMenuManager.cpp b/td/telegram/AttachMenuManager.cpp index dae801d39..fb43dec3a 100644 --- a/td/telegram/AttachMenuManager.cpp +++ b/td/telegram/AttachMenuManager.cpp @@ -84,7 +84,7 @@ class RequestAppWebViewQuery final : public Td::ResultHandler { flags |= telegram_api::messages_requestAppWebView::THEME_PARAMS_MASK; theme_parameters = make_tl_object(string()); - theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme, false); + theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme); } if (allow_write_access) { flags |= telegram_api::messages_requestAppWebView::WRITE_ALLOWED_MASK; @@ -165,7 +165,7 @@ class RequestWebViewQuery final : public Td::ResultHandler { tl_object_ptr theme_parameters; if (theme != nullptr) { theme_parameters = make_tl_object(string()); - theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme, false); + theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme); flags |= telegram_api::messages_requestWebView::THEME_PARAMS_MASK; } diff --git a/td/telegram/InlineQueriesManager.cpp b/td/telegram/InlineQueriesManager.cpp index 63bf10e6a..f291da001 100644 --- a/td/telegram/InlineQueriesManager.cpp +++ b/td/telegram/InlineQueriesManager.cpp @@ -181,7 +181,7 @@ class RequestSimpleWebViewQuery final : public Td::ResultHandler { flags |= telegram_api::messages_requestSimpleWebView::THEME_PARAMS_MASK; theme_parameters = make_tl_object(string()); - theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme, false); + theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme); } string start_parameter; if (ends_with(url, "#kb")) { diff --git a/td/telegram/Payments.cpp b/td/telegram/Payments.cpp index 16db3ff49..0a533013d 100644 --- a/td/telegram/Payments.cpp +++ b/td/telegram/Payments.cpp @@ -989,7 +989,7 @@ void get_payment_form(Td *td, td_api::object_ptr &&input_i tl_object_ptr theme_parameters; if (theme != nullptr) { theme_parameters = make_tl_object(string()); - theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme, false); + theme_parameters->data_ = ThemeManager::get_theme_parameters_json_string(theme); } td->create_handler(std::move(promise)) ->send(std::move(input_invoice_info), std::move(theme_parameters)); diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index e0fbd59b5..283c2c224 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -10016,7 +10016,7 @@ td_api::object_ptr Td::do_static_request(const td_api::getJsonSt } td_api::object_ptr Td::do_static_request(const td_api::getThemeParametersJsonString &request) { - return td_api::make_object(ThemeManager::get_theme_parameters_json_string(request.theme_, true)); + return td_api::make_object(ThemeManager::get_theme_parameters_json_string(request.theme_)); } td_api::object_ptr Td::do_static_request(td_api::setLogStream &request) { diff --git a/td/telegram/ThemeManager.cpp b/td/telegram/ThemeManager.cpp index da1f571e0..c47c5e047 100644 --- a/td/telegram/ThemeManager.cpp +++ b/td/telegram/ThemeManager.cpp @@ -622,34 +622,18 @@ bool ThemeManager::on_update_profile_accent_colors( return true; } -namespace { -template -static auto get_color_json(int32 color); - -template <> -auto get_color_json(int32 color) { - return static_cast(static_cast(color) | 0xFF000000); -} - -template <> -auto get_color_json(int32 color) { - string res(7, '#'); - const char *hex = "0123456789abcdef"; - for (int i = 0; i < 3; i++) { - int32 num = (color >> (i * 8)) & 0xFF; - res[2 * i + 1] = hex[num >> 4]; - res[2 * i + 2] = hex[num & 15]; - } - return res; -} - -template -string get_theme_parameters_json_string_impl(const td_api::object_ptr &theme) { - if (for_web_view && theme == nullptr) { - return "null"; - } +string ThemeManager::get_theme_parameters_json_string(const td_api::object_ptr &theme) { return json_encode(json_object([&theme](auto &o) { - auto get_color = &get_color_json; + auto get_color = [](int32 color) { + string res(7, '#'); + const char *hex = "0123456789abcdef"; + for (int i = 0; i < 3; i++) { + int32 num = (color >> (i * 8)) & 0xFF; + res[2 * i + 1] = hex[num >> 4]; + res[2 * i + 2] = hex[num & 15]; + } + return res; + }; o("bg_color", get_color(theme->background_color_)); o("secondary_bg_color", get_color(theme->secondary_background_color_)); o("text_color", get_color(theme->text_color_)); @@ -665,16 +649,6 @@ string get_theme_parameters_json_string_impl(const td_api::object_ptrdestructive_text_color_)); })); } -} // namespace - -string ThemeManager::get_theme_parameters_json_string(const td_api::object_ptr &theme, - bool for_web_view) { - if (for_web_view) { - return get_theme_parameters_json_string_impl(theme); - } else { - return get_theme_parameters_json_string_impl(theme); - } -} int32 ThemeManager::get_accent_color_id_object(AccentColorId accent_color_id, AccentColorId fallback_accent_color_id) const { diff --git a/td/telegram/ThemeManager.h b/td/telegram/ThemeManager.h index c98dffbf6..a6f23699a 100644 --- a/td/telegram/ThemeManager.h +++ b/td/telegram/ThemeManager.h @@ -36,8 +36,7 @@ class ThemeManager final : public Actor { void reload_profile_accent_colors(); - static string get_theme_parameters_json_string(const td_api::object_ptr &theme, - bool for_web_view); + static string get_theme_parameters_json_string(const td_api::object_ptr &theme); int32 get_accent_color_id_object(AccentColorId accent_color_id, AccentColorId fallback_accent_color_id = AccentColorId()) const;