diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index e3a96b37a..61eb0937e 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -2956,6 +2956,21 @@ Klik her: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index 844e7c198..e441e4d0a 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -2956,6 +2956,21 @@ Klicken Sie hier: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI Ungültige Konferenz-URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index dc5afd344..9f1a8c909 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -2979,6 +2979,21 @@ Click here: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI Invalid conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + Video Conference URI + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + E2E encryption keys server URL + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + invalid E2E encryption keys server URL + SettingsTunnel diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 8b0fe63f2..6fe162165 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -2956,6 +2956,21 @@ Haga clic aquí: <a href="%1">%1 </a> "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 35119b129..e35e0a2eb 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -2956,6 +2956,21 @@ Cliquez ici : <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI URI de conférence invalide + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 04dfe70b3..b0f6ce1a6 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -2943,6 +2943,21 @@ Kattintson ide: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI Érvénytelen konferencia URI-cím + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 4a6f2dcf6..d919beff8 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -2956,6 +2956,21 @@ Clicca: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index dffdaf34b..588fabbe1 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -2943,6 +2943,21 @@ "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index 83af8a769..509fad401 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -2969,6 +2969,21 @@ Spustelėkite čia: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index 018250531..b4181348f 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -2956,6 +2956,21 @@ Clique aqui: <a href="%1">%1 </a> "invalid conference URI" : Error text about conference URI URI de conferência inválido + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index 08d6685a1..31502f90d 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -2969,6 +2969,21 @@ "invalid conference URI" : Error text about conference URI Недопустимый URI конференции + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 9cb8d95f9..c55ee3782 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -2956,6 +2956,21 @@ Klicka här: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 6e27182c9..3e893e4be 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -2943,6 +2943,21 @@ Buraya tıklayın: <a href="%1">%1</a> "invalid conference URI" : Error text about conference URI Geçersiz toplantı URI'si + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 34b2a7ac4..e06428997 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -2969,6 +2969,21 @@ "invalid conference URI" : Error text about conference URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index a1b330e17..72923d84a 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -2943,6 +2943,21 @@ "invalid conference URI" : Error text about conference URI 无效的会议URI + + videoConferenceURI + "Video Conference URI" : Label of a text edit for filling Video conference URI. + + + + limeServerUrl + 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + + + + invalidLimeServerUrl + "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + + SettingsTunnel diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp index 0f76659b8..9ca37a464 100644 --- a/linphone-app/src/components/core/CoreManager.cpp +++ b/linphone-app/src/components/core/CoreManager.cpp @@ -259,7 +259,7 @@ void CoreManager::createLinphoneCore (const QString &configPath) { nullptr ); // Enable LIME on your core to use encryption. - mCore->enableLimeX3Dh(mCore->getLimeX3DhServerUrl() != ""); + mCore->enableLimeX3Dh(mCore->limeX3DhAvailable()); // Now see the CoreService.CreateGroupChatRoom to see how to create a secure chat room mCore->addListener(mHandlers); @@ -294,8 +294,9 @@ void CoreManager::handleChatRoomCreated(const QSharedPointer &cha void CoreManager::migrate () { shared_ptr config = mCore->getConfig(); + auto oldLimeServerUrl = mCore->getLimeX3DhServerUrl();// core url is deprecated : If core url exists, it must be copied to all linphone accounts. int rcVersion = config->getInt(SettingsModel::UiSection, Constants::RcVersionName, 0); - if (rcVersion == Constants::RcVersionCurrent) + if (oldLimeServerUrl.empty() && rcVersion == Constants::RcVersionCurrent) return; if (rcVersion > Constants::RcVersionCurrent) { qWarning() << QStringLiteral("RC file version (%1) is more recent than app rc file version (%2)!!!") @@ -306,7 +307,7 @@ void CoreManager::migrate () { qInfo() << QStringLiteral("Migrate from old rc file (%1 to %2).") .arg(rcVersion).arg(Constants::RcVersionCurrent); - bool setlimeServerUrl = false; + bool setLimeServerUrl = false; for(const auto &account : getAccountList()){ auto params = account->getParams(); if( params->getDomain() == Constants::LinphoneDomain) { @@ -319,7 +320,7 @@ void CoreManager::migrate () { } if( rcVersion < 2) { bool exists = newParams->getConferenceFactoryUri() != ""; - setlimeServerUrl = true; + setLimeServerUrl = true; if(!exists ) newParams->setConferenceFactoryUri(Constants::DefaultConferenceURI); qInfo() << "Migrating" << accountIdentity << "for version 2. Conference factory URI" << (exists ? std::string("unchanged") : std::string("= ") +Constants::DefaultConferenceURI).c_str(); @@ -335,17 +336,25 @@ void CoreManager::migrate () { } if( rcVersion < 5) { bool exists = !!newParams->getAudioVideoConferenceFactoryAddress(); - setlimeServerUrl = true; + setLimeServerUrl = true; if( !exists) newParams->setAudioVideoConferenceFactoryAddress(Utils::interpretUrl(Constants::DefaultVideoConferenceURI)); qInfo() << "Migrating" << accountIdentity << "for version 5. Video conference factory URI" << (exists ? std::string("unchanged") : std::string("= ") +Constants::DefaultVideoConferenceURI).c_str(); // note: using std::string.c_str() to avoid having double quotes in qInfo() } + + if(!oldLimeServerUrl.empty()) + newParams->setLimeServerUrl(oldLimeServerUrl); + else if( setLimeServerUrl) + newParams->setLimeServerUrl(Constants::DefaultLimeServerURL); + account->setParams(newParams); } } - if(setlimeServerUrl) { - mCore->setLimeX3DhServerUrl(Constants::DefaultLimeServerURL); + if( !oldLimeServerUrl.empty()) { + mCore->setLimeX3DhServerUrl(""); + mCore->enableLimeX3Dh(true); + }else if(setLimeServerUrl) { mCore->enableLimeX3Dh(true); } diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index ead72bd65..a108f9080 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -68,8 +68,9 @@ AccountSettingsModel::AccountSettingsModel (QObject *parent) : QObject(parent) { QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::sipAddressChanged); QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::fullSipAddressChanged); QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::registrationStateChanged); - QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::conferenceURIChanged); - QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::videoConferenceURIChanged); + QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::conferenceUriChanged); + QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::videoConferenceUriChanged); + QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::limeServerUrlChanged); QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::primaryDisplayNameChanged); QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::primaryUsernameChanged); QObject::connect(this, &AccountSettingsModel::accountSettingsUpdated, this, &AccountSettingsModel::primarySipAddressChanged); @@ -160,6 +161,8 @@ QVariantMap AccountSettingsModel::getAccountDescription (const shared_ptrgetConferenceFactoryUri()); auto address = accountParams->getAudioVideoConferenceFactoryAddress(); map["videoConferenceUri"] = address ? Utils::coreStringToAppString(address->asString()) : ""; + map["limeServerUrl"] = Utils::coreStringToAppString(accountParams->getLimeServerUrl()); + map["videoConferenceUri"] = address ? Utils::coreStringToAppString(address->asString()) : ""; map["contactParams"] = Utils::coreStringToAppString(accountParams->getContactParameters()); map["avpfInterval"] = accountParams->getAvpfRrInterval(); map["registerEnabled"] = accountParams->registerEnabled(); @@ -194,13 +197,13 @@ QVariantMap AccountSettingsModel::getAccountDescription (const shared_ptr core = CoreManager::getInstance()->getCore(); shared_ptr account = core->getDefaultAccount(); return account ? Utils::coreStringToAppString(account->getParams()->getConferenceFactoryUri()) : ""; } -QString AccountSettingsModel::getVideoConferenceURI() const{ +QString AccountSettingsModel::getVideoConferenceUri() const{ shared_ptr core = CoreManager::getInstance()->getCore(); shared_ptr account = core->getDefaultAccount(); if(account) { @@ -210,6 +213,11 @@ QString AccountSettingsModel::getVideoConferenceURI() const{ return ""; } +QString AccountSettingsModel::getLimeServerUrl() const{ + shared_ptr core = CoreManager::getInstance()->getCore(); + shared_ptr account = core->getDefaultAccount(); + return account ? Utils::coreStringToAppString(account->getParams()->getLimeServerUrl()) : ""; +} void AccountSettingsModel::setDefaultAccount (const shared_ptr &account) { shared_ptr core = CoreManager::getInstance()->getCore(); @@ -320,6 +328,7 @@ bool AccountSettingsModel::addOrUpdateAccount( accountParams->setConferenceFactoryUri(Utils::appStringToCoreString(txt)); txt = data["videoConferenceUri"].toString(); accountParams->setAudioVideoConferenceFactoryAddress(Utils::interpretUrl(txt)); + accountParams->setLimeServerUrl(Utils::appStringToCoreString(data["limeServerUrl"].toString())); if(data.contains("contactParams")) accountParams->setContactParameters(Utils::appStringToCoreString(data["contactParams"].toString())); diff --git a/linphone-app/src/components/settings/AccountSettingsModel.hpp b/linphone-app/src/components/settings/AccountSettingsModel.hpp index 778990392..23d6ef92f 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.hpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.hpp @@ -39,8 +39,9 @@ class AccountSettingsModel : public QObject { Q_PROPERTY(QString fullSipAddress READ getUsedSipAddressAsString NOTIFY fullSipAddressChanged) Q_PROPERTY(RegistrationState registrationState READ getRegistrationState NOTIFY registrationStateChanged) - Q_PROPERTY(QString conferenceURI READ getConferenceURI NOTIFY conferenceURIChanged) - Q_PROPERTY(QString videoConferenceURI READ getVideoConferenceURI NOTIFY videoConferenceURIChanged) + Q_PROPERTY(QString conferenceUri READ getConferenceUri NOTIFY conferenceUriChanged) + Q_PROPERTY(QString videoConferenceUri READ getVideoConferenceUri NOTIFY videoConferenceUriChanged) + Q_PROPERTY(QString limeServerUrl READ getLimeServerUrl NOTIFY limeServerUrlChanged) // Default info. Q_PROPERTY(QString primaryDisplayName READ getPrimaryDisplayName WRITE setPrimaryDisplayName NOTIFY primaryDisplayNameChanged) @@ -70,8 +71,9 @@ public: bool addOrUpdateAccount (std::shared_ptr account, const std::shared_ptr& accountParams); Q_INVOKABLE QVariantMap getAccountDescription (const std::shared_ptr &account); - QString getConferenceURI() const; - QString getVideoConferenceURI() const; + QString getConferenceUri() const; + QString getVideoConferenceUri() const; + QString getLimeServerUrl() const; Q_INVOKABLE void setDefaultAccount (const std::shared_ptr &account = nullptr); Q_INVOKABLE void setDefaultAccountFromSipAddress (const QString &sipAddress); @@ -96,8 +98,9 @@ signals: void sipAddressChanged(); void fullSipAddressChanged(); void registrationStateChanged(); - void conferenceURIChanged(); - void videoConferenceURIChanged(); + void conferenceUriChanged(); + void videoConferenceUriChanged(); + void limeServerUrlChanged(); void primaryDisplayNameChanged(); void primaryUsernameChanged(); diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index eba0e30a1..041b30671 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -823,7 +823,10 @@ void SettingsModel::setStandardChatEnabled (bool status) { bool SettingsModel::getSecureChatEnabled () const { return !!mConfig->getInt(UiSection, getEntryFullName(UiSection, "secure_chat_enabled"), 1) - && !CoreManager::getInstance()->getCore()->getLimeX3DhServerUrl().empty() && getGroupChatEnabled(); + && getLimeIsSupported() + && CoreManager::getInstance()->getCore()->getDefaultAccount() && !CoreManager::getInstance()->getCore()->getDefaultAccount()->getParams()->getLimeServerUrl().empty() + //&& !CoreManager::getInstance()->getCore()->getLimeX3DhServerUrl().empty() + && getGroupChatEnabled(); ; } diff --git a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml index d6f036745..94daa624c 100644 --- a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml +++ b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml @@ -92,7 +92,7 @@ SearchBox { }, { colorSet: SettingsModel.getShowStartChatButton() ? SipAddressesViewStyle.chat : SipAddressesViewStyle.history, secure: 1, - visible: SettingsModel.secureChatEnabled && AccountSettingsModel.conferenceURI != '', + visible: SettingsModel.secureChatEnabled && AccountSettingsModel.conferenceUri != '', handler: function (entry) { searchBox.closeMenu() searchBox.launchSecureChat(entry.sipAddress) diff --git a/linphone-app/ui/views/App/Dialog/NewConference.qml b/linphone-app/ui/views/App/Dialog/NewConference.qml index 95f8d5919..4d4bc0235 100644 --- a/linphone-app/ui/views/App/Dialog/NewConference.qml +++ b/linphone-app/ui/views/App/Dialog/NewConference.qml @@ -106,7 +106,7 @@ DialogPlus { onClicked: exit(0) }, TextButtonB { - enabled: conferenceManager.creationState != 1 && selectedParticipants.count >= conferenceManager.minParticipants && subject.text != '' && AccountSettingsModel.conferenceURI != '' + enabled: conferenceManager.creationState != 1 && selectedParticipants.count >= conferenceManager.minParticipants && subject.text != '' && AccountSettingsModel.conferenceUri != '' //: 'Launch' : Launch button text: conferenceManager.isNew ? qsTr('launchButton') //: 'Update' : Update button @@ -142,7 +142,7 @@ DialogPlus { conferenceInfoModel.createConference(false && secureSwitch.checked) // TODO remove false when Encryption is ready to use } TooltipArea{ - visible: AccountSettingsModel.conferenceURI == '' || subject.text == '' || selectedParticipants.count < conferenceManager.minParticipants + visible: AccountSettingsModel.conferenceUri == '' || subject.text == '' || selectedParticipants.count < conferenceManager.minParticipants maxWidth: participantView.width delay:0 text: { @@ -153,7 +153,7 @@ DialogPlus { if( selectedParticipants.count < conferenceManager.minParticipants) //: 'You need at least %1 participant.' : Tooltip to warn a user that there are not enough participants for the conference creation. txt += '- ' + qsTr('missingParticipants', '', conferenceManager.minParticipants).arg(conferenceManager.minParticipants) + '\n' - if( AccountSettingsModel.conferenceURI == '') + if( AccountSettingsModel.conferenceUri == '') //: 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missing in its configuration. txt += '- ' + qsTr('missingConferenceURI') + '\n' return txt; diff --git a/linphone-app/ui/views/App/Main/ContactEdit.qml b/linphone-app/ui/views/App/Main/ContactEdit.qml index 83c6d2827..e16987322 100644 --- a/linphone-app/ui/views/App/Main/ContactEdit.qml +++ b/linphone-app/ui/views/App/Main/ContactEdit.qml @@ -189,7 +189,7 @@ ColumnLayout { backgroundRadius: 90 colorSet: SettingsModel.getShowStartChatButton() ? ContactEditStyle.chat : ContactEditStyle.history visible: SettingsModel.secureChatEnabled - enabled: AccountSettingsModel.conferenceURI != '' + enabled: AccountSettingsModel.conferenceUri != '' Icon{ icon:'secure_level_1' iconSize:parent.height/2 @@ -199,7 +199,7 @@ ColumnLayout { onClicked: {sipAddressesMenu.open(sipAddressesMenu.createSecureChatRoom)} tooltipMaxWidth: actionBar.width - tooltipVisible: AccountSettingsModel.conferenceURI == '' + tooltipVisible: AccountSettingsModel.conferenceUri == '' //: 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missing in its configuration. tooltipText: '- ' + qsTr('missingConferenceURI') + '\n' } diff --git a/linphone-app/ui/views/App/Main/Contacts.qml b/linphone-app/ui/views/App/Main/Contacts.qml index 356831065..aa16fa0a0 100644 --- a/linphone-app/ui/views/App/Main/Contacts.qml +++ b/linphone-app/ui/views/App/Main/Contacts.qml @@ -166,7 +166,7 @@ ColumnLayout { backgroundRadius: 90 colorSet: SettingsModel.getShowStartChatButton() ? ContactsStyle.chat : ContactsStyle.history visible: SettingsModel.secureChatEnabled - enabled: AccountSettingsModel.conferenceURI != '' + enabled: AccountSettingsModel.conferenceUri != '' Icon{ icon:'secure_level_1' iconSize:parent.height/2 @@ -175,7 +175,7 @@ ColumnLayout { } onClicked: {actions.itemAt(3).open()} tooltipMaxWidth: actionBar.width - tooltipVisible: AccountSettingsModel.conferenceURI == '' + tooltipVisible: AccountSettingsModel.conferenceUri == '' //: 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missing in its configuration. tooltipText: '- ' + qsTr('missingConferenceURI') + '\n' } diff --git a/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml b/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml index af8e5c3d1..20b07f4fb 100644 --- a/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml +++ b/linphone-app/ui/views/App/Main/Dialogs/NewChatRoom.qml @@ -28,7 +28,7 @@ DialogPlus { onClicked: exit(0) }, TextButtonB { - enabled: selectedParticipants.count >= conferenceManager.minParticipants && subject.text != '' && AccountSettingsModel.conferenceURI != '' + enabled: selectedParticipants.count >= conferenceManager.minParticipants && subject.text != '' && AccountSettingsModel.conferenceUri != '' //: 'Launch' : Start button text: qsTr('startButton') capitalization: Font.AllUppercase @@ -38,7 +38,7 @@ DialogPlus { exit(1) } TooltipArea{ - visible: AccountSettingsModel.conferenceURI == '' || subject.text == '' || selectedParticipants.count < conferenceManager.minParticipants + visible: AccountSettingsModel.conferenceUri == '' || subject.text == '' || selectedParticipants.count < conferenceManager.minParticipants maxWidth: participantView.width delay:0 text: { @@ -49,7 +49,7 @@ DialogPlus { if( selectedParticipants.count < conferenceManager.minParticipants) //: 'You need at least %1 participant.' : Tooltip to warn a user that there are not enough participants for the chat creation. txt += '- ' + qsTr('missingParticipants', '', conferenceManager.minParticipants).arg(conferenceManager.minParticipants) + '\n' - if( AccountSettingsModel.conferenceURI == '') + if( AccountSettingsModel.conferenceUri == '') //: 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missong in its configuration. txt += '- ' + qsTr('missingConferenceURI') + '\n' return txt; diff --git a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js index 208e7d7be..acc619ad3 100644 --- a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js +++ b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js @@ -52,6 +52,7 @@ function initForm (account) { route.text = config.route conferenceUri.text = config.conferenceUri videoConferenceUri.text = config.videoConferenceUri + limeServerUrl.text = config.limeServerUrl contactParams.text = config.contactParams avpfInterval.text = config.avpfInterval registerEnabled.checked = config.registerEnabled @@ -72,7 +73,7 @@ function initForm (account) { } function formIsValid () { - return dialog._sipAddressOk && dialog._serverAddressOk && dialog._routeOk && dialog._conferenceUriOk && dialog._videoConferenceUriOk + return dialog._sipAddressOk && dialog._serverAddressOk && dialog._routeOk && dialog._conferenceUriOk && dialog._videoConferenceUriOk && dialog._limeServerUrlOk } // ----------------------------------------------------------------------------- @@ -86,6 +87,7 @@ function validAccount (account) { route: route.text, conferenceUri: conferenceUri.text, videoConferenceUri: videoConferenceUri.text, + limeServerUrl: limeServerUrl.text, contactParams: contactParams.text, avpfInterval: avpfInterval.text, registerEnabled: registerEnabled.checked, @@ -119,6 +121,10 @@ function handleVideoConferenceUriChanged (uri) { dialog._videoConferenceUriOk = uri=='' || Linphone.SipAddressesModel.addressIsValid(uri) } +function handleLimeServerUrlChanged (uri) { + dialog._limeServerUrlOk = uri=='' || Linphone.SipAddressesModel.addressIsValid(uri) +} + function handleServerAddressChanged (address) { if (address.length === 0) { dialog._serverAddressOk = false diff --git a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml index f6b7ff0e5..069a969bf 100644 --- a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml +++ b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml @@ -18,6 +18,7 @@ DialogPlus { property bool _routeOk: true property bool _conferenceUriOk: true property bool _videoConferenceUriOk: true + property bool _limeServerUrlOk: true flat: true showMargins: true @@ -151,8 +152,8 @@ DialogPlus { } FormLine { FormGroup { - - label: 'Video Conference URI' + //: "Video Conference URI" : Label of a text edit for filling Video conference URI. + label: qsTr('videoConferenceURI') TextField { id: videoConferenceUri @@ -165,6 +166,22 @@ DialogPlus { } } } + FormLine { + FormGroup { + //: 'E2E encryption keys server URL' : Label of a text edit for filling the Lime server URL. + label: qsTr('limeServerUrl') + + TextField { + id: limeServerUrl + //: "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. + error: dialog._limeServerUrlOk ? '' : qsTr("invalidLimeServerUrl") + + onTextChanged: Logic.handleLimeServerUrlChanged(text) + Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus() + Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus() + } + } + } FormLine { FormGroup {