| 467 | } |
| 468 | |
| 469 | void Polls::close(not_null<HistoryItem*> item) { |
| 470 | const auto itemId = item->fullId(); |
| 471 | if (_pollCloseRequestIds.contains(itemId)) { |
| 472 | return; |
| 473 | } |
| 474 | const auto media = item ? item->media() : nullptr; |
| 475 | const auto poll = media ? media->poll() : nullptr; |
| 476 | if (!poll) { |
| 477 | return; |
| 478 | } |
| 479 | const auto requestId = _api.request(MTPmessages_EditMessage( |
| 480 | MTP_flags(MTPmessages_EditMessage::Flag::f_media), |
| 481 | item->history()->peer->input(), |
| 482 | MTP_int(item->id), |
| 483 | MTPstring(), |
| 484 | PollDataToInputMedia(poll, true), |
| 485 | MTPReplyMarkup(), |
| 486 | MTPVector<MTPMessageEntity>(), |
| 487 | MTP_int(0), // schedule_date |
| 488 | MTP_int(0), // schedule_repeat_period |
| 489 | MTPint(), // quick_reply_shortcut_id |
| 490 | MTPInputRichMessage() |
| 491 | )).done([=](const MTPUpdates &result) { |
| 492 | _pollCloseRequestIds.erase(itemId); |
| 493 | _session->updates().applyUpdates(result); |
| 494 | }).fail([=] { |
| 495 | _pollCloseRequestIds.erase(itemId); |
| 496 | }).send(); |
| 497 | _pollCloseRequestIds.emplace(itemId, requestId); |
| 498 | } |
| 499 | |
| 500 | void Polls::reloadResults(not_null<HistoryItem*> item) { |
| 501 | const auto itemId = item->fullId(); |
no test coverage detected