diff --git a/src/app/conversationlistmodelbase.cpp b/src/app/conversationlistmodelbase.cpp index 54fa2210640a856aebff0769d88e39e51de4b832..3a60b53d1dfd07e6f177d78ab72df41e3eca68fc 100644 --- a/src/app/conversationlistmodelbase.cpp +++ b/src/app/conversationlistmodelbase.cpp @@ -153,6 +153,8 @@ ConversationListModelBase::dataForItem(item_t item, int role) const Q_FOREACH (const auto& peerUri, model_->peersForConversation(item.uid)) try { auto& accInfo = lrcInstance_->getCurrentAccountInfo(); + if (peerUri == accInfo.profileInfo.uri) + return true; // Self account auto contact = accInfo.contactModel->getContact(peerUri); if (contact.isPresent) return true; diff --git a/src/app/utils.cpp b/src/app/utils.cpp index 535a9943ee049be2db2c4d5fcc49f951888205d2..914bc65d60e92592d8735cf79ed9149934200127 100644 --- a/src/app/utils.cpp +++ b/src/app/utils.cpp @@ -469,16 +469,20 @@ Utils::conversationAvatar(LRCInstance* instance, auto members = convModel->peersForConversation(convId); if (members.size() < 1) return avatar; + auto getPhoto = [&](const auto& uri) { + return uri == accInfo.profileInfo.uri ? accountPhoto(instance, accountId, size) + : contactPhoto(instance, uri, size, ""); + }; if (members.size() == 1) { // Only member in the swarm or 1:1, draw only peer's avatar - auto peerAvatar = Utils::contactPhoto(instance, members[0], size, ""); + auto peerAvatar = getPhoto(members[0]); painter.drawImage(avatar.rect(), peerAvatar); return avatar; } // Else, combine avatars auto idx = 0; - auto peerAAvatar = Utils::contactPhoto(instance, members[0], size, ""); - auto peerBAvatar = Utils::contactPhoto(instance, members[1], size, ""); + auto peerAAvatar = getPhoto(members[0]); + auto peerBAvatar = getPhoto(members[1]); peerAAvatar = Utils::halfCrop(peerAAvatar, true); peerBAvatar = Utils::halfCrop(peerBAvatar, false); painter.drawImage(avatar.rect(), peerAAvatar);