diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp index 2a027614b384d10afa7c413d0459700f6da09c82..bcd2f51e0c1b5befed6d5c8949c05303aa1a3c32 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); }