From f4bd7b85103482ae50017d3076757f92467ca962 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 23 Aug 2018 09:19:21 +0200 Subject: [PATCH] fix(SipAddressesModel): handle correctly chat message changes (do not use from/to, use local/peer of ChatRoom) --- src/components/sip-addresses/SipAddressesModel.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/sip-addresses/SipAddressesModel.cpp b/src/components/sip-addresses/SipAddressesModel.cpp index 007de15c7..85fde745e 100644 --- a/src/components/sip-addresses/SipAddressesModel.cpp +++ b/src/components/sip-addresses/SipAddressesModel.cpp @@ -287,8 +287,8 @@ void SipAddressesModel::handleSipAddressRemoved (ContactModel *contact, const QS } void SipAddressesModel::handleMessageReceived (const shared_ptr &message) { - const QString sipAddress = Utils::coreStringToAppString(message->getFromAddress()->asStringUriOnly()); - addOrUpdateSipAddress(sipAddress, message); + const QString peerAddress(Utils::coreStringToAppString(message->getChatRoom()->getPeerAddress()->asStringUriOnly())); + addOrUpdateSipAddress(peerAddress, message); } void SipAddressesModel::handleCallStateChanged ( @@ -454,9 +454,10 @@ void SipAddressesModel::addOrUpdateSipAddress (SipAddressEntry &sipAddressEntry, } void SipAddressesModel::addOrUpdateSipAddress (SipAddressEntry &sipAddressEntry, const shared_ptr &message) { - int count = message->getChatRoom()->getUnreadMessagesCount(); + shared_ptr chatRoom(message->getChatRoom()); + int count = chatRoom->getUnreadMessagesCount(); - QString localAddress(Utils::coreStringToAppString(message->getLocalAddress()->asStringUriOnly())); + QString localAddress(Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly())); ConferenceEntry &conferenceEntry = sipAddressEntry.localAddressToConferenceEntry[localAddress]; conferenceEntry.timestamp = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); conferenceEntry.unreadMessageCount = count;