diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index e79add965..4cdbfb7a0 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -8907,7 +8907,7 @@ ContactsManager::User *ContactsManager::get_user(UserId user_id) { } } -void ContactsManager::reload_dialog(DialogId dialog_id, Promise &&promise) { +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)); diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index a91f8eb55..ea13bf81d 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -351,7 +351,7 @@ class ContactsManager : public Actor { bool have_min_user(UserId user_id) const; bool have_user_force(UserId user_id); - void reload_dialog(DialogId dialog_id, Promise &&promise); + void reload_dialog_info(DialogId dialog_id, Promise &&promise); static void send_get_me_query(Td *td, Promise &&promise); UserId get_me(Promise &&promise); diff --git a/td/telegram/FileReferenceManager.cpp b/td/telegram/FileReferenceManager.cpp index be68e13f6..7b7657676 100644 --- a/td/telegram/FileReferenceManager.cpp +++ b/td/telegram/FileReferenceManager.cpp @@ -340,13 +340,16 @@ void FileReferenceManager::reload_photo(PhotoSizeSource source, Promise pr switch (source.get_type()) { case PhotoSizeSource::Type::DialogPhotoBig: case PhotoSizeSource::Type::DialogPhotoSmall: - send_closure(G()->contacts_manager(), &ContactsManager::reload_dialog, source.dialog_photo().dialog_id, + send_closure(G()->contacts_manager(), &ContactsManager::reload_dialog_info, source.dialog_photo().dialog_id, std::move(promise)); break; case PhotoSizeSource::Type::StickerSetThumbnail: - //TODO + send_closure(G()->stickers_manager(), &StickersManager::reload_sticker_set, + source.sticker_set_thumbnail().sticker_set_id, + source.sticker_set_thumbnail().sticker_set_access_hash, std::move(promise)); + break; default: - promise.set_error(Status::Error("Unexpected PotoSizeSource type")); + promise.set_error(Status::Error("Unexpected PhotoSizeSource type")); } } diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 239f5a7bd..eca06aa6b 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -2434,10 +2434,10 @@ bool StickersManager::update_sticker_set_cache(const StickerSet *sticker_set, Pr } else { if (G()->unix_time() >= sticker_set->expires_at) { if (td_->auth_manager_->is_bot()) { - reload_sticker_set(set_id, get_input_sticker_set(sticker_set), std::move(promise)); + do_reload_sticker_set(set_id, get_input_sticker_set(sticker_set), std::move(promise)); return true; } else { - reload_sticker_set(set_id, get_input_sticker_set(sticker_set), Auto()); + do_reload_sticker_set(set_id, get_input_sticker_set(sticker_set), Auto()); } } } @@ -2449,7 +2449,7 @@ int64 StickersManager::get_sticker_set(int64 set_id, Promise &&promise) { const StickerSet *sticker_set = get_sticker_set(set_id); if (sticker_set == nullptr) { if (set_id == GREAT_MINDS_SET_ID) { - reload_sticker_set(set_id, make_tl_object(set_id, 0), std::move(promise)); + do_reload_sticker_set(set_id, make_tl_object(set_id, 0), std::move(promise)); return 0; } @@ -2472,7 +2472,7 @@ int64 StickersManager::search_sticker_set(const string &short_name_to_search, Pr if (sticker_set == nullptr) { auto set_to_load = make_tl_object(short_name); - reload_sticker_set(0, std::move(set_to_load), std::move(promise)); + do_reload_sticker_set(0, std::move(set_to_load), std::move(promise)); return 0; } @@ -2849,7 +2849,7 @@ void StickersManager::load_sticker_sets(vector &&sticker_set_ids, Promise })); } else { LOG(INFO) << "Trying to load sticker set " << sticker_set_id << " with stickers from server"; - reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); + do_reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); } } } @@ -2885,7 +2885,7 @@ void StickersManager::load_sticker_sets_without_stickers(vector &&sticker })); } else { LOG(INFO) << "Trying to load sticker set " << sticker_set_id << " from server"; - reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); + do_reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); } } } @@ -2910,7 +2910,7 @@ void StickersManager::on_load_sticker_set_from_database(int64 sticker_set_id, bo CHECK(!sticker_set->load_without_stickers_requests.empty()); } if (value.empty()) { - return reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); + return do_reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); } LOG(INFO) << "Successfully loaded sticker set " << sticker_set_id << " with" << (with_stickers ? "" : "out") @@ -2936,7 +2936,7 @@ void StickersManager::on_load_sticker_set_from_database(int64 sticker_set_id, bo } } if (!sticker_set->is_thumbnail_reloaded) { - reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); + do_reload_sticker_set(sticker_set_id, get_input_sticker_set(sticker_set), Auto()); } if (with_stickers && old_sticker_count < 5 && old_sticker_count < sticker_set->sticker_ids.size()) { @@ -2947,9 +2947,14 @@ void StickersManager::on_load_sticker_set_from_database(int64 sticker_set_id, bo update_load_requests(sticker_set, with_stickers, Status::OK()); } -void StickersManager::reload_sticker_set(int64 sticker_set_id, - tl_object_ptr &&input_sticker_set, - Promise &&promise) const { +void StickersManager::reload_sticker_set(int64 sticker_set_id, int64 access_hash, Promise &&promise) { + do_reload_sticker_set(sticker_set_id, make_tl_object(sticker_set_id, access_hash), + std::move(promise)); +} + +void StickersManager::do_reload_sticker_set(int64 sticker_set_id, + tl_object_ptr &&input_sticker_set, + Promise &&promise) const { if (G()->close_flag()) { return promise.set_error(Status::Error(500, "Request aborted")); } diff --git a/td/telegram/StickersManager.h b/td/telegram/StickersManager.h index 62b179452..8f5b90fba 100644 --- a/td/telegram/StickersManager.h +++ b/td/telegram/StickersManager.h @@ -201,6 +201,8 @@ class StickersManager : public Actor { td_api::object_ptr get_emoji_suggestions_url_result(int64 random_id); + void reload_sticker_set(int64 sticker_set_id, int64 access_hash, Promise &&promise); + void reload_installed_sticker_sets(bool is_masks, bool force); void reload_featured_sticker_sets(bool force); @@ -373,8 +375,8 @@ class StickersManager : public Actor { void update_load_request(uint32 load_request_id, const Status &status); - void reload_sticker_set(int64 sticker_set_id, tl_object_ptr &&input_sticker_set, - Promise &&promise) const; + void do_reload_sticker_set(int64 sticker_set_id, tl_object_ptr &&input_sticker_set, + Promise &&promise) const; static void read_featured_sticker_sets(void *td_void); diff --git a/td/telegram/files/FileManager.h b/td/telegram/files/FileManager.h index 2337c4890..be8fa3044 100644 --- a/td/telegram/files/FileManager.h +++ b/td/telegram/files/FileManager.h @@ -301,7 +301,7 @@ class FileView { return node_->encryption_key_; } - bool may_reload_photo() { + bool may_reload_photo() const { if (!has_remote_location()) { return false; }