diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index d5402d4c9..07c42b52b 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -341,7 +341,7 @@ bool AccountSettingsModel::addOrUpdateAccount( accountParams->setExpires(data["registrationDuration"].toInt()); if(data.contains("publishDuration")) accountParams->setPublishExpires(data["publishDuration"].toInt()); - if(data.contains("route")) { + if(data.contains("route") && data["route"].toString() != "") { std::list> routes; routes.push_back(Utils::interpretUrl(data["route"].toString())); accountParams->setRoutesAddresses(routes); diff --git a/linphone-app/src/utils/Utils.cpp b/linphone-app/src/utils/Utils.cpp index 36c3d9431..7b31e2845 100644 --- a/linphone-app/src/utils/Utils.cpp +++ b/linphone-app/src/utils/Utils.cpp @@ -674,6 +674,10 @@ bool Utils::isUsername(const QString& txt){ return match.hasMatch(); // true } +bool Utils::isValidUrl(const QString& url){ + return QUrl(url).isValid(); +} + QSize Utils::getImageSize(const QString& url){ QString path; QUrl urlDecode(url); diff --git a/linphone-app/src/utils/Utils.hpp b/linphone-app/src/utils/Utils.hpp index b33fbd127..f0a6ebda6 100644 --- a/linphone-app/src/utils/Utils.hpp +++ b/linphone-app/src/utils/Utils.hpp @@ -74,6 +74,7 @@ public: Q_INVOKABLE static bool canHaveThumbnail(const QString& path); Q_INVOKABLE static bool isPhoneNumber(const QString& txt); Q_INVOKABLE static bool isUsername(const QString& txt); // Check with Regex + Q_INVOKABLE static bool isValidUrl(const QString& url); Q_INVOKABLE QSize getImageSize(const QString& url); Q_INVOKABLE static QPoint getCursorPosition(); Q_INVOKABLE static QString getFileChecksum(const QString& filePath); diff --git a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js index 6d29db1c4..399daa22c 100644 --- a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js +++ b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.js @@ -134,12 +134,6 @@ function handleVideoConferenceUriChanged (uri) { dialog._videoConferenceUriOk = uri=='' || Linphone.SipAddressesModel.addressIsValid(uri) } -function handleLimeServerUrlChanged (uri) { - dialog._limeServerUrlOk = uri=='' || Linphone.SipAddressesModel.addressIsValid(uri) - if(!dialog._limeServerUrlOk) - console.log("Bad URI: " +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 52dc468f9..be0a90e56 100644 --- a/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml +++ b/linphone-app/ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml @@ -2,6 +2,7 @@ import QtQuick 2.7 import QtQuick.Layouts 1.3 import Common 1.0 +import UtilsCpp 1.0 import App.Styles 1.0 @@ -177,7 +178,7 @@ DialogPlus { //: "invalid E2E encryption keys server URL" : Error text about E2E encryption keys server URL. error: dialog._limeServerUrlOk ? '' : qsTr("invalidLimeServerUrl") - onTextChanged: Logic.handleLimeServerUrlChanged(text) + onTextChanged: dialog._limeServerUrlOk = text == '' || UtilsCpp.isValidUrl(text) Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus() Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus() }