diff --git a/linphone-app/src/components/chat-events/ChatMessageModel.cpp b/linphone-app/src/components/chat-events/ChatMessageModel.cpp index 3661d9448..37399e75c 100644 --- a/linphone-app/src/components/chat-events/ChatMessageModel.cpp +++ b/linphone-app/src/components/chat-events/ChatMessageModel.cpp @@ -301,15 +301,20 @@ ChatMessageModel::ChatMessageModel ( std::shared_ptr chat mChatMessage = chatMessage; mWasDownloaded = false; mChatMessage->addListener(mChatMessageListener); - mTimestamp = QDateTime::fromMSecsSinceEpoch(chatMessage->getTime() * 1000); connect(this, &ChatMessageModel::remove, dynamic_cast(parent), &ChatRoomModel::removeEntry); std::list> contents = chatMessage->getContents(); + time_t receivedTime = 0; QString txt; for(auto content : contents){ if(content->isText()) txt += content->getUtf8Text().c_str(); + receivedTime = std::max(content->getReceivedTime(),receivedTime); } + if(receivedTime == 0) + mTimestamp = QDateTime::fromMSecsSinceEpoch(chatMessage->getTime() * 1000); + else + mTimestamp = QDateTime::fromMSecsSinceEpoch(receivedTime* 1000); mContent = txt; //mIsOutgoing = chatMessage->isOutgoing() || chatMessage->getState() == linphone::ChatMessage::State::Idle;