diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 393fbe281..2fc06a141 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -1502,7 +1502,7 @@ Server URL not configured. lastProvisioningFailed 'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed. - Last remote provisioning failed + Remote provisioning failed. The link might be used or expired. If it was provided to you, please contact your administrator. generateLabel diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index a71e268e7..c6d0d8489 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -1502,7 +1502,7 @@ URL du serveur non configurée. lastProvisioningFailed 'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed. - La dernière configuration n'a pas pu être récupérée + Erreur de récupération de la configuration distante. Le lien de configuration a peut-être déjà été utilisé ou a expiré. Merci de contacter un administrateur si ce lien vous a été fourni. generateLabel diff --git a/linphone-app/src/components/core/CoreManager.cpp b/linphone-app/src/components/core/CoreManager.cpp index b4aa2e138..c9c9f7f12 100644 --- a/linphone-app/src/components/core/CoreManager.cpp +++ b/linphone-app/src/components/core/CoreManager.cpp @@ -464,6 +464,8 @@ QString CoreManager::getDownloadUrl () { void CoreManager::setLastRemoteProvisioningState(const linphone::Config::ConfiguringState& state){ mLastRemoteProvisioningState = state; + if (state == linphone::Config::ConfiguringState::Failed) + emit remoteProvisioningFailed(); } bool CoreManager::isLastRemoteProvisioningGood(){ diff --git a/linphone-app/src/components/core/CoreManager.hpp b/linphone-app/src/components/core/CoreManager.hpp index fc30f287a..f4af36360 100644 --- a/linphone-app/src/components/core/CoreManager.hpp +++ b/linphone-app/src/components/core/CoreManager.hpp @@ -192,6 +192,7 @@ signals: void eventCountChanged (); void callLogsCountChanged(); + void remoteProvisioningFailed(); private: CoreManager (QObject *parent, const QString &configPath); diff --git a/linphone-app/ui/scripts/Utils/utils.js b/linphone-app/ui/scripts/Utils/utils.js index 87b5e095d..f80116c71 100644 --- a/linphone-app/ui/scripts/Utils/utils.js +++ b/linphone-app/ui/scripts/Utils/utils.js @@ -728,3 +728,11 @@ function printObject(o) { else return out; } + +function infoDialog(window, message) { + window.attachVirtualWindow(buildCommonDialogUri('ConfirmDialog'), { + buttonTexts : ['',qsTr('okButton')], + descriptionText: message, + showButtonOnly: 1 + }, function (status) {}) +} diff --git a/linphone-app/ui/views/App/Main/MainWindow.js b/linphone-app/ui/views/App/Main/MainWindow.js index af0263cc8..6bf7cfc1c 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.js +++ b/linphone-app/ui/views/App/Main/MainWindow.js @@ -116,3 +116,9 @@ function handleAuthenticationRequested (authInfo, realm, sipAddress, userId) { virtualWindowHash:Qt.md5('Dialogs/AuthenticationRequest.qml'+realm+sipAddress+userId) }) } + +// ----------------------------------------------------------------------------- + +function warnProvisioningFailed(window) { + Utils.infoDialog(window, qsTr('lastProvisioningFailed')) +} diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml index 4d62f98d5..5b45977b8 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.qml +++ b/linphone-app/ui/views/App/Main/MainWindow.qml @@ -56,6 +56,7 @@ ApplicationWindow { Connections { target: CoreManager onCoreManagerInitialized: mainLoader.active = true + onRemoteProvisioningFailed: if(mainLoader.active) Logic.warnProvisioningFailed(window) } Shortcut { @@ -70,13 +71,18 @@ ApplicationWindow { active: false anchors.fill: parent - onLoaded: switch(SettingsModel.getShowDefaultPage()) { - case 1 : window.setView('Calls'); break; - case 2 : window.setView('Conversations'); break; - case 3 : ContactsListModel.update(); window.setView('Contacts'); break; - case 4 : window.setView('Conferences'); break; - default:{} - } + onLoaded: { + if(!CoreManager.isLastRemoteProvisioningGood()) { + Logic.warnProvisioningFailed(window) + } + switch(SettingsModel.getShowDefaultPage()) { + case 1 : window.setView('Calls'); break; + case 2 : window.setView('Conversations'); break; + case 3 : ContactsListModel.update(); window.setView('Contacts'); break; + case 4 : window.setView('Conferences'); break; + default:{} + } + } sourceComponent: ColumnLayout { // Workaround to get these properties in `MainWindow.js`.