From 7b6ce8b82228c6ecc0998570430284c1123ea041 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 8 Jan 2024 19:20:22 +0300 Subject: [PATCH] Move reload_dialog_info to DialogManager. --- td/telegram/ContactsManager.cpp | 13 ------------- td/telegram/ContactsManager.h | 2 -- td/telegram/DialogManager.cpp | 14 ++++++++++++++ td/telegram/DialogManager.h | 2 ++ td/telegram/FileReferenceManager.cpp | 3 ++- td/telegram/MessagesManager.cpp | 2 +- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 97692dea0..5194ae40b 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -15509,19 +15509,6 @@ bool ContactsManager::is_dialog_info_received_from_server(DialogId dialog_id) co } } -void ContactsManager::reload_dialog_info(DialogId dialog_id, Promise &&promise) { - switch (dialog_id.get_type()) { - case DialogType::User: - return reload_user(dialog_id.get_user_id(), std::move(promise), "reload_dialog_info"); - case DialogType::Chat: - return reload_chat(dialog_id.get_chat_id(), std::move(promise), "reload_dialog_info"); - case DialogType::Channel: - return reload_channel(dialog_id.get_channel_id(), std::move(promise), "reload_dialog_info"); - default: - return promise.set_error(Status::Error("Invalid chat identifier to reload")); - } -} - void ContactsManager::send_get_me_query(Td *td, Promise &&promise) { vector> users; users.push_back(make_tl_object()); diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 304829d4e..286229d38 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -563,8 +563,6 @@ class ContactsManager final : public Actor { bool is_dialog_info_received_from_server(DialogId dialog_id) const; - void reload_dialog_info(DialogId dialog_id, Promise &&promise); - static void send_get_me_query(Td *td, Promise &&promise); UserId get_me(Promise &&promise); bool get_user(UserId user_id, int left_tries, Promise &&promise); diff --git a/td/telegram/DialogManager.cpp b/td/telegram/DialogManager.cpp index ed671c9c1..1fa1c12d2 100644 --- a/td/telegram/DialogManager.cpp +++ b/td/telegram/DialogManager.cpp @@ -712,6 +712,20 @@ bool DialogManager::have_dialog_info_force(DialogId dialog_id, const char *sourc } } +void DialogManager::reload_dialog_info(DialogId dialog_id, Promise &&promise) { + switch (dialog_id.get_type()) { + case DialogType::User: + return td_->contacts_manager_->reload_user(dialog_id.get_user_id(), std::move(promise), "reload_dialog_info"); + case DialogType::Chat: + return td_->contacts_manager_->reload_chat(dialog_id.get_chat_id(), std::move(promise), "reload_dialog_info"); + case DialogType::Channel: + return td_->contacts_manager_->reload_channel(dialog_id.get_channel_id(), std::move(promise), + "reload_dialog_info"); + default: + return promise.set_error(Status::Error("Invalid chat identifier to reload")); + } +} + void DialogManager::get_dialog_info_full(DialogId dialog_id, Promise &&promise, const char *source) { switch (dialog_id.get_type()) { case DialogType::User: diff --git a/td/telegram/DialogManager.h b/td/telegram/DialogManager.h index d744b3139..a3ef4559d 100644 --- a/td/telegram/DialogManager.h +++ b/td/telegram/DialogManager.h @@ -82,6 +82,8 @@ class DialogManager final : public Actor { bool have_dialog_info_force(DialogId dialog_id, const char *source) const; + void reload_dialog_info(DialogId dialog_id, Promise &&promise); + void get_dialog_info_full(DialogId dialog_id, Promise &&promise, const char *source); void reload_dialog_info_full(DialogId dialog_id, const char *source); diff --git a/td/telegram/FileReferenceManager.cpp b/td/telegram/FileReferenceManager.cpp index aaf492137..dd7838c31 100644 --- a/td/telegram/FileReferenceManager.cpp +++ b/td/telegram/FileReferenceManager.cpp @@ -11,6 +11,7 @@ #include "td/telegram/BackgroundManager.h" #include "td/telegram/ConfigManager.h" #include "td/telegram/ContactsManager.h" +#include "td/telegram/DialogManager.h" #include "td/telegram/files/FileManager.h" #include "td/telegram/Global.h" #include "td/telegram/MessagesManager.h" @@ -449,7 +450,7 @@ void FileReferenceManager::reload_photo(PhotoSizeSource source, Promise pr case PhotoSizeSource::Type::DialogPhotoSmall: case PhotoSizeSource::Type::DialogPhotoBigLegacy: case PhotoSizeSource::Type::DialogPhotoSmallLegacy: - send_closure(G()->contacts_manager(), &ContactsManager::reload_dialog_info, source.dialog_photo().dialog_id, + send_closure(G()->dialog_manager(), &DialogManager::reload_dialog_info, source.dialog_photo().dialog_id, std::move(promise)); break; case PhotoSizeSource::Type::StickerSetThumbnail: diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index c282d924d..a3f687920 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -3453,7 +3453,7 @@ class ForwardMessagesQuery final : public Td::ResultHandler { } // no on_get_dialog_error call, because two dialogs are involved if (status.code() == 400 && status.message() == CSlice("CHAT_FORWARDS_RESTRICTED")) { - td_->contacts_manager_->reload_dialog_info(from_dialog_id_, Promise()); + td_->dialog_manager_->reload_dialog_info(from_dialog_id_, Promise()); } if (status.code() == 400 && status.message() == CSlice("SEND_AS_PEER_INVALID")) { td_->dialog_manager_->reload_dialog_info_full(to_dialog_id_, "SEND_AS_PEER_INVALID");