Skip to content
Snippets Groups Projects
Commit d7c1a063 authored by Sébastien Blin's avatar Sébastien Blin
Browse files

conversationmodel: avoid useless iteration

Also fix setMessageDisplayed for clients

Change-Id: Ia2f8f586d88736a597e2271d2fd59402664ea3e6
GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282
parent cfeb273d
Branches
No related tags found
No related merge requests found
...@@ -1476,16 +1476,17 @@ ConversationModel::clearUnreadInteractions(const QString& convId) ...@@ -1476,16 +1476,17 @@ ConversationModel::clearUnreadInteractions(const QString& convId)
{ {
std::lock_guard<std::mutex> lk(pimpl_->interactionsLocks[convId]); std::lock_guard<std::mutex> lk(pimpl_->interactionsLocks[convId]);
auto& interactions = conversation.interactions; auto& interactions = conversation.interactions;
if (conversation.isSwarm()) {
emitUpdated = true;
if (!interactions.empty())
lastDisplayed = interactions.rbegin()->first;
} else {
std::for_each(interactions.begin(), std::for_each(interactions.begin(),
interactions.end(), interactions.end(),
[&](decltype(*interactions.begin())& it) { [&](decltype(*interactions.begin())& it) {
if (!it.second.isRead) { if (!it.second.isRead) {
emitUpdated = true; emitUpdated = true;
it.second.isRead = true; it.second.isRead = true;
if (conversation.isSwarm()) {
lastDisplayed = it.first;
return;
}
if (owner.profileInfo.type != profile::Type::SIP) if (owner.profileInfo.type != profile::Type::SIP)
lastDisplayed = storage::getDaemonIdByInteractionId(pimpl_->db, lastDisplayed = storage::getDaemonIdByInteractionId(pimpl_->db,
it.first); it.first);
...@@ -1493,6 +1494,7 @@ ConversationModel::clearUnreadInteractions(const QString& convId) ...@@ -1493,6 +1494,7 @@ ConversationModel::clearUnreadInteractions(const QString& convId)
} }
}); });
} }
}
if (!lastDisplayed.isEmpty()) { if (!lastDisplayed.isEmpty()) {
auto to = conversation.isSwarm() auto to = conversation.isSwarm()
? "swarm:" + convId ? "swarm:" + convId
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment