diff --git a/linphone-app/src/components/timeline/TimelineListModel.cpp b/linphone-app/src/components/timeline/TimelineListModel.cpp index 7d5d48f55..c181d7452 100644 --- a/linphone-app/src/components/timeline/TimelineListModel.cpp +++ b/linphone-app/src/components/timeline/TimelineListModel.cpp @@ -246,7 +246,17 @@ void TimelineListModel::updateTimelines () { allChatRooms.remove_if([](std::shared_ptr chatRoom){ if( ChatRoomModel::isTerminated(chatRoom) && chatRoom->getUnreadMessagesCount() > 0) chatRoom->markAsRead(); - return chatRoom->getState() == linphone::ChatRoom::State::Deleted || (!chatRoom->hasCapability((int)linphone::ChatRoomCapabilities::Basic) && chatRoom->getConferenceAddress() && chatRoom->getHistoryEventsSize() == 0); + if(chatRoom->getState() == linphone::ChatRoom::State::Deleted) + return true; + if(!chatRoom->hasCapability((int)linphone::ChatRoomCapabilities::Basic)){ + auto conferenceAddress = chatRoom->getConferenceAddress(); + if( conferenceAddress && conferenceAddress->getDomain() == Constants::LinphoneDomain) { + QString conferenceAddressStr = Utils::coreStringToAppString(conferenceAddress->asStringUriOnly()); + if( conferenceAddressStr.contains("conf-id")) + return true; + } + } + return false; }); //Remove no more chat rooms