From f74a00cbf10b39d21d445c229afa613f54bc0e96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Wed, 2 Jun 2021 16:52:18 -0400
Subject: [PATCH] smartlist: use title() to avoid to depends on contact

Change-Id: I18e50cc29ce4183a1d3c89f1e30f9ddb61248278
---
 src/conversationsadapter.cpp                     |  2 +-
 src/mainview/MainView.qml                        |  2 +-
 src/mainview/components/ConversationListView.qml |  2 +-
 src/messagesadapter.cpp                          | 12 +-----------
 4 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/src/conversationsadapter.cpp b/src/conversationsadapter.cpp
index 8bda692be..913548a5f 100644
--- a/src/conversationsadapter.cpp
+++ b/src/conversationsadapter.cpp
@@ -409,7 +409,7 @@ ConversationsAdapter::getConvInfoMap(const QString& convId)
     // titles should come from conversation, not contact model
     return {{"convId", convId},
             {"bestId", contactModel->bestIdForContact(peerUri)},
-            {"bestName", contactModel->bestNameForContact(peerUri)},
+            {"title", lrcInstance_->getCurrentConversationModel()->title(convId)},
             {"uri", peerUri},
             {"isSwarm", !convInfo.isNotASwarm()},
             {"contactType", static_cast<int>(contact.profileInfo.type)},
diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml
index f8f7a5540..c807c82b8 100644
--- a/src/mainview/MainView.qml
+++ b/src/mainview/MainView.qml
@@ -179,7 +179,7 @@ Rectangle {
         var item = ConversationsAdapter.getConvInfoMap(convId)
         if (item.convId === undefined)
             return
-        communicationPageMessageWebView.headerUserAliasLabelText = item.bestName
+        communicationPageMessageWebView.headerUserAliasLabelText = item.title
         communicationPageMessageWebView.headerUserUserNameLabelText = item.bestId
         if (item.callStackViewShouldShow) {
             if (inSettingsView) {
diff --git a/src/mainview/components/ConversationListView.qml b/src/mainview/components/ConversationListView.qml
index c69949fcb..b74701b40 100644
--- a/src/mainview/components/ConversationListView.qml
+++ b/src/mainview/components/ConversationListView.qml
@@ -131,7 +131,7 @@ ListView {
             var item = {
                 "convId": model.dataForRow(row, ConversationList.UID),
                 "displayId": model.dataForRow(row, ConversationList.BestId),
-                "displayName": model.dataForRow(row, ConversationList.BestName),
+                "displayName": model.dataForRow(row, ConversationList.Title),
                 "uri": model.dataForRow(row, ConversationList.URI),
                 "contactType": model.dataForRow(row, ConversationList.ContactType),
                 "isSwarm": model.dataForRow(row, ConversationList.IsSwarm),
diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp
index 0a9dc2158..e49d0d83c 100644
--- a/src/messagesadapter.cpp
+++ b/src/messagesadapter.cpp
@@ -78,16 +78,6 @@ MessagesAdapter::setupChatView(const QString& convUid)
     auto selectedAccountId = lrcInstance_->getCurrentAccountId();
     auto& accountInfo = lrcInstance_->accountModel().getAccountInfo(selectedAccountId);
 
-    lrc::api::contact::Info contactInfo;
-    QString bestName;
-    try {
-        contactInfo = accountInfo.contactModel->getContact(contactURI);
-        bestName = accountInfo.contactModel->bestNameForContact(contactURI);
-    } catch (...) {
-    }
-
-    bool isPending = contactInfo.profileInfo.type == profile::Type::TEMPORARY;
-
     QMetaObject::invokeMethod(qmlObj_,
                               "setSendContactRequestButtonVisible",
                               Q_ARG(QVariant, convInfo.isNotASwarm() && convInfo.isRequest));
@@ -100,7 +90,7 @@ MessagesAdapter::setupChatView(const QString& convUid)
     setMessagesVisibility(false);
     setIsSwarm(!convInfo.isNotASwarm());
     setInvitation(convInfo.isRequest or convInfo.needsSyncing,
-                  bestName,
+                  convModel->title(convInfo.uid),
                   contactURI,
                   !convInfo.isNotASwarm(),
                   convInfo.needsSyncing);
-- 
GitLab