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); + } } }