From 43e5f2adedfa36bda0028fdc81eabc17320a923c Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 5 Feb 2023 10:04:19 +0300 Subject: [PATCH] Support updateAutosaveSettings in getCurrentState. --- td/telegram/AutosaveManager.cpp | 16 ++++++++++++++++ td/telegram/AutosaveManager.h | 2 ++ td/telegram/Td.cpp | 2 ++ 3 files changed, 20 insertions(+) diff --git a/td/telegram/AutosaveManager.cpp b/td/telegram/AutosaveManager.cpp index f126d2d22..f6b37460a 100644 --- a/td/telegram/AutosaveManager.cpp +++ b/td/telegram/AutosaveManager.cpp @@ -354,4 +354,20 @@ void AutosaveManager::send_update_autosave_settings(td_api::object_ptrtd(), &Td::send_update, get_update_autosave_settings(std::move(scope), settings)); } +void AutosaveManager::get_current_state(vector> &updates) const { + if (!settings_.are_inited_) { + return; + } + updates.push_back(get_update_autosave_settings(td_api::make_object(), + settings_.user_settings_)); + updates.push_back(get_update_autosave_settings(td_api::make_object(), + settings_.chat_settings_)); + updates.push_back(get_update_autosave_settings(td_api::make_object(), + settings_.broadcast_settings_)); + for (const auto &exception : settings_.exceptions_) { + updates.push_back(get_update_autosave_settings( + td_api::make_object(exception.first.get()), exception.second)); + } +} + } // namespace td diff --git a/td/telegram/AutosaveManager.h b/td/telegram/AutosaveManager.h index 1f2175869..6a432500c 100644 --- a/td/telegram/AutosaveManager.h +++ b/td/telegram/AutosaveManager.h @@ -34,6 +34,8 @@ class AutosaveManager final : public Actor { void clear_autosave_settings_excpetions(Promise &&promise); + void get_current_state(vector> &updates) const; + private: struct DialogAutosaveSettings { bool are_inited_ = false; diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index c192e9455..15e6486f4 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -4299,6 +4299,8 @@ void Td::on_request(uint64 id, const td_api::getCurrentState &request) { config_manager_.get_actor_unsafe()->get_current_state(updates); + autosave_manager_->get_current_state(updates); + // TODO updateFileGenerationStart generation_id:int64 original_path:string destination_path:string conversion:string = Update; // TODO updateCall call:call = Update; // TODO updateGroupCall call:groupCall = Update;