From c662b81a3dc07b7630b2db8f13b1f8645d9d93fe Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 2 Sep 2022 18:59:15 +0300 Subject: [PATCH] Return ChatReactions from MessagesManager::get_message_active_reactions. --- td/telegram/MessagesManager.cpp | 11 ++++++----- td/telegram/MessagesManager.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index bddd44bb0..eb22c7437 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -8303,21 +8303,21 @@ ChatReactions MessagesManager::get_dialog_active_reactions(const Dialog *d) cons } } -vector MessagesManager::get_message_active_reactions(const Dialog *d, const Message *m) const { +ChatReactions MessagesManager::get_message_active_reactions(const Dialog *d, const Message *m) const { CHECK(d != nullptr); CHECK(m != nullptr); if (is_service_message_content(m->content->get_type()) || m->ttl > 0) { - return vector(); + return ChatReactions(); } if (is_discussion_message(d->dialog_id, m)) { d = get_dialog(m->forward_info->from_dialog_id); if (d == nullptr) { LOG(ERROR) << "Failed to find linked " << m->forward_info->from_dialog_id << " to determine correct active reactions"; - return vector(); + return ChatReactions(); } } - return get_dialog_active_reactions(d).reactions_; + return get_dialog_active_reactions(d); } bool MessagesManager::need_poll_dialog_message_reactions(const Dialog *d) { @@ -24493,7 +24493,8 @@ vector MessagesManager::get_message_available_reactions(const for (const auto &active_reaction : active_reactions_) { // can add the reaction if it has already been used for the message or is available in the chat bool is_set = (m->reactions != nullptr && m->reactions->get_reaction(active_reaction.reaction_) != nullptr); - if (is_set || (can_add_new_reactions && td::contains(active_reactions, active_reaction.reaction_))) { + if (is_set || (can_add_new_reactions && (active_reactions.allow_all_ || + td::contains(active_reactions.reactions_, active_reaction.reaction_)))) { result.emplace_back(active_reaction.reaction_); } } diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index f0f74aaa0..bb5685e2c 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -2696,7 +2696,7 @@ class MessagesManager final : public Actor { ChatReactions get_dialog_active_reactions(const Dialog *d) const; - vector get_message_active_reactions(const Dialog *d, const Message *m) const; + ChatReactions get_message_active_reactions(const Dialog *d, const Message *m) const; static bool need_poll_dialog_message_reactions(const Dialog *d);