diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index a2bed2832..01c868486 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -2877,6 +2877,31 @@ class GetNotifySettingsExceptionsQuery : public Td::ResultHandler { auto updates_ptr = result_ptr.move_as_ok(); auto dialog_ids = UpdatesManager::get_update_notify_settings_dialog_ids(updates_ptr.get()); + vector> users; + vector> chats; + switch (updates_ptr->get_id()) { + case telegram_api::updatesCombined::ID: { + auto updates = static_cast(updates_ptr.get()); + users = std::move(updates->users_); + chats = std::move(updates->chats_); + reset_to_empty(updates->users_); + reset_to_empty(updates->chats_); + break; + } + case telegram_api::updates::ID: { + auto updates = static_cast(updates_ptr.get()); + users = std::move(updates->users_); + chats = std::move(updates->chats_); + reset_to_empty(updates->users_); + reset_to_empty(updates->chats_); + break; + } + } + td->contacts_manager_->on_get_users(std::move(users), "GetNotifySettingsExceptionsQuery"); + td->contacts_manager_->on_get_chats(std::move(chats), "GetNotifySettingsExceptionsQuery"); + for (auto &dialog_id : dialog_ids) { + td->messages_manager_->force_create_dialog(dialog_id, "GetNotifySettingsExceptionsQuery"); + } td->updates_manager_->on_get_updates(std::move(updates_ptr)); promise_.set_value(std::move(dialog_ids)); diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp index 7bc5c5174..ef4bf5113 100644 --- a/td/telegram/UpdatesManager.cpp +++ b/td/telegram/UpdatesManager.cpp @@ -643,7 +643,7 @@ void UpdatesManager::on_get_updates(tl_object_ptr &&updat return; } - switch (updates_ptr->get_id()) { + switch (updates_type) { case telegram_api::updatesTooLong::ID: get_difference("updatesTooLong"); break;