From 2351a832278044d8f3284bb3076ca977e956632b Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 24 Jan 2024 12:01:20 +0300 Subject: [PATCH] Add and use get_chosen_tags. --- td/telegram/MessageReaction.cpp | 7 +++++++ td/telegram/MessageReaction.h | 2 ++ td/telegram/MessagesManager.cpp | 17 +++++------------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/td/telegram/MessageReaction.cpp b/td/telegram/MessageReaction.cpp index 153cded0a..75442e864 100644 --- a/td/telegram/MessageReaction.cpp +++ b/td/telegram/MessageReaction.cpp @@ -965,4 +965,11 @@ void report_message_reactions(Td *td, MessageFullId message_full_id, DialogId ch td->create_handler(std::move(promise))->send(dialog_id, message_id, chooser_dialog_id); } +vector get_chosen_tags(const unique_ptr &message_reactions) { + if (message_reactions == nullptr || !message_reactions->are_tags_) { + return {}; + } + return message_reactions->get_chosen_reaction_types(); +} + } // namespace td diff --git a/td/telegram/MessageReaction.h b/td/telegram/MessageReaction.h index d6ab005d2..a64f80f06 100644 --- a/td/telegram/MessageReaction.h +++ b/td/telegram/MessageReaction.h @@ -228,4 +228,6 @@ void get_message_added_reactions(Td *td, MessageFullId message_full_id, Reaction void report_message_reactions(Td *td, MessageFullId message_full_id, DialogId chooser_dialog_id, Promise &&promise); +vector get_chosen_tags(const unique_ptr &message_reactions); + } // namespace td diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 464a0acb0..529a48a51 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -22738,10 +22738,7 @@ void MessagesManager::add_message_reaction(MessageFullId message_full_id, Reacti LOG(INFO) << "Have message with " << *m->reactions; bool is_tag = can_add_message_tag(dialog_id, m->reactions.get()); - vector old_chosen_tags; - if (is_tag) { - old_chosen_tags = m->reactions->get_chosen_reaction_types(); - } + auto old_chosen_tags = get_chosen_tags(m->reactions); if (!m->reactions->add_my_reaction(reaction_type, is_big, get_my_reaction_dialog_id(d), have_recent_choosers, is_tag)) { return promise.set_value(Unit()); @@ -22750,7 +22747,7 @@ void MessagesManager::add_message_reaction(MessageFullId message_full_id, Reacti set_message_reactions(d, m, is_big, add_to_recent, std::move(promise)); if (is_tag) { - td_->reaction_manager_->update_saved_messages_tags(old_chosen_tags, m->reactions->get_chosen_reaction_types()); + td_->reaction_manager_->update_saved_messages_tags(old_chosen_tags, get_chosen_tags(m->reactions)); } else if (add_to_recent) { td_->reaction_manager_->add_recent_reaction(reaction_type); } @@ -22778,19 +22775,15 @@ void MessagesManager::remove_message_reaction(MessageFullId message_full_id, Rea } LOG(INFO) << "Have message with " << *m->reactions; - bool is_tag = can_add_message_tag(dialog_id, m->reactions.get()); - vector old_chosen_tags; - if (is_tag) { - old_chosen_tags = m->reactions->get_chosen_reaction_types(); - } + auto old_chosen_tags = get_chosen_tags(m->reactions); if (!m->reactions->remove_my_reaction(reaction_type, get_my_reaction_dialog_id(d))) { return promise.set_value(Unit()); } set_message_reactions(d, m, false, false, std::move(promise)); - if (is_tag) { - td_->reaction_manager_->update_saved_messages_tags(old_chosen_tags, m->reactions->get_chosen_reaction_types()); + if (!old_chosen_tags.empty()) { + td_->reaction_manager_->update_saved_messages_tags(old_chosen_tags, get_chosen_tags(m->reactions)); } }