From 972065116470ff1bfcd6e5db13ccc5d39b9fa04d Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 28 Feb 2024 17:38:17 +0300 Subject: [PATCH] Add and use QuickReplyManager::get_quick_reply_messages_hash. --- td/telegram/QuickReplyManager.cpp | 15 ++++++++++++++- td/telegram/QuickReplyManager.h | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/td/telegram/QuickReplyManager.cpp b/td/telegram/QuickReplyManager.cpp index 18312ed73..8c7988be1 100644 --- a/td/telegram/QuickReplyManager.cpp +++ b/td/telegram/QuickReplyManager.cpp @@ -830,7 +830,8 @@ void QuickReplyManager::reload_quick_reply_messages(QuickReplyShortcutId shortcu Result> r_messages) { send_closure(actor_id, &QuickReplyManager::on_reload_quick_reply_messages, shortcut_id, std::move(r_messages)); }); - td_->create_handler(std::move(query_promise))->send(shortcut_id, vector(), 0); + td_->create_handler(std::move(query_promise)) + ->send(shortcut_id, vector(), get_quick_reply_messages_hash(get_shortcut(shortcut_id))); } void QuickReplyManager::on_reload_quick_reply_messages( @@ -909,6 +910,18 @@ void QuickReplyManager::on_reload_quick_reply_messages( } } +int64 QuickReplyManager::get_quick_reply_messages_hash(const Shortcut *s) { + CHECK(s != nullptr); + vector numbers; + for (auto &message : s->messages_) { + if (message->message_id.is_server()) { + numbers.push_back(message->message_id.get_server_message_id().get()); + numbers.push_back(message->edit_date); + } + } + return get_vector_hash(numbers); +} + QuickReplyManager::Shortcut *QuickReplyManager::get_shortcut(QuickReplyShortcutId shortcut_id) { if (!shortcuts_.are_inited_) { return nullptr; diff --git a/td/telegram/QuickReplyManager.h b/td/telegram/QuickReplyManager.h index 68caafc30..a3a2a0bd4 100644 --- a/td/telegram/QuickReplyManager.h +++ b/td/telegram/QuickReplyManager.h @@ -169,6 +169,8 @@ class QuickReplyManager final : public Actor { void on_reload_quick_reply_messages(QuickReplyShortcutId shortcut_id, Result> r_messages); + static int64 get_quick_reply_messages_hash(const Shortcut *s); + Shortcut *get_shortcut(QuickReplyShortcutId shortcut_id); Shortcut *get_shortcut(const string &name);