Fix dialog order comparisons.
GitOrigin-RevId: c3d0a23d3e8d894532fa2dcf708175242e715c80
This commit is contained in:
parent
784836f3b6
commit
07d6f17f33
@ -9421,7 +9421,7 @@ int32 MessagesManager::calc_new_unread_count_from_the_end(Dialog *d, MessageId m
|
|||||||
}
|
}
|
||||||
|
|
||||||
// hint_unread_count is definitely wrong, ignore it
|
// hint_unread_count is definitely wrong, ignore it
|
||||||
if (d->order != 0) {
|
if (d->order != DEFAULT_ORDER) {
|
||||||
LOG(ERROR) << "Receive hint_unread_count = " << hint_unread_count << ", but found " << unread_count
|
LOG(ERROR) << "Receive hint_unread_count = " << hint_unread_count << ", but found " << unread_count
|
||||||
<< " unread messages in " << d->dialog_id;
|
<< " unread messages in " << d->dialog_id;
|
||||||
}
|
}
|
||||||
@ -9486,7 +9486,7 @@ void MessagesManager::repair_channel_server_unread_count(Dialog *d) {
|
|||||||
// all messages are already read
|
// all messages are already read
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (d->order == 0) {
|
if (d->order == DEFAULT_ORDER) {
|
||||||
// there is no unread count in left channels
|
// there is no unread count in left channels
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -12250,7 +12250,7 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vector<tl_object_ptr<te
|
|||||||
read_inbox_max_message_id = d->last_read_inbox_message_id;
|
read_inbox_max_message_id = d->last_read_inbox_message_id;
|
||||||
}
|
}
|
||||||
if (d->need_repair_server_unread_count && (d->last_read_inbox_message_id <= read_inbox_max_message_id ||
|
if (d->need_repair_server_unread_count && (d->last_read_inbox_message_id <= read_inbox_max_message_id ||
|
||||||
d->order == 0 || !have_input_peer(dialog_id, AccessRights::Read))) {
|
d->order == DEFAULT_ORDER || !have_input_peer(dialog_id, AccessRights::Read))) {
|
||||||
LOG(INFO) << "Repaired server unread count in " << dialog_id << " from " << d->last_read_inbox_message_id << "/"
|
LOG(INFO) << "Repaired server unread count in " << dialog_id << " from " << d->last_read_inbox_message_id << "/"
|
||||||
<< d->server_unread_count << " to " << read_inbox_max_message_id << "/" << dialog->unread_count_;
|
<< d->server_unread_count << " to " << read_inbox_max_message_id << "/" << dialog->unread_count_;
|
||||||
d->need_repair_server_unread_count = false;
|
d->need_repair_server_unread_count = false;
|
||||||
@ -16013,7 +16013,7 @@ void MessagesManager::read_history_on_server_impl(DialogId dialog_id, MessageId
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (d->need_repair_server_unread_count && d->order != 0) {
|
if (d->need_repair_server_unread_count && d->order != DEFAULT_ORDER) {
|
||||||
repair_server_unread_count(dialog_id, d->server_unread_count);
|
repair_server_unread_count(dialog_id, d->server_unread_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28009,7 +28009,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
|
|||||||
get_history_from_the_end(dialog_id, true, false, Auto());
|
get_history_from_the_end(dialog_id, true, false, Auto());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->need_repair_server_unread_count && d->order != 0) {
|
if (d->need_repair_server_unread_count && d->order != DEFAULT_ORDER) {
|
||||||
CHECK(dialog_type != DialogType::SecretChat);
|
CHECK(dialog_type != DialogType::SecretChat);
|
||||||
repair_server_unread_count(dialog_id, d->server_unread_count);
|
repair_server_unread_count(dialog_id, d->server_unread_count);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user