Don't add last new message in on_get_dialog if it is supposed to be added through get_channel_difference.
This commit is contained in:
parent
645973c0a3
commit
d5a19f0a82
@ -14458,7 +14458,7 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vector<tl_object_ptr<te
|
|||||||
auto last_message = std::move(full_message_id_to_message[full_message_id]);
|
auto last_message = std::move(full_message_id_to_message[full_message_id]);
|
||||||
if (last_message == nullptr) {
|
if (last_message == nullptr) {
|
||||||
LOG(ERROR) << "Last " << full_message_id << " not found";
|
LOG(ERROR) << "Last " << full_message_id << " not found";
|
||||||
} else {
|
} else if (!has_pts || d->pts == 0 || dialog->pts_ <= d->pts) {
|
||||||
auto added_full_message_id =
|
auto added_full_message_id =
|
||||||
on_get_message(std::move(last_message), false, has_pts, false, false, false, "get chats");
|
on_get_message(std::move(last_message), false, has_pts, false, false, false, "get chats");
|
||||||
CHECK(d->last_new_message_id == MessageId());
|
CHECK(d->last_new_message_id == MessageId());
|
||||||
@ -14468,14 +14468,13 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vector<tl_object_ptr<te
|
|||||||
set_dialog_last_message_id(d, d->last_new_message_id, "on_get_dialogs");
|
set_dialog_last_message_id(d, d->last_new_message_id, "on_get_dialogs");
|
||||||
send_update_chat_last_message(d, "on_get_dialogs");
|
send_update_chat_last_message(d, "on_get_dialogs");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
get_channel_difference(dialog_id, d->pts, true, "on_get_dialogs");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_pts && !running_get_channel_difference(dialog_id)) {
|
if (has_pts && !running_get_channel_difference(dialog_id)) {
|
||||||
int32 channel_pts = dialog->pts_;
|
set_channel_pts(d, dialog->pts_, "get channel");
|
||||||
LOG_IF(ERROR, channel_pts < d->pts) << "In new " << dialog_id << " pts = " << d->pts
|
|
||||||
<< ", but pts = " << channel_pts << " received in GetChats";
|
|
||||||
set_channel_pts(d, channel_pts, "get channel");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool is_marked_as_unread = (dialog->flags_ & telegram_api::dialog::UNREAD_MARK_MASK) != 0;
|
bool is_marked_as_unread = (dialog->flags_ & telegram_api::dialog::UNREAD_MARK_MASK) != 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user