diff options
| author | levlam <levlam@telegram.org> | 2026-01-09 18:12:45 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-01-09 18:12:45 +0300 |
| commit | 5995f5d178b279f5a047a085519fdf0c8a74f593 (patch) | |
| tree | 9a524c3b550f695e107a96c6e139314415c08b01 | |
| parent | b5ec650427e77c49958791a7b5c499f5d88677f8 (diff) | |
Add td_api::settingsSectionBusiness.
| -rw-r--r-- | td/generate/scheme/td_api.tl | 4 | ||||
| -rw-r--r-- | td/telegram/LinkManager.cpp | 18 | ||||
| -rw-r--r-- | test/link.cpp | 8 |
3 files changed, 30 insertions, 0 deletions
diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index b28928d4c..076be34b6 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -8291,6 +8291,10 @@ settingsSectionAppearance subsection:string = SettingsSection; //@description The "Ask a question" section settingsSectionAskQuestion = SettingsSection; +//@description The Telegram Business section @subsection Subsection of the section if any; may be one of +//-"do-not-hide-ads" +settingsSectionBusiness subsection:string = SettingsSection; + //@description The chat folder settings section @subsection Subsection of the section if any; may be one of //-"edit", "create", "add-recommended", "show-tags", "tab-view" settingsSectionChatFolders subsection:string = SettingsSection; diff --git a/td/telegram/LinkManager.cpp b/td/telegram/LinkManager.cpp index 8076d80b8..71c573f2b 100644 --- a/td/telegram/LinkManager.cpp +++ b/td/telegram/LinkManager.cpp @@ -187,6 +187,11 @@ static const vector<string> &get_appearance_settings_subsections() { return subsections; } +static const vector<string> &get_business_settings_subsections() { + static const vector<string> subsections{"do-not-hide-ads"}; + return subsections; +} + static const vector<string> &get_data_settings_subsections() { static const vector<string> subsections{ "storage", "storage/edit", "storage/auto-remove", "storage/clear-cache", "max-cache", "usage", "usage/mobile", @@ -1021,6 +1026,12 @@ class LinkManager::InternalLinkSettings final : public InternalLink { if (path_[0] == "auto_delete") { return td_api::make_object<td_api::settingsSectionPrivacyAndSecurity>("auto-delete"); } + if (path_[0] == "business") { + if (td::contains(get_business_settings_subsections(), subsection)) { + return td_api::make_object<td_api::settingsSectionBusiness>(subsection); + } + return td_api::make_object<td_api::settingsSectionBusiness>(); + } if (path_[0] == "change_number") { return td_api::make_object<td_api::settingsSectionEditProfile>("change-number"); } @@ -3143,6 +3154,13 @@ Result<string> LinkManager::get_internal_link_impl(const td_api::InternalLinkTyp } return "tg://settings/themes"; } + case td_api::settingsSectionBusiness::ID: { + const auto &subsection = static_cast<const td_api::settingsSectionBusiness *>(section_ptr)->subsection_; + if (td::contains(get_business_settings_subsections(), subsection)) { + return PSTRING() << "tg://settings/business/" << subsection; + } + return "tg://settings/business"; + } case td_api::settingsSectionAskQuestion::ID: return "tg://settings/ask-question"; case td_api::settingsSectionChatFolders::ID: { diff --git a/test/link.cpp b/test/link.cpp index 6091d28c6..e8497eb4a 100644 --- a/test/link.cpp +++ b/test/link.cpp @@ -187,6 +187,10 @@ static auto ask_question() { return settings(td::td_api::make_object<td::td_api::settingsSectionAskQuestion>()); } +static auto business(td::string subsection = td::string()) { + return settings(td::td_api::make_object<td::td_api::settingsSectionBusiness>(subsection)); +} + static auto chat_folder_settings(td::string subsection = td::string()) { return settings(td::td_api::make_object<td::td_api::settingsSectionChatFolders>(subsection)); } @@ -1828,6 +1832,10 @@ TEST(Link, parse_internal_link_part4) { parse_internal_link("tg://ask-question", unknown_deep_link("tg://ask-question")); parse_internal_link("tg://settings/ask-question", ask_question()); + parse_internal_link("tg://settings/business", business()); + parse_internal_link("tg://settings/business/share", business()); + parse_internal_link("tg://settings/business/do-not-hide-ads", business("do-not-hide-ads")); + parse_internal_link("tg://faq", unknown_deep_link("tg://faq")); parse_internal_link("tg://settings/faq", faq()); |
