From a87b1b4b75e42c06bc9f52bc2abf583e0ca8e2c5 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 6 Jun 2020 23:20:04 +0300 Subject: [PATCH] Return parallel first chat list loading. GitOrigin-RevId: 236bbe8ed898f8ef1dae2add8998a78e4ec1b5f7 --- td/telegram/MessagesManager.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 81dafe080..24312bcb1 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -7899,12 +7899,12 @@ void MessagesManager::after_get_difference() { } } while (!postponed_unread_message_count_updates_.empty()) { - auto list = get_dialog_list(*postponed_unread_message_count_updates_.begin()); + auto *list = get_dialog_list(*postponed_unread_message_count_updates_.begin()); CHECK(list != nullptr); send_update_unread_message_count(*list, DialogId(), true, "after_get_difference"); } while (!postponed_unread_chat_count_updates_.empty()) { - auto list = get_dialog_list(*postponed_unread_chat_count_updates_.begin()); + auto *list = get_dialog_list(*postponed_unread_chat_count_updates_.begin()); CHECK(list != nullptr); send_update_unread_chat_count(*list, DialogId(), true, "after_get_difference"); } @@ -12934,7 +12934,7 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vector MessagesManager::get_dialogs(DialogListId dialog_list_id, Dialo if (limit == 0 || force) { promise.set_value(Unit()); } else { + if (dialog_list_id.is_folder()) { + auto &folder = *get_dialog_folder(dialog_list_id.get_folder_id()); + if (folder.last_loaded_database_dialog_date_ == folder.last_database_server_dialog_date_ && + folder.folder_last_dialog_date_ != MAX_DIALOG_DATE) { + load_dialog_list(list, limit, std::move(promise)); + return result; + } + } reload_pinned_dialogs(dialog_list_id, std::move(promise)); } return result;