@@ -243,6 +243,12 @@ static const vector<string> &get_folder_settings_subsections() {
243243 return subsections;
244244}
245245
246+ static const vector<string> &get_in_app_browser_settings_subsections () {
247+ static const vector<string> subsections{" enable-browser" , " clear-cookies" , " clear-cache" , " history" ,
248+ " clear-history" , " never-open" , " clear-list" , " search" };
249+ return subsections;
250+ }
251+
246252static const vector<string> &get_language_settings_subsections () {
247253 static const vector<string> subsections{" show-button" , " translate-chats" , " do-not-translate" };
248254 return subsections;
@@ -991,7 +997,7 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
991997 }
992998 }
993999 if (path_[0 ] == " appearance" ) {
994- if (!subsection. empty () && td::contains (get_appearance_settings_subsections (), subsection)) {
1000+ if (td::contains (get_appearance_settings_subsections (), subsection)) {
9951001 return td_api::make_object<td_api::settingsSectionAppearance>(subsection);
9961002 }
9971003 return td_api::make_object<td_api::settingsSectionAppearance>();
@@ -1005,20 +1011,31 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
10051011 if (path_[0 ] == " change_number" ) {
10061012 return td_api::make_object<td_api::settingsSectionEditProfile>(" change-number" );
10071013 }
1014+ if (path_[0 ] == " chat" && path_.size () >= 2u && path_[1 ] == " browser" ) {
1015+ if (path_.size () == 2u ) {
1016+ subsection = string ();
1017+ } else {
1018+ subsection = path_[2 ];
1019+ }
1020+ if (td::contains (get_in_app_browser_settings_subsections (), subsection)) {
1021+ return td_api::make_object<td_api::settingsSectionInAppBrowser>(subsection);
1022+ }
1023+ return td_api::make_object<td_api::settingsSectionInAppBrowser>();
1024+ }
10081025 if (path_[0 ] == " data" ) {
1009- if (!subsection. empty () && td::contains (get_data_settings_subsections (), subsection)) {
1026+ if (td::contains (get_data_settings_subsections (), subsection)) {
10101027 return td_api::make_object<td_api::settingsSectionDataAndStorage>(subsection);
10111028 }
10121029 return td_api::make_object<td_api::settingsSectionDataAndStorage>();
10131030 }
10141031 if (path_[0 ] == " devices" ) {
1015- if (!subsection. empty () && td::contains (get_device_settings_subsections (), subsection)) {
1032+ if (td::contains (get_device_settings_subsections (), subsection)) {
10161033 return td_api::make_object<td_api::settingsSectionDevices>(subsection);
10171034 }
10181035 return td_api::make_object<td_api::settingsSectionDevices>();
10191036 }
10201037 if (path_[0 ] == " edit" ) {
1021- if (!subsection. empty () && td::contains (get_edit_profile_settings_subsections (), subsection)) {
1038+ if (td::contains (get_edit_profile_settings_subsections (), subsection)) {
10221039 return td_api::make_object<td_api::settingsSectionEditProfile>(subsection);
10231040 }
10241041 return td_api::make_object<td_api::settingsSectionEditProfile>();
@@ -1044,13 +1061,13 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
10441061 return td_api::make_object<td_api::settingsSectionFeatures>();
10451062 }
10461063 if (path_[0 ] == " folders" ) {
1047- if (!subsection. empty () && td::contains (get_folder_settings_subsections (), subsection)) {
1064+ if (td::contains (get_folder_settings_subsections (), subsection)) {
10481065 return td_api::make_object<td_api::settingsSectionChatFolders>(subsection);
10491066 }
10501067 return td_api::make_object<td_api::settingsSectionChatFolders>();
10511068 }
10521069 if (path_[0 ] == " language" ) {
1053- if (!subsection. empty () && td::contains (get_language_settings_subsections (), subsection)) {
1070+ if (td::contains (get_language_settings_subsections (), subsection)) {
10541071 return td_api::make_object<td_api::settingsSectionLanguage>(subsection);
10551072 }
10561073 return td_api::make_object<td_api::settingsSectionLanguage>();
@@ -1059,7 +1076,7 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
10591076 return td_api::make_object<td_api::settingsSectionPrivacyAndSecurity>(" login-email" );
10601077 }
10611078 if (path_[0 ] == " notifications" ) {
1062- if (!subsection. empty () && td::contains (get_notification_settings_subsections (), subsection)) {
1079+ if (td::contains (get_notification_settings_subsections (), subsection)) {
10631080 return td_api::make_object<td_api::settingsSectionNotifications>(subsection);
10641081 }
10651082 return td_api::make_object<td_api::settingsSectionNotifications>();
@@ -1074,7 +1091,7 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
10741091 return td_api::make_object<td_api::settingsSectionPremium>();
10751092 }
10761093 if (path_[0 ] == " privacy" ) {
1077- if (!subsection. empty () && td::contains (get_privacy_settings_subsections (), subsection)) {
1094+ if (td::contains (get_privacy_settings_subsections (), subsection)) {
10781095 return td_api::make_object<td_api::settingsSectionPrivacyAndSecurity>(subsection);
10791096 }
10801097 return td_api::make_object<td_api::settingsSectionPrivacyAndSecurity>();
@@ -1086,7 +1103,7 @@ class LinkManager::InternalLinkSettings final : public InternalLink {
10861103 return td_api::make_object<td_api::settingsSectionSearch>();
10871104 }
10881105 if (path_[0 ] == " stars" ) {
1089- if (!subsection. empty () && td::contains (get_my_stars_settings_subsections (), subsection)) {
1106+ if (td::contains (get_my_stars_settings_subsections (), subsection)) {
10901107 return td_api::make_object<td_api::settingsSectionMyStars>(subsection);
10911108 }
10921109 return td_api::make_object<td_api::settingsSectionMyStars>();
@@ -3140,6 +3157,13 @@ Result<string> LinkManager::get_internal_link_impl(const td_api::InternalLinkTyp
31403157 return " tg://settings/faq" ;
31413158 case td_api::settingsSectionFeatures::ID :
31423159 return " tg://settings/features" ;
3160+ case td_api::settingsSectionInAppBrowser::ID : {
3161+ const auto &subsection = static_cast <const td_api::settingsSectionInAppBrowser *>(section_ptr)->subsection_ ;
3162+ if (td::contains (get_in_app_browser_settings_subsections (), subsection)) {
3163+ return PSTRING () << " tg://settings/chat/browser/" << subsection;
3164+ }
3165+ return " tg://settings/chat/browser" ;
3166+ }
31433167 case td_api::settingsSectionLanguage::ID : {
31443168 const auto &subsection = static_cast <const td_api::settingsSectionLanguage *>(section_ptr)->subsection_ ;
31453169 if (td::contains (get_language_settings_subsections (), subsection)) {
0 commit comments