From 0b689bdc233d7c4275e0297776537787a78d2b0d Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 3 Mar 2019 06:36:30 +0300 Subject: [PATCH] Add poll search text. GitOrigin-RevId: a7da84edd364361186db1cf0807759b94b601f95 --- td/telegram/MessageContent.cpp | 5 ++++- td/telegram/PollManager.cpp | 12 ++++++++++++ td/telegram/PollManager.h | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/td/telegram/MessageContent.cpp b/td/telegram/MessageContent.cpp index bf53327c..98963098 100644 --- a/td/telegram/MessageContent.cpp +++ b/td/telegram/MessageContent.cpp @@ -4700,6 +4700,10 @@ string get_message_content_search_text(const Td *td, const MessageContent *conte auto video = static_cast(content); return PSTRING() << td->videos_manager_->get_video_search_text(video->file_id) << " " << video->caption.text; } + case MessageContentType::Poll: { + auto poll = static_cast(content); + return td->poll_manager_->get_poll_search_text(poll->poll_id); + } case MessageContentType::Contact: case MessageContentType::Game: case MessageContentType::Invoice: @@ -4733,7 +4737,6 @@ string get_message_content_search_text(const Td *td, const MessageContent *conte case MessageContentType::WebsiteConnected: case MessageContentType::PassportDataSent: case MessageContentType::PassportDataReceived: - case MessageContentType::Poll: return string(); default: UNREACHABLE(); diff --git a/td/telegram/PollManager.cpp b/td/telegram/PollManager.cpp index b37144a9..16ea8dcd 100644 --- a/td/telegram/PollManager.cpp +++ b/td/telegram/PollManager.cpp @@ -391,6 +391,18 @@ bool PollManager::get_poll_is_closed(PollId poll_id) const { return poll->is_closed; } +string PollManager::get_poll_search_text(PollId poll_id) const { + auto poll = get_poll(poll_id); + CHECK(poll != nullptr); + + string result = poll->question; + for (auto &option : poll->options) { + result += ' '; + result += option.text; + } + return result; +} + void PollManager::set_poll_answer(PollId poll_id, FullMessageId full_message_id, vector &&option_ids, Promise &&promise) { if (option_ids.size() > 1) { diff --git a/td/telegram/PollManager.h b/td/telegram/PollManager.h index e136be2c..73b3a03d 100644 --- a/td/telegram/PollManager.h +++ b/td/telegram/PollManager.h @@ -48,6 +48,8 @@ class PollManager : public Actor { bool get_poll_is_closed(PollId poll_id) const; + string get_poll_search_text(PollId poll_id) const; + void set_poll_answer(PollId poll_id, FullMessageId full_message_id, vector &&option_ids, Promise &&promise);