| 483 | } |
| 484 | |
| 485 | void Histories::applyPeerDialogs(const MTPmessages_PeerDialogs &dialogs) { |
| 486 | Expects(dialogs.type() == mtpc_messages_peerDialogs); |
| 487 | |
| 488 | const auto &data = dialogs.c_messages_peerDialogs(); |
| 489 | _owner->processUsers(data.vusers()); |
| 490 | _owner->processChats(data.vchats()); |
| 491 | _owner->processMessages(data.vmessages(), NewMessageType::Last); |
| 492 | for (const auto &dialog : data.vdialogs().v) { |
| 493 | dialog.match([&](const MTPDdialog &data) { |
| 494 | if (const auto peerId = peerFromMTP(data.vpeer())) { |
| 495 | _owner->history(peerId)->applyDialog(nullptr, data); |
| 496 | } |
| 497 | }, [&](const MTPDdialogFolder &data) { |
| 498 | const auto folder = _owner->processFolder(data.vfolder()); |
| 499 | folder->applyDialog(data); |
| 500 | }); |
| 501 | } |
| 502 | _owner->sendHistoryChangeNotifications(); |
| 503 | } |
| 504 | |
| 505 | void Histories::changeDialogUnreadMark( |
| 506 | not_null<History*> history, |
no test coverage detected