diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 7717aede3..f2395c014 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -48,6 +48,7 @@ private: shared_ptr proxyConfig = creator->createProxyConfig(); auto account = CoreManager::getInstance()->getCore()->getAccountByIdkey(proxyConfig->getIdkey()); if(account){ + CoreManager::getInstance()->addingAccount(account->getParams()); CoreManager::getInstance()->getSettingsModel()->configureRlsUri(account); CoreManager::getInstance()->getAccountSettingsModel()->setDefaultAccount(account); } diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp index f2d675f5d..01aca27c0 100644 --- a/linphone-app/src/components/core/CoreManager.cpp +++ b/linphone-app/src/components/core/CoreManager.cpp @@ -291,6 +291,14 @@ void CoreManager::updateUserAgent(){ mCore->setUserAgent(Utils::appStringToCoreString(Utils::computeUserAgent(mCore->getConfig())), mCore->getVersion()); forceRefreshRegisters(); // After setting a new device name, REGISTER need to take account it. } +void CoreManager::addingAccount(const std::shared_ptr params) { + if( params->getDomain() == Constants::LinphoneDomain) {// Special case for Linphone + // It has been decided that if the core encryption is None, new Linphone accounts will reset it to SRTP. + if( CoreManager::getInstance()->getSettingsModel()->getMediaEncryption() == SettingsModel::MediaEncryptionNone){ + CoreManager::getInstance()->getSettingsModel()->setMediaEncryption(SettingsModel::MediaEncryptionSrtp); + } + } +} void CoreManager::handleChatRoomCreated(const QSharedPointer &chatRoomModel){ emit chatRoomModelCreated(chatRoomModel); diff --git a/linphone-app/src/components/core/CoreManager.hpp b/linphone-app/src/components/core/CoreManager.hpp index d2ddabd0e..3174e106b 100644 --- a/linphone-app/src/components/core/CoreManager.hpp +++ b/linphone-app/src/components/core/CoreManager.hpp @@ -166,6 +166,7 @@ public: Q_INVOKABLE bool isLastRemoteProvisioningGood(); Q_INVOKABLE QString getUserAgent()const; void updateUserAgent(); + void addingAccount(const std::shared_ptr params); public slots: void initCoreManager(); diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index a108f9080..ef7312ec1 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -127,6 +127,8 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptrgetParams()->getIdentityAddress()->asString())); return false; } + + coreManager->addingAccount(account->getParams()); coreManager->getSettingsModel()->configureRlsUri(account); }else coreManager->getSettingsModel()->configureRlsUri(); diff --git a/linphone-app/ui/views/App/Settings/SettingsCallsChat.qml b/linphone-app/ui/views/App/Settings/SettingsCallsChat.qml index 9f5a921d4..184df8046 100644 --- a/linphone-app/ui/views/App/Settings/SettingsCallsChat.qml +++ b/linphone-app/ui/views/App/Settings/SettingsCallsChat.qml @@ -37,12 +37,11 @@ TabContainer { return encryptions })() - - Component.onCompleted: { - var toFound = SettingsModel.mediaEncryption + property var currentEncryption: SettingsModel.mediaEncryption + onCurrentEncryptionChanged: { currentIndex = Number( Utils.findIndex(encryption.model, function (value) { - return toFound === value.value + return currentEncryption === value.value }) ) }