Fix increasing message index count for sent media.
GitOrigin-RevId: c77d4dc9ae16d40cc655dffc26da451fcfe3a2b9
This commit is contained in:
parent
500a8a1302
commit
6b06f43bfd
@ -4472,6 +4472,7 @@ void MessagesManager::update_message_count_by_index(Dialog *d, int diff, int32 i
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOG(INFO) << "Update message count by " << diff << " in index mask " << index_mask;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (auto &message_count : d->message_count_by_index) {
|
for (auto &message_count : d->message_count_by_index) {
|
||||||
if (((index_mask >> i) & 1) != 0 && message_count != -1) {
|
if (((index_mask >> i) & 1) != 0 && message_count != -1) {
|
||||||
@ -4525,6 +4526,7 @@ int32 MessagesManager::get_message_index_mask(DialogId dialog_id, const Message
|
|||||||
mentions_mask |= search_messages_filter_index_mask(SearchMessagesFilter::UnreadMention);
|
mentions_mask |= search_messages_filter_index_mask(SearchMessagesFilter::UnreadMention);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LOG(INFO) << "Have index mask " << mentions_mask << " for " << m->message_id << " in " << dialog_id;
|
||||||
return mentions_mask;
|
return mentions_mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9281,7 +9283,7 @@ void MessagesManager::init() {
|
|||||||
m->have_previous = have_previous;
|
m->have_previous = have_previous;
|
||||||
m->have_next = have_next;
|
m->have_next = have_next;
|
||||||
|
|
||||||
bool need_update = false;
|
bool need_update = from_update;
|
||||||
bool need_update_dialog_pos = false;
|
bool need_update_dialog_pos = false;
|
||||||
if (add_message_to_dialog(dialog_id, std::move(m), from_update, &need_update, &need_update_dialog_pos,
|
if (add_message_to_dialog(dialog_id, std::move(m), from_update, &need_update, &need_update_dialog_pos,
|
||||||
"Unknown source") == nullptr) {
|
"Unknown source") == nullptr) {
|
||||||
@ -10100,6 +10102,9 @@ FullMessageId MessagesManager::on_get_message(MessageInfo &&message_info, bool f
|
|||||||
|
|
||||||
try_add_active_live_location(dialog_id, new_message.get());
|
try_add_active_live_location(dialog_id, new_message.get());
|
||||||
|
|
||||||
|
// add_message_to_dialog will not update counts, because need_update == false
|
||||||
|
update_message_count_by_index(d, +1, new_message.get());
|
||||||
|
|
||||||
if (!from_update) {
|
if (!from_update) {
|
||||||
new_message->have_previous = have_previous;
|
new_message->have_previous = have_previous;
|
||||||
new_message->have_next = have_next;
|
new_message->have_next = have_next;
|
||||||
|
Loading…
Reference in New Issue
Block a user