Add internalLinkTypeDefaultMessageAutoDeleteTimerSettings.

This commit is contained in:
levlam 2022-12-28 17:58:17 +03:00
parent 7e1d550870
commit 1a3789e88d
4 changed files with 18 additions and 0 deletions

View File

@ -4435,6 +4435,9 @@ internalLinkTypeChangePhoneNumber = InternalLinkType;
//@description The link is a chat invite link. Call checkChatInviteLink with the given invite link to process the link @invite_link Internal representation of the invite link
internalLinkTypeChatInvite invite_link:string = InternalLinkType;
//@description The link is a link to the default message auto-delete timer settings section of the app
internalLinkTypeDefaultMessageAutoDeleteTimerSettings = InternalLinkType;
//@description The link is a link to the filter settings section of the app
internalLinkTypeFilterSettings = InternalLinkType;

View File

@ -285,6 +285,12 @@ class LinkManager::InternalLinkConfirmPhone final : public InternalLink {
}
};
class LinkManager::InternalLinkDefaultMessageAutoDeleteTimerSettings final : public InternalLink {
td_api::object_ptr<td_api::InternalLinkType> get_internal_link_type_object() const final {
return td_api::make_object<td_api::internalLinkTypeDefaultMessageAutoDeleteTimerSettings>();
}
};
class LinkManager::InternalLinkDialogInvite final : public InternalLink {
string url_;
@ -1122,6 +1128,10 @@ unique_ptr<LinkManager::InternalLink> LinkManager::parse_tg_link_query(Slice que
// premium_offer?ref=<referrer>
return td::make_unique<InternalLinkPremiumFeatures>(get_arg("ref"));
} else if (!path.empty() && path[0] == "settings") {
if (path.size() == 2 && path[1] == "auto_delete") {
// settings/auto_delete
return td::make_unique<InternalLinkDefaultMessageAutoDeleteTimerSettings>();
}
if (path.size() == 2 && path[1] == "change_number") {
// settings/change_number
return td::make_unique<InternalLinkChangePhoneNumber>();

View File

@ -110,6 +110,7 @@ class LinkManager final : public Actor {
class InternalLinkBotStartInGroup;
class InternalLinkChangePhoneNumber;
class InternalLinkConfirmPhone;
class InternalLinkDefaultMessageAutoDeleteTimerSettings;
class InternalLinkDialogInvite;
class InternalLinkFilterSettings;
class InternalLinkGame;

View File

@ -153,6 +153,9 @@ TEST(Link, parse_internal_link) {
auto chat_invite = [](const td::string &hash) {
return td::td_api::make_object<td::td_api::internalLinkTypeChatInvite>("tg:join?invite=" + hash);
};
auto default_message_auto_delete_timer_settings = [] {
return td::td_api::make_object<td::td_api::internalLinkTypeDefaultMessageAutoDeleteTimerSettings>();
};
auto filter_settings = [] {
return td::td_api::make_object<td::td_api::internalLinkTypeFilterSettings>();
};
@ -966,6 +969,7 @@ TEST(Link, parse_internal_link) {
parse_internal_link("tg://settings/themes/?as#rad", theme_settings());
parse_internal_link("tg://settings/themes/a", settings());
parse_internal_link("tg://settings/asdsathemesasdas/devices", settings());
parse_internal_link("tg://settings/auto_delete", default_message_auto_delete_timer_settings());
parse_internal_link("tg://settings/devices", active_sessions());
parse_internal_link("tg://settings/change_number", change_phone_number());
parse_internal_link("tg://settings/folders", filter_settings());