From b5037a82ff4d0766be3027da5eba34d8d46033f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Tue, 20 Jul 2021 17:09:10 -0400 Subject: [PATCH] conversationmodel: use is syncing status from daemon GitLab: https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/591 Change-Id: I87dfe44f70fd0edf4ed6ad4276f4de813da462dd --- src/conversationmodel.cpp | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp index 22fa6936..65747f04 100644 --- a/src/conversationmodel.cpp +++ b/src/conversationmodel.cpp @@ -1923,17 +1923,6 @@ ConversationModelPimpl::initConversations() conv.push_back(storage::beginConversationWithPeer(db, c.second.profileInfo.uri)); } addConversationWith(conv[0], c.first); - if (!c.second.conversationId.isEmpty()) { - // it is a swarm conversation. - try { - auto& conversation = getConversationForUid(conv[0]).get(); - conversation.mode = conversation::Mode::ONE_TO_ONE; - conversation.needsSyncing = true; - Q_EMIT linked.needsSyncingSet(conversation.uid); - } catch (...) { - continue; - } - } auto convIdx = indexOf(conv[0]); @@ -2521,8 +2510,9 @@ ConversationModelPimpl::slotContactAdded(const QString& contactUri) auto& conversation = getConversationForPeerUri(contactUri).get(); // swarm conversation we update when receive conversation ready signal. if (conversation.isSwarm()) { - QStringList swarms = ConfigurationManager::instance().getConversations(linked.owner.id); - bool needsSyncing = swarms.indexOf(conversation.uid) == -1; + MapStringString details = ConfigurationManager::instance() + .conversationInfos(linked.owner.id, conversation.uid); + bool needsSyncing = details["syncing"] == "true"; if (conversation.needsSyncing != needsSyncing) { conversation.isRequest = false; Q_EMIT linked.dataChanged(indexOf(conversation.uid)); @@ -2770,7 +2760,10 @@ ConversationModelPimpl::addSwarmConversation(const QString& convId) } catch (...) { } } - conversation.needsSyncing = false; + if (details["syncing"] == "true") { + conversation.needsSyncing = true; + Q_EMIT linked.needsSyncingSet(conversation.uid); + } emplaceBackConversation(std::move(conversation)); auto id = ConfigurationManager::instance().loadConversationMessages(linked.owner.id, convId, -- GitLab