From 8b11ef9aa338c5c649392be07a2d8c789cf7618e Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 29 Nov 2022 13:08:06 +0300 Subject: [PATCH] Apply message_ttl from telegram_api::dialog. --- td/telegram/MessagesManager.cpp | 12 +++++++++++- td/telegram/MessagesManager.h | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 49b72eabd..d0fb86729 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -16021,6 +16021,10 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vectorunread_reactions_count_ = 0; } + if (dialog->ttl_period_ < 0) { + LOG(ERROR) << "Receive " << dialog->ttl_period_ << " as message TTL in " << dialog_id; + dialog->ttl_period_ = 0; + } if (!d->is_is_blocked_inited && !td_->auth_manager_->is_bot()) { // asynchronously get is_blocked from the server // TODO add is_blocked to telegram_api::dialog @@ -16163,6 +16167,8 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vectorttl_period_)); + being_added_dialog_id_ = DialogId(); update_dialog_lists(d, std::move(positions), true, false, source); @@ -33348,7 +33354,11 @@ void MessagesManager::on_update_dialog_message_ttl(DialogId dialog_id, MessageTt // nothing to do return; } + set_dialog_message_ttl(d, std::move(message_ttl)); +} +void MessagesManager::set_dialog_message_ttl(Dialog *d, MessageTtl message_ttl) { + CHECK(d != nullptr); if (d->message_ttl != message_ttl) { d->message_ttl = message_ttl; d->is_message_ttl_inited = true; @@ -33356,7 +33366,7 @@ void MessagesManager::on_update_dialog_message_ttl(DialogId dialog_id, MessageTt } if (!d->is_message_ttl_inited) { d->is_message_ttl_inited = true; - on_dialog_updated(dialog_id, "on_update_dialog_message_ttl"); + on_dialog_updated(d->dialog_id, "on_update_dialog_message_ttl"); } } diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index 247c912c7..e18bf27ab 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -2729,6 +2729,8 @@ class MessagesManager final : public Actor { bool update_dialog_silent_send_message(Dialog *d, bool silent_send_message); + void set_dialog_message_ttl(Dialog *d, MessageTtl message_ttl); + ChatReactions get_message_available_reactions(const Dialog *d, const Message *m, bool dissalow_custom_for_non_premium);