| 5562 | } |
| 5563 | |
| 5564 | void Session::saveViewAsMessages( |
| 5565 | not_null<Forum*> forum, |
| 5566 | bool viewAsMessages) { |
| 5567 | const auto channel = forum->channel(); |
| 5568 | if (!channel) { |
| 5569 | return; |
| 5570 | } |
| 5571 | if (const auto requestId = _viewAsMessagesRequests.take(channel)) { |
| 5572 | _session->api().request(*requestId).cancel(); |
| 5573 | } |
| 5574 | _viewAsMessagesRequests[channel] = _session->api().request( |
| 5575 | MTPchannels_ToggleViewForumAsMessages( |
| 5576 | channel->inputChannel(), |
| 5577 | MTP_bool(viewAsMessages)) |
| 5578 | ).done([=] { |
| 5579 | _viewAsMessagesRequests.remove(channel); |
| 5580 | }).fail([=] { |
| 5581 | _viewAsMessagesRequests.remove(channel); |
| 5582 | }).send(); |
| 5583 | channel->setViewAsMessagesFlag(viewAsMessages); |
| 5584 | } |
| 5585 | |
| 5586 | void Session::webViewResultSent(WebViewResultSent &&sent) { |
| 5587 | return _webViewResultSent.fire(std::move(sent)); |