| 641 | } |
| 642 | |
| 643 | MTPInputMedia PollDataToInputMedia( |
| 644 | not_null<const PollData*> poll, |
| 645 | bool close) { |
| 646 | auto inputFlags = MTPDinputMediaPoll::Flag(0) |
| 647 | | (poll->quiz() |
| 648 | ? MTPDinputMediaPoll::Flag::f_correct_answers |
| 649 | : MTPDinputMediaPoll::Flag(0)); |
| 650 | auto correct = QVector<MTPint>(); |
| 651 | for (auto i = 0, count = int(poll->answers.size()); i < count; ++i) { |
| 652 | if (poll->answers[i].correct) { |
| 653 | correct.push_back(MTP_int(i)); |
| 654 | } |
| 655 | } |
| 656 | |
| 657 | auto solution = poll->solution; |
| 658 | const auto prepareFlags = Ui::ItemTextDefaultOptions().flags; |
| 659 | TextUtilities::PrepareForSending(solution, prepareFlags); |
| 660 | TextUtilities::Trim(solution); |
| 661 | const auto sentEntities = Api::EntitiesToMTP( |
| 662 | &poll->session(), |
| 663 | solution.entities, |
| 664 | Api::ConvertOption::SkipLocal); |
| 665 | if (!solution.text.isEmpty()) { |
| 666 | inputFlags |= MTPDinputMediaPoll::Flag::f_solution; |
| 667 | } |
| 668 | if (!sentEntities.v.isEmpty()) { |
| 669 | inputFlags |= MTPDinputMediaPoll::Flag::f_solution_entities; |
| 670 | } |
| 671 | if (poll->attachedMedia) { |
| 672 | inputFlags |= MTPDinputMediaPoll::Flag::f_attached_media; |
| 673 | } |
| 674 | if (poll->solutionMedia) { |
| 675 | inputFlags |= MTPDinputMediaPoll::Flag::f_solution_media; |
| 676 | } |
| 677 | return MTP_inputMediaPoll( |
| 678 | MTP_flags(inputFlags), |
| 679 | PollDataToMTP(poll, close), |
| 680 | MTP_vector<MTPint>(correct), |
| 681 | poll->attachedMedia |
| 682 | ? PollMediaToMTP(poll->attachedMedia) |
| 683 | : MTPInputMedia(), |
| 684 | MTP_string(solution.text), |
| 685 | sentEntities, |
| 686 | poll->solutionMedia |
| 687 | ? PollMediaToMTP(poll->solutionMedia) |
| 688 | : MTPInputMedia()); |
| 689 | } |
| 690 | |
| 691 | QString JoinPollCountries(const std::vector<QString> &countriesIso2) { |
| 692 | auto countries = QStringList(); |
no test coverage detected