| 769 | } |
| 770 | |
| 771 | void UserpicButton::processPeerPhoto() { |
| 772 | Expects(_peer != nullptr); |
| 773 | |
| 774 | const auto user = _peer->asUser(); |
| 775 | const auto nonPersonal = (user && _source != Source::PeerPhoto) |
| 776 | ? _peer->session().api().peerPhoto().nonPersonalPhoto(user) |
| 777 | : nullptr; |
| 778 | _showPeerUserpic = (_source == Source::PeerPhoto) |
| 779 | || (user |
| 780 | && !user->hasPersonalPhoto() |
| 781 | && (_source == Source::NonPersonalPhoto |
| 782 | || (_source == Source::NonPersonalIfHasPersonal |
| 783 | && hasPersonalPhotoLocally()))); |
| 784 | const auto showNonPersonal = _showPeerUserpic ? nullptr : nonPersonal; |
| 785 | |
| 786 | _userpicView = _showPeerUserpic |
| 787 | ? _peer->createUserpicView() |
| 788 | : PeerUserpicView(); |
| 789 | _nonPersonalView = showNonPersonal |
| 790 | ? showNonPersonal->createMediaView() |
| 791 | : nullptr; |
| 792 | _waiting = _showPeerUserpic |
| 793 | ? Ui::PeerUserpicLoading(_userpicView) |
| 794 | : (_nonPersonalView && !_nonPersonalView->loaded()); |
| 795 | if (_waiting) { |
| 796 | if (_showPeerUserpic) { |
| 797 | _peer->loadUserpic(); |
| 798 | } else if (_nonPersonalView) { |
| 799 | showNonPersonal->load(Data::FileOriginFullUser{ |
| 800 | peerToUser(user->id), |
| 801 | }); |
| 802 | } |
| 803 | } |
| 804 | if (_role == Role::OpenPhoto) { |
| 805 | if (_peer->userpicPhotoUnknown()) { |
| 806 | _peer->updateFullForced(); |
| 807 | } |
| 808 | _canOpenPhoto = (_peer->userpicPhotoId() != 0); |
| 809 | updateCursor(); |
| 810 | updateVideo(); |
| 811 | } |
| 812 | } |
| 813 | |
| 814 | void UserpicButton::updateCursor() { |
| 815 | Expects(_role == Role::OpenPhoto); |
nothing calls this directly
no test coverage detected