From 679bc7c84b5cda8957fde781b77d37b364411ee1 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 2 Apr 2020 00:15:23 +0300 Subject: [PATCH] Adjust first_database_message_id after receiving messages from database. GitOrigin-RevId: 2b27f0eebf0fd0f30fb1231df50ee808933a6f21 --- td/telegram/MessagesManager.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 6ab1014b8..63243c21a 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -17279,6 +17279,7 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId bool need_update = false; bool need_update_dialog_pos = false; bool added_new_message = false; + MessageId first_added_message_id; MessageId last_added_message_id; Message *next_message = nullptr; Dependencies dependencies; @@ -17333,6 +17334,7 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId : add_message_to_dialog(d, std::move(message), false, &need_update, &need_update_dialog_pos, "on_get_history_from_database"); if (m != nullptr) { + first_added_message_id = m->message_id; if (!have_next) { last_added_message_id = m->message_id; } @@ -17414,6 +17416,15 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId } } } + if (first_added_message_id.is_valid() && first_added_message_id != d->first_database_message_id && + last_received_message_id < d->first_database_message_id && d->last_new_message_id.is_valid() && + !d->have_full_history) { + CHECK(first_added_message_id > d->first_database_message_id); + set_dialog_first_database_message_id(d, first_added_message_id, "on_get_history_from_database 10"); + if (d->last_database_message_id < d->first_database_message_id) { + set_dialog_last_database_message_id(d, d->first_database_message_id, "on_get_history_from_database 11"); + } + } if (need_update_dialog_pos) { send_update_chat_last_message(d, "on_get_history_from_database 7");