diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts
index 1431099ad..5b60b341f 100644
--- a/linphone-desktop/assets/languages/en.ts
+++ b/linphone-desktop/assets/languages/en.ts
@@ -28,6 +28,28 @@
Start in the system tray, do not show the main interface.
+
+ AssistantAbstractView
+
+ back
+ BACK
+
+
+
+ AssistantFetchRemoteConfiguration
+
+ fetchRemoteConfigurationTitle
+ Fetch remote configuration
+
+
+ urlLabel
+ URL
+
+
+ confirmAction
+ DOWNLOAD
+
+
AssistantHome
diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts
index e630b6d99..215733320 100644
--- a/linphone-desktop/assets/languages/fr.ts
+++ b/linphone-desktop/assets/languages/fr.ts
@@ -28,6 +28,28 @@
+
+ AssistantAbstractView
+
+ back
+ RETOUR
+
+
+
+ AssistantFetchRemoteConfiguration
+
+ fetchRemoteConfigurationTitle
+ Télécharger une configuration
+
+
+ urlLabel
+ URL
+
+
+ confirmAction
+ TÉLÉCHARGER
+
+
AssistantHome
diff --git a/linphone-desktop/resources.qrc b/linphone-desktop/resources.qrc
index 8763b703c..82e820340 100644
--- a/linphone-desktop/resources.qrc
+++ b/linphone-desktop/resources.qrc
@@ -309,6 +309,8 @@
ui/scripts/Utils/qmldir
ui/scripts/Utils/uri-tools.js
ui/scripts/Utils/utils.js
+ ui/views/App/Assistant/AssistantAbstractView.qml
+ ui/views/App/Assistant/AssistantFetchRemoteConfiguration.qml
ui/views/App/Assistant/AssistantHome.qml
ui/views/App/AssistantWindow.qml
ui/views/App/Calls/AbstractStartingCall.qml
@@ -333,6 +335,7 @@
ui/views/App/Settings/SettingsUi.qml
ui/views/App/Settings/SettingsVideo.qml
ui/views/App/Settings/SettingsWindow.qml
+ ui/views/App/Styles/Assistant/AssistantAbstractViewStyle.qml
ui/views/App/Styles/Assistant/AssistantHomeStyle.qml
ui/views/App/Styles/AssistantWindowStyle.qml
ui/views/App/Styles/Calls/CallStyle.qml
diff --git a/linphone-desktop/ui/views/App/Assistant/AssistantAbstractView.qml b/linphone-desktop/ui/views/App/Assistant/AssistantAbstractView.qml
new file mode 100644
index 000000000..b68372ff9
--- /dev/null
+++ b/linphone-desktop/ui/views/App/Assistant/AssistantAbstractView.qml
@@ -0,0 +1,45 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.3
+
+import Common 1.0
+
+import App.Styles 1.0
+
+// =============================================================================
+
+ColumnLayout {
+ id: view
+
+ // ---------------------------------------------------------------------------
+
+ property alias mainActionEnabled: mainActionButton.enabled
+ property alias mainActionLabel: mainActionButton.text
+ property var mainAction
+
+ default property alias _content: content.data
+
+ // ---------------------------------------------------------------------------
+
+ Item {
+ id: content
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ Row {
+ Layout.alignment: Qt.AlignHCenter
+ spacing: AssistantAbstractViewStyle.buttons.spacing
+
+ TextButtonA {
+ text: qsTr('back')
+ onClicked: window.popView()
+ }
+
+ TextButtonB {
+ id: mainActionButton
+
+ onClicked: view.mainAction()
+ }
+ }
+}
diff --git a/linphone-desktop/ui/views/App/Assistant/AssistantFetchRemoteConfiguration.qml b/linphone-desktop/ui/views/App/Assistant/AssistantFetchRemoteConfiguration.qml
new file mode 100644
index 000000000..ce2dd1086
--- /dev/null
+++ b/linphone-desktop/ui/views/App/Assistant/AssistantFetchRemoteConfiguration.qml
@@ -0,0 +1,28 @@
+import Common 1.0
+
+// =============================================================================
+
+AssistantAbstractView {
+ mainAction: (function () {
+ console.log('TODO')
+ })
+
+ mainActionEnabled: url.text.length > 0
+ mainActionLabel: qsTr('confirmAction')
+
+ Form {
+ anchors.fill: parent
+ orientation: Qt.Vertical
+ title: qsTr('fetchRemoteConfigurationTitle')
+
+ FormLine {
+ FormGroup {
+ label: qsTr('urlLabel')
+
+ TextField {
+ id: url
+ }
+ }
+ }
+ }
+}
diff --git a/linphone-desktop/ui/views/App/AssistantWindow.qml b/linphone-desktop/ui/views/App/AssistantWindow.qml
index cf6d75564..4f6d8852f 100644
--- a/linphone-desktop/ui/views/App/AssistantWindow.qml
+++ b/linphone-desktop/ui/views/App/AssistantWindow.qml
@@ -67,5 +67,43 @@ Window {
}
initialItem: window.viewsPath + 'AssistantHome.qml'
+
+ // -------------------------------------------------------------------------
+
+ popEnter: Transition {
+ XAnimator {
+ duration: AssistantWindowStyle.stackAnimation.duration
+ easing.type: Easing.OutBack
+ from: -stack.width - AssistantWindowStyle.leftMargin
+ to: 0
+ }
+ }
+
+ popExit: Transition {
+ XAnimator {
+ duration: AssistantWindowStyle.stackAnimation.duration
+ easing.type: Easing.OutBack
+ from: 0
+ to: stack.width + AssistantWindowStyle.rightMargin
+ }
+ }
+
+ pushEnter: Transition {
+ XAnimator {
+ duration: AssistantWindowStyle.stackAnimation.duration
+ easing.type: Easing.OutBack
+ from: stack.width + AssistantWindowStyle.rightMargin
+ to: 0
+ }
+ }
+
+ pushExit: Transition {
+ XAnimator {
+ duration: AssistantWindowStyle.stackAnimation.duration
+ easing.type: Easing.OutBack
+ from: 0
+ to: -stack.width - AssistantWindowStyle.leftMargin
+ }
+ }
}
}
diff --git a/linphone-desktop/ui/views/App/Styles/Assistant/AssistantAbstractViewStyle.qml b/linphone-desktop/ui/views/App/Styles/Assistant/AssistantAbstractViewStyle.qml
new file mode 100644
index 000000000..baa115eb8
--- /dev/null
+++ b/linphone-desktop/ui/views/App/Styles/Assistant/AssistantAbstractViewStyle.qml
@@ -0,0 +1,10 @@
+pragma Singleton
+import QtQuick 2.7
+
+// =============================================================================
+
+QtObject {
+ property QtObject buttons: QtObject {
+ property int spacing: 10
+ }
+}
diff --git a/linphone-desktop/ui/views/App/Styles/AssistantWindowStyle.qml b/linphone-desktop/ui/views/App/Styles/AssistantWindowStyle.qml
index fa7a21bdd..d0d1624ab 100644
--- a/linphone-desktop/ui/views/App/Styles/AssistantWindowStyle.qml
+++ b/linphone-desktop/ui/views/App/Styles/AssistantWindowStyle.qml
@@ -13,4 +13,8 @@ QtObject {
property int topMargin: 35
property int height: 480
property int width: 700
+
+ property QtObject stackAnimation: QtObject {
+ property int duration: 400
+ }
}
diff --git a/linphone-desktop/ui/views/App/Styles/qmldir b/linphone-desktop/ui/views/App/Styles/qmldir
index 2a194851c..1abab53b8 100644
--- a/linphone-desktop/ui/views/App/Styles/qmldir
+++ b/linphone-desktop/ui/views/App/Styles/qmldir
@@ -4,20 +4,21 @@ module App.Styles
# Views styles -----------------------------------------------------------------
-singleton AssistantWindowStyle 1.0 AssistantWindowStyle.qml
-singleton InviteFriendsWindowStyle 1.0 InviteFriendsWindowStyle.qml
-singleton ManageAccountsWindowStyle 1.0 ManageAccountsWindowStyle.qml
+singleton AssistantWindowStyle 1.0 AssistantWindowStyle.qml
+singleton InviteFriendsWindowStyle 1.0 InviteFriendsWindowStyle.qml
+singleton ManageAccountsWindowStyle 1.0 ManageAccountsWindowStyle.qml
-singleton AssistantHomeStyle 1.0 Assistant/AssistantHomeStyle.qml
+singleton AssistantHomeStyle 1.0 Assistant/AssistantHomeStyle.qml
+singleton AssistantAbstractViewStyle 1.0 Assistant/AssistantAbstractViewStyle.qml
-singleton CallStyle 1.0 Calls/CallStyle.qml
-singleton CallsWindowStyle 1.0 Calls/CallsWindowStyle.qml
+singleton CallStyle 1.0 Calls/CallStyle.qml
+singleton CallsWindowStyle 1.0 Calls/CallsWindowStyle.qml
-singleton ContactEditStyle 1.0 Main/ContactEditStyle.qml
-singleton ContactsStyle 1.0 Main/ContactsStyle.qml
-singleton ConversationStyle 1.0 Main/ConversationStyle.qml
-singleton HomeStyle 1.0 Main/HomeStyle.qml
-singleton MainWindowMenuBarStyle 1.0 Main/MainWindowMenuBarStyle.qml
-singleton MainWindowStyle 1.0 Main/MainWindowStyle.qml
+singleton ContactEditStyle 1.0 Main/ContactEditStyle.qml
+singleton ContactsStyle 1.0 Main/ContactsStyle.qml
+singleton ConversationStyle 1.0 Main/ConversationStyle.qml
+singleton HomeStyle 1.0 Main/HomeStyle.qml
+singleton MainWindowMenuBarStyle 1.0 Main/MainWindowMenuBarStyle.qml
+singleton MainWindowStyle 1.0 Main/MainWindowStyle.qml
-singleton SettingsWindowStyle 1.0 Settings/SettingsWindowStyle.qml
+singleton SettingsWindowStyle 1.0 Settings/SettingsWindowStyle.qml