Add AnimationsManager::get_current_state.

GitOrigin-RevId: 77349703eb55cf61b13941dba7bd513068c8519c
This commit is contained in:
levlam 2018-09-20 22:38:19 +03:00
parent f9de09833c
commit e1812c6531
3 changed files with 31 additions and 17 deletions

View File

@ -665,14 +665,14 @@ void AnimationsManager::remove_saved_animation(const tl_object_ptr<td_api::Input
send_update_saved_animations();
}
td_api::object_ptr<td_api::updateSavedAnimations> AnimationsManager::get_update_saved_animatoions_object() const {
return td_api::make_object<td_api::updateSavedAnimations>(
transform(saved_animation_ids_, [](FileId animation_id) { return animation_id.get(); }));
}
void AnimationsManager::send_update_saved_animations(bool from_database) {
if (are_saved_animations_loaded_) {
vector<int32> animations;
animations.reserve(saved_animation_ids_.size());
for (auto animation_id : saved_animation_ids_) {
animations.push_back(animation_id.get());
}
send_closure(G()->td(), &Td::send_update, make_tl_object<td_api::updateSavedAnimations>(std::move(animations)));
send_closure(G()->td(), &Td::send_update, get_update_saved_animatoions_object());
if (!from_database) {
save_saved_animations_to_database();
@ -694,4 +694,10 @@ string AnimationsManager::get_animation_search_text(FileId file_id) const {
return animation->file_name;
}
void AnimationsManager::get_current_state(vector<td_api::object_ptr<td_api::Update>> &updates) const {
if (are_saved_animations_loaded_) {
updates.push_back(get_update_saved_animatoions_object());
}
}
} // namespace td

View File

@ -81,6 +81,8 @@ class AnimationsManager : public Actor {
string get_animation_search_text(FileId file_id) const;
void get_current_state(vector<td_api::object_ptr<td_api::Update>> &updates) const;
private:
class Animation {
public:
@ -111,6 +113,8 @@ class AnimationsManager : public Actor {
void on_load_saved_animations_finished(vector<FileId> &&saved_animation_ids, bool from_database = false);
td_api::object_ptr<td_api::updateSavedAnimations> get_update_saved_animatoions_object() const;
void send_update_saved_animations(bool from_database = false);
void save_saved_animations_to_database();

View File

@ -4587,8 +4587,11 @@ void Td::on_request(uint64 id, const td_api::getCurrentState &request) {
updates.push_back(td_api::make_object<td_api::updateConnectionState>(get_connection_state_object(connection_state_)));
if (auth_manager_->is_authorized()) {
contacts_manager_->get_current_state(updates);
animations_manager_->get_current_state(updates);
stickers_manager_->get_current_state(updates);
/*
@ -4600,6 +4603,7 @@ void Td::on_request(uint64 id, const td_api::getCurrentState &request) {
updateNewChat {
updateChatLastMessage {
*/
}
// send response synchronously to prevent "Request aborted" or other changes of the current state
send_result(id, td_api::make_object<td_api::updates>(std::move(updates)));