From 1b942b3306086c7ed70cb80ddae344a949e8380a Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 7 Mar 2018 14:24:20 +0100 Subject: [PATCH] Fixed message state if linphone has crashed while sending it --- src/db/main-db.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index 8869c4399..8ddd98748 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -601,7 +601,11 @@ shared_ptr MainDbPrivate::selectConferenceChatMessageEvent ( chatMessage->setIsSecured(bool(row.get(9))); ChatMessagePrivate *dChatMessage = chatMessage->getPrivate(); - dChatMessage->setState(ChatMessage::State(row.get(7)), true); + ChatMessage::State messageState = (ChatMessage::State) row.get(7); + // This is necessary if linphone has crashed while sending a message. It will set the correct state so the user can resend it. + if (messageState == ChatMessage::State::Idle || messageState == ChatMessage::State::InProgress) + messageState = ChatMessage::State::NotDelivered; + dChatMessage->setState(messageState, true); dChatMessage->forceFromAddress(IdentityAddress(row.get(3))); dChatMessage->forceToAddress(IdentityAddress(row.get(4)));