From 4f16a72b02c8b688e91259e178a6e9dd96ad1cf3 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 19 Jan 2019 03:44:54 +0300 Subject: [PATCH] Move editNotification update to a better place. GitOrigin-RevId: 6735f3fea8bedd28447e3c4714ee00a8d4b10d9a --- td/telegram/FileReferenceManager.cpp | 2 +- td/telegram/MessagesManager.cpp | 36 +++++++++++++--------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/td/telegram/FileReferenceManager.cpp b/td/telegram/FileReferenceManager.cpp index 7158868a..8673170b 100644 --- a/td/telegram/FileReferenceManager.cpp +++ b/td/telegram/FileReferenceManager.cpp @@ -128,7 +128,6 @@ void FileReferenceManager::merge(NodeId to_node_id, NodeId from_node_id) { } void FileReferenceManager::run_node(NodeId node_id) { - VLOG(file_references) << "Run file references repair for file " << node_id; Node &node = nodes_[node_id]; if (!node.query) { return; @@ -136,6 +135,7 @@ void FileReferenceManager::run_node(NodeId node_id) { if (node.query->active_queries != 0) { return; } + VLOG(file_references) << "Run file references repair for file " << node_id; if (node.query->promises.empty()) { node.query = {}; return; diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 79e4ec3a..1cd6c460 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -5436,14 +5436,6 @@ void MessagesManager::on_message_edited(FullMessageId full_message_id) { if (m->forward_info == nullptr && (m->is_outgoing || dialog_id == get_my_dialog_id())) { update_used_hashtags(dialog_id, m); } - - if (m->notification_id.is_valid() && is_message_notification_active(d, m)) { - auto &group_info = get_notification_group_info(d, m); - if (group_info.group_id.is_valid()) { - send_closure_later(G()->notification_manager(), &NotificationManager::edit_notification, group_info.group_id, - m->notification_id, create_new_message_notification(m->message_id)); - } - } } } @@ -18504,10 +18496,10 @@ void MessagesManager::send_update_message_content(DialogId dialog_id, MessageId LOG(INFO) << "Send updateMessageContent for " << message_id << " in " << dialog_id << " from " << source; CHECK(have_dialog(dialog_id)) << "Send updateMessageContent in unknown " << dialog_id << " from " << source << " with load count " << loaded_dialogs_.count(dialog_id); - send_closure(G()->td(), &Td::send_update, - make_tl_object( - dialog_id.get(), message_id.get(), - get_message_content_object(content, td_, message_date, is_content_secret))); + auto content_object = get_message_content_object(content, td_, message_date, is_content_secret); + send_closure( + G()->td(), &Td::send_update, + td_api::make_object(dialog_id.get(), message_id.get(), std::move(content_object))); } void MessagesManager::send_update_message_edited(DialogId dialog_id, const Message *m) { @@ -21062,13 +21054,14 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq bool was_deleted = delete_active_live_location(dialog_id, v->get()); auto old_file_ids = get_message_content_file_ids((*v)->content.get(), td_); update_message(d, *v, std::move(message), need_update_dialog_pos); - auto new_index_mask = get_message_index_mask(dialog_id, v->get()) & INDEX_MASK_MASK; + const Message *m = v->get(); + auto new_index_mask = get_message_index_mask(dialog_id, m) & INDEX_MASK_MASK; if (was_deleted) { - try_add_active_live_location(dialog_id, v->get()); + try_add_active_live_location(dialog_id, m); } - auto new_file_ids = get_message_content_file_ids((*v)->content.get(), td_); + auto new_file_ids = get_message_content_file_ids(m->content.get(), td_); if (new_file_ids != old_file_ids) { - if ((*v)->ttl && (*v)->message_id.is_server()) { + if (m->ttl && m->message_id.is_server()) { for (auto file_id : old_file_ids) { if (std::find(new_file_ids.begin(), new_file_ids.end(), file_id) == new_file_ids.end()) { send_closure(G()->file_manager(), &FileManager::delete_file, file_id, Promise<>(), @@ -21082,10 +21075,15 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq td_->file_manager_->change_files_source(file_source_id, old_file_ids, new_file_ids); } } - if (old_index_mask != new_index_mask) { - update_message_count_by_index(d, -1, old_index_mask & ~new_index_mask); - update_message_count_by_index(d, +1, new_index_mask & ~old_index_mask); + if (m->notification_id.is_valid() && is_message_notification_active(d, m)) { + auto &group_info = get_notification_group_info(d, m); + if (group_info.group_id.is_valid()) { + send_closure_later(G()->notification_manager(), &NotificationManager::edit_notification, + group_info.group_id, m->notification_id, create_new_message_notification(m->message_id)); + } } + update_message_count_by_index(d, -1, old_index_mask & ~new_index_mask); + update_message_count_by_index(d, +1, new_index_mask & ~old_index_mask); } return v->get(); }