From e7e1ffb0f5bda06d92827f91ce18017adb512617 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Mon, 4 Mar 2024 09:43:53 -0500
Subject: [PATCH] misc: avoid unknown status

Change-Id: I87660a117c9f1c45c1066ddeb15c01e0e504b744
---
 src/jamidht/conversation.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp
index 2a027614b3..bcd2f51e0c 100644
--- a/src/jamidht/conversation.cpp
+++ b/src/jamidht/conversation.cpp
@@ -1075,6 +1075,10 @@ Conversation::Impl::addToHistory(const std::vector<std::map<std::string, std::st
                 }
                 // Else we need to compute the status.
                 auto& cache = memberToStatus[member.uri];
+                if (cache == 0) {
+                    // Message is sending, sent or displayed
+                    cache = static_cast<int32_t>(libjami::Account::MessageStates::SENDING);
+                }
                 if (!messageReceived) {
                     // For loading previous messages, there is 3 cases. Last value cached is displayed, so is every previous commits
                     // Else, if last value is sent, we can compare to the last read commit to update the cache
@@ -1083,7 +1087,7 @@ Conversation::Impl::addToHistory(const std::vector<std::map<std::string, std::st
                         if (messagesStatus_[member.uri]["read"] == sharedCommit->id) {
                             cache = static_cast<int32_t>(libjami::Account::MessageStates::DISPLAYED);
                         }
-                    } else if (cache < static_cast<int32_t>(libjami::Account::MessageStates::SENDING)) { // SENDING or UNKNOWN
+                    } else if (cache <= static_cast<int32_t>(libjami::Account::MessageStates::SENDING)) { // SENDING or UNKNOWN
                         if (messagesStatus_[member.uri]["fetched"] == sharedCommit->id) {
                             cache = static_cast<int32_t>(libjami::Account::MessageStates::SENT);
                         }
-- 
GitLab