diff --git a/Telegram/SourceFiles/data/data_peer.cpp b/Telegram/SourceFiles/data/data_peer.cpp index f7c3b3470..5dd8cc272 100644 --- a/Telegram/SourceFiles/data/data_peer.cpp +++ b/Telegram/SourceFiles/data/data_peer.cpp @@ -277,12 +277,7 @@ void PeerData::updateUserpic( const auto size = kUserpicSize; const auto loc = StorageImageLocation::FromMTP(size, size, location); const auto photo = loc.isNull() ? ImagePtr() : ImagePtr(loc); - if (_userpicPhotoId != photoId - || _userpic.v() != photo.v() - || _userpicLocation != loc) { - setUserpic(photoId, loc, photo); - Notify::peerUpdatedDelayed(this, UpdateFlag::PhotoChanged); - } + setUserpicChecked(photoId, loc, photo); } void PeerData::clearUserpic() { @@ -300,6 +295,19 @@ void PeerData::clearUserpic() { } return ImagePtr(); }(); + setUserpicChecked(photoId, loc, photo); +} + +void PeerData::setUserpicChecked( + PhotoId photoId, + const StorageImageLocation &location, + ImagePtr userpic) { + if (_userpicPhotoId != photoId + || _userpic.v() != userpic.v() + || _userpicLocation != location) { + setUserpic(photoId, location, userpic); + Notify::peerUpdatedDelayed(this, UpdateFlag::PhotoChanged); + } } void PeerData::fillNames() { diff --git a/Telegram/SourceFiles/data/data_peer.h b/Telegram/SourceFiles/data/data_peer.h index 87c0119a6..6353da9b7 100644 --- a/Telegram/SourceFiles/data/data_peer.h +++ b/Telegram/SourceFiles/data/data_peer.h @@ -238,6 +238,11 @@ private: std::unique_ptr createEmptyUserpic() const; void refreshEmptyUserpic() const; + void setUserpicChecked( + PhotoId photoId, + const StorageImageLocation &location, + ImagePtr userpic); + static constexpr auto kUnknownPhotoId = PhotoId(0xFFFFFFFFFFFFFFFFULL); ImagePtr _userpic;