| 554 | } |
| 555 | |
| 556 | void PeerListStories::process(not_null<PeerListRow*> row) { |
| 557 | const auto user = row->peer()->asUser(); |
| 558 | if (!user) { |
| 559 | return; |
| 560 | } |
| 561 | const auto stories = &_session->data().stories(); |
| 562 | const auto source = stories->source(user->id); |
| 563 | const auto count = source |
| 564 | ? int(source->ids.size()) |
| 565 | : !GetEnhancedBool("hide_stories") && user->hasActiveStories() |
| 566 | ? 1 |
| 567 | : 0; |
| 568 | const auto unread = source |
| 569 | ? int(source->info().unreadCount) |
| 570 | : !GetEnhancedBool("hide_stories") && user->hasUnreadStories() |
| 571 | ? 1 |
| 572 | : 0; |
| 573 | const auto videoStream = source |
| 574 | ? bool(source->info().hasVideoStream) |
| 575 | : user->hasActiveVideoStream(); |
| 576 | applyForRow(row, { count, unread, videoStream }, true); |
| 577 | } |
| 578 | |
| 579 | bool PeerListStories::handleClick(not_null<PeerData*> peer) { |
| 580 | const auto point = _delegate->peerListLastRowMousePosition(); |
no test coverage detected