Fix MessageReaction::set_my_recent_chooser_dialog_id.
This commit is contained in:
parent
ac81a35283
commit
e4a15cc0ef
@ -472,12 +472,15 @@ void MessageReaction::set_my_recent_chooser_dialog_id(DialogId my_dialog_id) {
|
|||||||
if (!my_recent_chooser_dialog_id_.is_valid() || my_recent_chooser_dialog_id_ == my_dialog_id) {
|
if (!my_recent_chooser_dialog_id_.is_valid() || my_recent_chooser_dialog_id_ == my_dialog_id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (td::contains(recent_chooser_dialog_ids_, my_dialog_id)) {
|
td::remove(recent_chooser_dialog_ids_, my_dialog_id);
|
||||||
my_recent_chooser_dialog_id_ = my_dialog_id;
|
for (auto &dialog_id : recent_chooser_dialog_ids_) {
|
||||||
} else {
|
if (dialog_id == my_recent_chooser_dialog_id_) {
|
||||||
my_recent_chooser_dialog_id_ = DialogId();
|
dialog_id = my_dialog_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CHECK(td::contains(recent_chooser_dialog_ids_, my_dialog_id));
|
||||||
|
my_recent_chooser_dialog_id_ = my_dialog_id;
|
||||||
|
}
|
||||||
|
|
||||||
td_api::object_ptr<td_api::messageReaction> MessageReaction::get_message_reaction_object(Td *td, UserId my_user_id,
|
td_api::object_ptr<td_api::messageReaction> MessageReaction::get_message_reaction_object(Td *td, UserId my_user_id,
|
||||||
UserId peer_user_id) const {
|
UserId peer_user_id) const {
|
||||||
@ -523,6 +526,9 @@ StringBuilder &operator<<(StringBuilder &string_builder, const MessageReaction &
|
|||||||
string_builder << '[' << reaction.reaction_ << (reaction.is_chosen_ ? " X " : " x ") << reaction.choose_count_;
|
string_builder << '[' << reaction.reaction_ << (reaction.is_chosen_ ? " X " : " x ") << reaction.choose_count_;
|
||||||
if (!reaction.recent_chooser_dialog_ids_.empty()) {
|
if (!reaction.recent_chooser_dialog_ids_.empty()) {
|
||||||
string_builder << " by " << reaction.recent_chooser_dialog_ids_;
|
string_builder << " by " << reaction.recent_chooser_dialog_ids_;
|
||||||
|
if (reaction.my_recent_chooser_dialog_id_.is_valid()) {
|
||||||
|
string_builder << " and my " << reaction.my_recent_chooser_dialog_id_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return string_builder << ']';
|
return string_builder << ']';
|
||||||
}
|
}
|
||||||
|
@ -7129,12 +7129,14 @@ bool MessagesManager::update_message_interaction_info(Dialog *d, Message *m, int
|
|||||||
if (has_reactions) {
|
if (has_reactions) {
|
||||||
auto it = pending_reactions_.find({dialog_id, m->message_id});
|
auto it = pending_reactions_.find({dialog_id, m->message_id});
|
||||||
if (it != pending_reactions_.end()) {
|
if (it != pending_reactions_.end()) {
|
||||||
LOG(INFO) << "Ignore reactions, because have a pending message reaction";
|
LOG(INFO) << "Ignore reactions for " << FullMessageId{dialog_id, m->message_id}
|
||||||
|
<< ", because they are being changed";
|
||||||
has_reactions = false;
|
has_reactions = false;
|
||||||
it->second.was_updated = true;
|
it->second.was_updated = true;
|
||||||
}
|
}
|
||||||
if (has_reactions && pending_read_reactions_.count({dialog_id, m->message_id}) > 0) {
|
if (has_reactions && pending_read_reactions_.count({dialog_id, m->message_id}) > 0) {
|
||||||
LOG(INFO) << "Ignore reactions, because have a pending message reaction read";
|
LOG(INFO) << "Ignore reactions for " << FullMessageId{dialog_id, m->message_id}
|
||||||
|
<< ", because they are being read";
|
||||||
has_reactions = false;
|
has_reactions = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user