From 11119e51f67b38a0d937eb105cea7d59d8d01b6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Thu, 13 May 2021 12:38:05 -0400
Subject: [PATCH] userprofile: add isSwarm to profile

Change-Id: I6504c20cba5b51d54d0e9947c2303108f2a2161d
---
 src/constant/JamiStrings.qml                     |  5 +++++
 src/conversationlistmodelbase.cpp                |  3 +++
 src/conversationlistmodelbase.h                  |  1 +
 src/conversationsadapter.cpp                     |  1 +
 src/mainview/components/ConversationListView.qml |  2 ++
 src/mainview/components/UserProfile.qml          | 15 +++++++++++++++
 6 files changed, 27 insertions(+)

diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml
index a41f74a14..1629fdb01 100644
--- a/src/constant/JamiStrings.qml
+++ b/src/constant/JamiStrings.qml
@@ -480,4 +480,9 @@ Item {
     // Daemon reconnection
     property string reconnectDaemon: qsTr("Trying to reconnect to the Jami daemon (dring)…")
     property string reconnectionFailed: qsTr("Could not re-connect to the Jami daemon (dring).\nJami will now quit.")
+
+    // Is Swarm
+    property string isSwarm: qsTr("Is swarm:")
+    property string trueStr: qsTr("True")
+    property string falseStr: qsTr("False")
 }
diff --git a/src/conversationlistmodelbase.cpp b/src/conversationlistmodelbase.cpp
index 189f94c33..b56da053a 100644
--- a/src/conversationlistmodelbase.cpp
+++ b/src/conversationlistmodelbase.cpp
@@ -104,6 +104,9 @@ ConversationListModelBase::dataForItem(item_t item, int role) const
     case Role::ContactType: {
         return QVariant(static_cast<int>(contact.profileInfo.type));
     }
+    case Role::IsSwarm: {
+        return QVariant(item.mode != lrc::api::conversation::Mode::NON_SWARM);
+    }
     case Role::IsBanned: {
         return QVariant(contact.isBanned);
     }
diff --git a/src/conversationlistmodelbase.h b/src/conversationlistmodelbase.h
index fe99fdd04..8940b8121 100644
--- a/src/conversationlistmodelbase.h
+++ b/src/conversationlistmodelbase.h
@@ -34,6 +34,7 @@
     X(LastInteractionDate) \
     X(LastInteraction) \
     X(ContactType) \
+    X(IsSwarm) \
     X(IsBanned) \
     X(UID) \
     X(InCall) \
diff --git a/src/conversationsadapter.cpp b/src/conversationsadapter.cpp
index c2b474aa0..55f5b0119 100644
--- a/src/conversationsadapter.cpp
+++ b/src/conversationsadapter.cpp
@@ -424,6 +424,7 @@ ConversationsAdapter::getConvInfoMap(const QString& convId)
             {"bestId", contactModel->bestIdForContact(peerUri)},
             {"bestName", contactModel->bestNameForContact(peerUri)},
             {"uri", peerUri},
+            {"isSwarm", convInfo.mode != lrc::api::conversation::Mode::NON_SWARM},
             {"contactType", static_cast<int>(contact.profileInfo.type)},
             {"isAudioOnly", isAudioOnly},
             {"callState", static_cast<int>(callState)},
diff --git a/src/mainview/components/ConversationListView.qml b/src/mainview/components/ConversationListView.qml
index 19c8bb8c7..2a83df0ad 100644
--- a/src/mainview/components/ConversationListView.qml
+++ b/src/mainview/components/ConversationListView.qml
@@ -134,6 +134,7 @@ ListView {
                 "displayName": model.dataForRow(row, ConversationList.BestName),
                 "uri": model.dataForRow(row, ConversationList.URI),
                 "contactType": model.dataForRow(row, ConversationList.ContactType),
+                "isSwarm": model.dataForRow(row, ConversationList.IsSwarm),
             }
 
             responsibleAccountId = LRCInstance.currentAccountId
@@ -145,6 +146,7 @@ ListView {
             userProfile.registeredNameText = item.displayId
             userProfile.idText = item.uri
             userProfile.contactImageUid = item.convId
+            userProfile.isSwarm = item.isSwarm
 
             openMenu()
         }
diff --git a/src/mainview/components/UserProfile.qml b/src/mainview/components/UserProfile.qml
index 26712f53f..1c275bf62 100644
--- a/src/mainview/components/UserProfile.qml
+++ b/src/mainview/components/UserProfile.qml
@@ -33,6 +33,7 @@ BaseDialog {
     property string aliasText: ""
     property string registeredNameText: ""
     property string idText: ""
+    property bool isSwarm: false
 
     property int preferredImgSize: 80
 
@@ -205,6 +206,20 @@ BaseDialog {
                 mipmap: true
             }
 
+            Text {
+                Layout.alignment: Qt.AlignRight
+                font.pointSize: JamiTheme.textFontSize
+                text: JamiStrings.isSwarm
+                color: JamiTheme.faddedFontColor
+            }
+	
+            Text {
+                Layout.alignment: Qt.AlignLeft
+                font.pointSize: JamiTheme.textFontSize
+                text: isSwarm? JamiStrings.trueStr : JamiStrings.falseStr
+                color: JamiTheme.faddedFontColor
+            }
+
             MaterialButton {
                 id: btnClose
 
-- 
GitLab