diff --git a/td/telegram/SavedMessagesManager.cpp b/td/telegram/SavedMessagesManager.cpp index a237f18cd..a3b779534 100644 --- a/td/telegram/SavedMessagesManager.cpp +++ b/td/telegram/SavedMessagesManager.cpp @@ -320,12 +320,15 @@ SavedMessagesTopicId SavedMessagesManager::get_topic_id(int64 topic_id) const { } auto saved_messages_topic_id = SavedMessagesTopicId(DialogId(topic_id)); if (saved_messages_topics_.count(saved_messages_topic_id) == 0) { - // an invalid topic identifier - return SavedMessagesTopicId(DialogId(std::numeric_limits::max())); + return SavedMessagesTopicId(DialogId(std::numeric_limits::max())); // an invalid topic identifier } return saved_messages_topic_id; } +vector SavedMessagesManager::get_topic_ids(const vector &topic_ids) const { + return transform(topic_ids, [this](int64 topic_id) { return get_topic_id(topic_id); }); +} + int64 SavedMessagesManager::get_saved_messages_topic_id_object(SavedMessagesTopicId saved_messages_topic_id) { if (saved_messages_topic_id == SavedMessagesTopicId()) { return 0; diff --git a/td/telegram/SavedMessagesManager.h b/td/telegram/SavedMessagesManager.h index f0fab59f5..f399359a2 100644 --- a/td/telegram/SavedMessagesManager.h +++ b/td/telegram/SavedMessagesManager.h @@ -28,6 +28,8 @@ class SavedMessagesManager final : public Actor { SavedMessagesTopicId get_topic_id(int64 topic_id) const; + vector get_topic_ids(const vector &topic_ids) const; + int64 get_saved_messages_topic_id_object(SavedMessagesTopicId saved_messages_topic_id); void set_topic_last_message_id(SavedMessagesTopicId saved_messages_topic_id, MessageId last_message_id, diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 2aa7a0167..400d46cc9 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -5103,9 +5103,8 @@ void Td::on_request(uint64 id, const td_api::toggleSavedMessagesTopicIsPinned &r void Td::on_request(uint64 id, const td_api::setPinnedSavedMessagesTopics &request) { CHECK_IS_USER(); CREATE_OK_REQUEST_PROMISE(); - auto saved_messages_topic_ids = transform( - request.saved_messages_topic_ids_, [this](int64 topic) { return saved_messages_manager_->get_topic_id(topic); }); - saved_messages_manager_->set_pinned_saved_messages_topics(std::move(saved_messages_topic_ids), std::move(promise)); + saved_messages_manager_->set_pinned_saved_messages_topics( + saved_messages_manager_->get_topic_ids(request.saved_messages_topic_ids_), std::move(promise)); } void Td::on_request(uint64 id, td_api::searchPublicChat &request) {