From 4a786dd4818f7ba44a928268ddf9ce9d2b610aee Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Fri, 1 Apr 2022 09:20:27 +0200 Subject: [PATCH] Fix unread messages on terminated/Deleted chat room --- .../src/components/timeline/TimelineListModel.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/linphone-app/src/components/timeline/TimelineListModel.cpp b/linphone-app/src/components/timeline/TimelineListModel.cpp index 11d7cc99e..40cc9630b 100644 --- a/linphone-app/src/components/timeline/TimelineListModel.cpp +++ b/linphone-app/src/components/timeline/TimelineListModel.cpp @@ -244,7 +244,10 @@ void TimelineListModel::updateTimelines () { // Clean terminated chat rooms. allChatRooms.remove_if([](std::shared_ptr chatRoom){ - return chatRoom->getState() == linphone::ChatRoom::State::Terminated || chatRoom->getState() == linphone::ChatRoom::State::Deleted; + bool toRemove = chatRoom->getState() == linphone::ChatRoom::State::Terminated || chatRoom->getState() == linphone::ChatRoom::State::Deleted; + if( toRemove) + chatRoom->markAsRead(); + return toRemove; }); //Remove no more chat rooms @@ -294,6 +297,7 @@ void TimelineListModel::updateTimelines () { } } } + CoreManager::getInstance()->updateUnreadMessageCount(); } void TimelineListModel::add (std::shared_ptr timeline){ @@ -349,8 +353,11 @@ void TimelineListModel::onChatRoomStateChanged(const std::shared_ptrgetChatRoomModel()) + timeline->getChatRoomModel()->resetMessageCount(); remove(timeline); + } } }