From 184b0843822f673673063878be163a072cd67233 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Tue, 28 Aug 2018 17:19:46 +0200 Subject: [PATCH] fix(SipAddressesModel): check if message is outgoing when cache is updated --- src/components/sip-addresses/SipAddressesModel.cpp | 12 +++++++++--- src/components/sip-addresses/SipAddressesModel.hpp | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/sip-addresses/SipAddressesModel.cpp b/src/components/sip-addresses/SipAddressesModel.cpp index 5c93abdeb..ef10f7617 100644 --- a/src/components/sip-addresses/SipAddressesModel.cpp +++ b/src/components/sip-addresses/SipAddressesModel.cpp @@ -71,7 +71,7 @@ SipAddressesModel::SipAddressesModel (QObject *parent) : QAbstractListModel(pare QObject::connect(coreHandlers, &CoreHandlers::messageReceived, this, &SipAddressesModel::handleMessageReceived); QObject::connect(coreHandlers, &CoreHandlers::callStateChanged, this, &SipAddressesModel::handleCallStateChanged); QObject::connect(coreHandlers, &CoreHandlers::presenceReceived, this, &SipAddressesModel::handlePresenceReceived); - QObject::connect(coreHandlers, &CoreHandlers::isComposingChanged, this, &SipAddressesModel::handlerIsComposingChanged); + QObject::connect(coreHandlers, &CoreHandlers::isComposingChanged, this, &SipAddressesModel::handleIsComposingChanged); } // ----------------------------------------------------------------------------- @@ -409,7 +409,7 @@ void SipAddressesModel::handleMessageSent (const shared_ptr &chatRoom) { +void SipAddressesModel::handleIsComposingChanged (const shared_ptr &chatRoom) { auto it = mPeerAddressToSipAddressEntry.find( Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly()) ); @@ -455,7 +455,13 @@ void SipAddressesModel::addOrUpdateSipAddress (SipAddressEntry &sipAddressEntry, shared_ptr chatRoom(message->getChatRoom()); int count = chatRoom->getUnreadMessagesCount(); - QString localAddress(Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly())); + QString localAddress(Utils::coreStringToAppString( + message->isOutgoing() + ? chatRoom->getPeerAddress()->asStringUriOnly() + : chatRoom->getLocalAddress()->asStringUriOnly() + )); + qInfo() << QStringLiteral("Update (`%1`, `%2`) from chat message.").arg(sipAddressEntry.sipAddress, localAddress); + ConferenceEntry &conferenceEntry = sipAddressEntry.localAddressToConferenceEntry[localAddress]; conferenceEntry.timestamp = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); conferenceEntry.unreadMessageCount = count; diff --git a/src/components/sip-addresses/SipAddressesModel.hpp b/src/components/sip-addresses/SipAddressesModel.hpp index ba189b6bd..c0fd41aad 100644 --- a/src/components/sip-addresses/SipAddressesModel.hpp +++ b/src/components/sip-addresses/SipAddressesModel.hpp @@ -104,7 +104,7 @@ private: void handleMessageSent (const std::shared_ptr &message); - void handlerIsComposingChanged (const std::shared_ptr &chatRoom); + void handleIsComposingChanged (const std::shared_ptr &chatRoom); // ---------------------------------------------------------------------------