From e5d5a9c0e8918384fa8296c433408feaddd664c3 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 6 Sep 2022 11:40:11 +0200 Subject: [PATCH] Remove video conference chat rooms from timeline (not implemented yet) --- linphone-app/src/components/call/CallModel.cpp | 2 +- .../src/components/chat-room/ChatRoomModel.cpp | 4 ++++ .../src/components/chat-room/ChatRoomModel.hpp | 1 + .../src/components/timeline/TimelineListModel.cpp | 12 ++++++++---- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp index 570700afd..101707b83 100644 --- a/linphone-app/src/components/call/CallModel.cpp +++ b/linphone-app/src/components/call/CallModel.cpp @@ -166,7 +166,7 @@ ContactModel *CallModel::getContactModel() const{ } ChatRoomModel * CallModel::getChatRoomModel(){ - if(mCall && mCall->getCallLog()->getCallId() != "" ){ + if(mCall && mCall->getCallLog()->getCallId() != "" && !isConference()){// No chat rooms for conference (TODO) auto currentParams = mCall->getCurrentParams(); bool isEncrypted = currentParams->getMediaEncryption() != linphone::MediaEncryption::None; SettingsModel * settingsModel = CoreManager::getInstance()->getSettingsModel(); diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.cpp b/linphone-app/src/components/chat-room/ChatRoomModel.cpp index 97d9cea25..45007ba4f 100644 --- a/linphone-app/src/components/chat-room/ChatRoomModel.cpp +++ b/linphone-app/src/components/chat-room/ChatRoomModel.cpp @@ -409,6 +409,10 @@ bool ChatRoomModel::haveEncryption() const{ return mChatRoom && mChatRoom->getCurrentParams()->getEncryptionBackend() != linphone::ChatRoomEncryptionBackend::None; } +bool ChatRoomModel::haveConferenceAddress() const{ + return mChatRoom && (mChatRoom->getConferenceAddress() || getFullPeerAddress().toLower().contains("conf-id")); +} + bool ChatRoomModel::markAsReadEnabled() const{ return mMarkAsReadEnabled; } diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.hpp b/linphone-app/src/components/chat-room/ChatRoomModel.hpp index 27ecfb1b5..50d9bbda3 100644 --- a/linphone-app/src/components/chat-room/ChatRoomModel.hpp +++ b/linphone-app/src/components/chat-room/ChatRoomModel.hpp @@ -121,6 +121,7 @@ public: long getEphemeralLifetime() const; bool canBeEphemeral(); bool haveEncryption() const; + bool haveConferenceAddress() const; bool markAsReadEnabled() const; Q_INVOKABLE bool isSecure() const; int getSecurityLevel() const; diff --git a/linphone-app/src/components/timeline/TimelineListModel.cpp b/linphone-app/src/components/timeline/TimelineListModel.cpp index 20e6e12a7..bb84b3855 100644 --- a/linphone-app/src/components/timeline/TimelineListModel.cpp +++ b/linphone-app/src/components/timeline/TimelineListModel.cpp @@ -264,10 +264,14 @@ void TimelineListModel::updateTimelines () { } void TimelineListModel::add (QSharedPointer timeline){ - connect(timeline->getChatRoomModel(), &ChatRoomModel::lastUpdateTimeChanged, this, &TimelineListModel::updated); - ProxyListModel::add(timeline); - emit layoutChanged(); - emit countChanged(); + auto chatRoomModel = timeline->getChatRoomModel(); + auto chatRoom = chatRoomModel->getChatRoom(); + if( !chatRoomModel->haveConferenceAddress() || chatRoom->getHistoryEventsSize() != 0) { + connect(chatRoomModel, &ChatRoomModel::lastUpdateTimeChanged, this, &TimelineListModel::updated); + ProxyListModel::add(timeline); + emit layoutChanged(); + emit countChanged(); + } } void TimelineListModel::removeChatRoomModel(QSharedPointer model){