From eba6f8f361e55f365fd623fd8479ec8cee306575 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Fri, 7 Apr 2023 12:55:32 -0400
Subject: [PATCH] utils: use accountPhoto when generating a swarm image

Change-Id: I1fd1181aeedc47114876e2f0355b076602ac6649
GitLab: #1050
---
 src/app/conversationlistmodelbase.cpp |  2 ++
 src/app/utils.cpp                     | 10 +++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/app/conversationlistmodelbase.cpp b/src/app/conversationlistmodelbase.cpp
index 54fa22106..3a60b53d1 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 535a9943e..914bc65d6 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);
-- 
GitLab