aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-01-09 18:12:45 +0300
committerlevlam <levlam@telegram.org>2026-01-09 18:12:45 +0300
commit5995f5d178b279f5a047a085519fdf0c8a74f593 (patch)
tree9a524c3b550f695e107a96c6e139314415c08b01
parentb5ec650427e77c49958791a7b5c499f5d88677f8 (diff)
Add td_api::settingsSectionBusiness.
-rw-r--r--td/generate/scheme/td_api.tl4
-rw-r--r--td/telegram/LinkManager.cpp18
-rw-r--r--test/link.cpp8
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());