aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@qt.io>2016-12-02 11:19:51 +0900
committerTasuku Suzuki <tasuku.suzuki@qt.io>2016-12-02 13:14:55 +0900
commit6bf5bbd0ab5abab05305667a516c069c7c5556f4 (patch)
treef2cf3278c383771ff1b40dae2c72b0f08fdd69ef
parent505ec164e5174ddd838c0cac1e3e828930cb3b50 (diff)
WIP: add Qt Quick HomeScreen UI
Change-Id: I2be964f6d9e76df616169d7b2654d17ae9446687 Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
-rw-r--r--HomeScreen.pro1
-rw-r--r--HomeScreenNG/HomeScreenNG.pro33
-rw-r--r--HomeScreenNG/applicationlauncher.cpp13
-rw-r--r--HomeScreenNG/applicationlauncher.h16
-rw-r--r--HomeScreenNG/main.cpp26
-rw-r--r--HomeScreenNG/qml/MediaArea.qml40
-rw-r--r--HomeScreenNG/qml/MediaAreaBlank.qml12
-rw-r--r--HomeScreenNG/qml/MediaAreaMusic.qml68
-rw-r--r--HomeScreenNG/qml/MediaAreaRadio.qml7
-rw-r--r--HomeScreenNG/qml/ShortcutArea.qml53
-rw-r--r--HomeScreenNG/qml/ShortcutIcon.qml37
-rw-r--r--HomeScreenNG/qml/StatusArea.qml86
-rw-r--r--HomeScreenNG/qml/TopArea.qml26
-rw-r--r--HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.pngbin0 -> 944767 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.pngbin0 -> 25963 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/BackArrow.pngbin0 -> 691 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/ForwardArrow.pngbin0 -> 717 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.pngbin0 -> 927 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/Volume_Loud.pngbin0 -> 579 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/Volume_Medium.pngbin0 -> 882 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/Volume_Off.pngbin0 -> 740 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc11
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.pngbin0 -> 1854532 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.pngbin0 -> 648 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.pngbin0 -> 4637 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.pngbin0 -> 2790 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.pngbin0 -> 5581 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.pngbin0 -> 3223 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.pngbin0 -> 342 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.pngbin0 -> 675 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.pngbin0 -> 996 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.pngbin0 -> 1199 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.pngbin0 -> 3959 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.pngbin0 -> 4078 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.pngbin0 -> 2061 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.pngbin0 -> 2061 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.pngbin0 -> 4251 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.pngbin0 -> 2547 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.pngbin0 -> 4673 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.pngbin0 -> 2877 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.pngbin0 -> 1139 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.pngbin0 -> 1379 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Albums_Active.pngbin0 -> 4616 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.pngbin0 -> 2965 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/DividingLine.pngbin0 -> 419 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/GreenLine.pngbin0 -> 364 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Music_Active.pngbin0 -> 2567 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.pngbin0 -> 2692 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.pngbin0 -> 3687 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.pngbin0 -> 3014 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.pngbin0 -> 780 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.pngbin0 -> 1496 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.pngbin0 -> 2273 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.pngbin0 -> 364 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/X.pngbin0 -> 640 bytes
-rw-r--r--HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc37
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.pngbin0 -> 4108 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.pngbin0 -> 5908 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.pngbin0 -> 3435 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.pngbin0 -> 4924 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.pngbin0 -> 4114 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.pngbin0 -> 5973 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.pngbin0 -> 7122 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.pngbin0 -> 9799 bytes
-rw-r--r--HomeScreenNG/qml/images/Shortcut/shortcut.qrc12
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.pngbin0 -> 1170 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.pngbin0 -> 922 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.pngbin0 -> 570 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.pngbin0 -> 564 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.pngbin0 -> 560 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.pngbin0 -> 552 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.pngbin0 -> 544 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.pngbin0 -> 575 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.pngbin0 -> 1245 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.pngbin0 -> 1198 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.pngbin0 -> 1120 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.pngbin0 -> 995 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.pngbin0 -> 1278 bytes
-rw-r--r--HomeScreenNG/qml/images/Status/status.qrc17
-rw-r--r--HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.pngbin0 -> 2097 bytes
-rw-r--r--HomeScreenNG/qml/images/Utility_Logo_Background-01.pngbin0 -> 1150 bytes
-rw-r--r--HomeScreenNG/qml/images/Utility_Logo_Colour-01.pngbin0 -> 8638 bytes
-rw-r--r--HomeScreenNG/qml/images/Utility_Music_Background-01.pngbin0 -> 711 bytes
-rw-r--r--HomeScreenNG/qml/images/Utility_Radio_Background-01.pngbin0 -> 920 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.pngbin0 -> 1320 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.pngbin0 -> 715 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.pngbin0 -> 749 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.pngbin0 -> 900 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.pngbin0 -> 870 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.pngbin0 -> 840 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.pngbin0 -> 807 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.pngbin0 -> 886 bytes
-rw-r--r--HomeScreenNG/qml/images/Weather/weather.qrc12
-rw-r--r--HomeScreenNG/qml/images/images.qrc10
-rw-r--r--HomeScreenNG/qml/main.qml44
-rw-r--r--HomeScreenNG/qml/qml.qrc13
-rw-r--r--HomeScreenNG/statusbarmodel.cpp76
-rw-r--r--HomeScreenNG/statusbarmodel.h23
-rw-r--r--HomeScreenNG/statusbarserver.cpp71
-rw-r--r--HomeScreenNG/statusbarserver.h33
100 files changed, 777 insertions, 0 deletions
diff --git a/HomeScreen.pro b/HomeScreen.pro
index ec20600..c8e96b0 100644
--- a/HomeScreen.pro
+++ b/HomeScreen.pro
@@ -29,6 +29,7 @@ SUBDIRS = interfaces \
SampleNavigationApp \
SampleMediaApp \
sample-qml \
+ HomeScreenNG
HomeScreen.depends = interfaces
HomeScreenSimulator.depends = interfaces
diff --git a/HomeScreenNG/HomeScreenNG.pro b/HomeScreenNG/HomeScreenNG.pro
new file mode 100644
index 0000000..450395c
--- /dev/null
+++ b/HomeScreenNG/HomeScreenNG.pro
@@ -0,0 +1,33 @@
+TEMPLATE = app
+QT = quick dbus
+
+include(../interfaces/interfaces.pri)
+
+HEADERS += \
+ statusbarmodel.h \
+ statusbarserver.h \
+ applicationlauncher.h
+
+SOURCES += main.cpp \
+ statusbarmodel.cpp \
+ statusbarserver.cpp \
+ applicationlauncher.cpp
+
+RESOURCES += \
+ qml/images/MediaPlayer/mediaplayer.qrc \
+ qml/images/MediaMusic/mediamusic.qrc \
+ qml/images/Weather/weather.qrc \
+ qml/images/Shortcut/shortcut.qrc \
+ qml/images/Status/status.qrc \
+ qml/images/images.qrc \
+ qml/qml.qrc
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which as been marked deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+target.path = /opt/$${TARGET}/bin
+INSTALLS += target
+
diff --git a/HomeScreenNG/applicationlauncher.cpp b/HomeScreenNG/applicationlauncher.cpp
new file mode 100644
index 0000000..c4254ce
--- /dev/null
+++ b/HomeScreenNG/applicationlauncher.cpp
@@ -0,0 +1,13 @@
+#include "applicationlauncher.h"
+
+#include <QtCore/QDebug>
+
+ApplicationLauncher::ApplicationLauncher(QObject *parent)
+ : QObject(parent)
+{
+}
+
+void ApplicationLauncher::launch(const QString &application)
+{
+ qDebug() << "launch" << application;
+}
diff --git a/HomeScreenNG/applicationlauncher.h b/HomeScreenNG/applicationlauncher.h
new file mode 100644
index 0000000..409de25
--- /dev/null
+++ b/HomeScreenNG/applicationlauncher.h
@@ -0,0 +1,16 @@
+#ifndef APPLICATIONLAUNCHER_H
+#define APPLICATIONLAUNCHER_H
+
+#include <QtCore/QObject>
+
+class ApplicationLauncher : public QObject
+{
+ Q_OBJECT
+public:
+ explicit ApplicationLauncher(QObject *parent = nullptr);
+
+public slots:
+ void launch(const QString &application);
+};
+
+#endif // APPLICATIONLAUNCHER_H
diff --git a/HomeScreenNG/main.cpp b/HomeScreenNG/main.cpp
new file mode 100644
index 0000000..dad4c7d
--- /dev/null
+++ b/HomeScreenNG/main.cpp
@@ -0,0 +1,26 @@
+#include <QtGui/QGuiApplication>
+#include <QtGui/QWindow>
+#include <QtQml/QQmlApplicationEngine>
+#include <QtQml/qqml.h>
+#include <QtCore/QDebug>
+
+#include "applicationlauncher.h"
+#include "statusbarmodel.h"
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication::setOrganizationDomain(QStringLiteral("automotivelinux.org"));
+ QCoreApplication::setOrganizationName(QStringLiteral("AutomotiveGradeLinux"));
+ QCoreApplication::setApplicationName(QStringLiteral("HomeScreen"));
+ QCoreApplication::setApplicationVersion(QStringLiteral("0.0.1"));
+
+ QGuiApplication app(argc, argv);
+
+ qmlRegisterType<ApplicationLauncher>("HomeScreen", 1, 0, "ApplicationLauncher");
+ qmlRegisterType<StatusBarModel>("HomeScreen", 1, 0, "StatusBarModel");
+
+ QQmlApplicationEngine engine;
+ engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
+
+ return app.exec();
+}
diff --git a/HomeScreenNG/qml/MediaArea.qml b/HomeScreenNG/qml/MediaArea.qml
new file mode 100644
index 0000000..16ceb27
--- /dev/null
+++ b/HomeScreenNG/qml/MediaArea.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.7
+import QtQuick.Controls 2.0
+
+StackView {
+ id: root
+ width: 1080
+ height: 215
+
+ initialItem: blank
+
+ Component {
+ id: blank
+ MediaAreaBlank {
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.push(mouse.x < 540 ? music : radio)
+ }
+ }
+ }
+
+ Component {
+ id: music
+ MediaAreaMusic {
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.pop()
+ }
+ }
+ }
+
+ Component {
+ id: radio
+ MediaAreaRadio {
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.pop()
+ }
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/MediaAreaBlank.qml b/HomeScreenNG/qml/MediaAreaBlank.qml
new file mode 100644
index 0000000..7698e18
--- /dev/null
+++ b/HomeScreenNG/qml/MediaAreaBlank.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.7
+
+Image {
+ width: 1080
+ height: 215
+ source: './images/Utility_Logo_Background-01.png'
+
+ Image {
+ anchors.centerIn: parent
+ source: './images/Utility_Logo_Colour-01.png'
+ }
+}
diff --git a/HomeScreenNG/qml/MediaAreaMusic.qml b/HomeScreenNG/qml/MediaAreaMusic.qml
new file mode 100644
index 0000000..3bd0077
--- /dev/null
+++ b/HomeScreenNG/qml/MediaAreaMusic.qml
@@ -0,0 +1,68 @@
+import QtQuick 2.6
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+
+Image {
+ width: 1080
+ height: 215
+ source: './images/Utility_Music_Background-01.png'
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 1
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 107
+ spacing: 10
+ Image {
+ source: './images/MediaMusic/AlbumArtwork.png'
+ width: 105.298
+ height: 110.179
+ fillMode: Image.PreserveAspectFit
+ }
+ Label {
+ text: 'Come Together - The Beatles'
+ font.family: 'Roboto'
+ font.pixelSize: 32
+ color: 'white'
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 107
+ Image {
+ source: './images/MediaPlayer/AGL_MediaPlayer_BackArrow.png'
+ }
+ Image {
+ source: './images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png'
+ }
+ Image {
+ source: './images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png'
+ }
+
+ ProgressBar {
+ Layout.fillWidth: true
+ Layout.preferredWidth: 2
+ }
+
+ Label {
+ text: '2:12/4:19'
+ font.family: 'Roboto'
+ font.pixelSize: 20
+ }
+ Image {
+ source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+ }
+ Image {
+ source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+ }
+ ProgressBar {
+ Layout.fillWidth: true
+ Layout.preferredWidth: 1
+ }
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/MediaAreaRadio.qml b/HomeScreenNG/qml/MediaAreaRadio.qml
new file mode 100644
index 0000000..b2a9a33
--- /dev/null
+++ b/HomeScreenNG/qml/MediaAreaRadio.qml
@@ -0,0 +1,7 @@
+import QtQuick 2.6
+
+Image {
+ width: 1080
+ height: 215
+ source: './images/Utility_Radio_Background-01.png'
+}
diff --git a/HomeScreenNG/qml/ShortcutArea.qml b/HomeScreenNG/qml/ShortcutArea.qml
new file mode 100644
index 0000000..a98bec2
--- /dev/null
+++ b/HomeScreenNG/qml/ShortcutArea.qml
@@ -0,0 +1,53 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+import HomeScreen 1.0
+
+Item {
+ id: root
+ width: 785
+ height: 218
+
+ ApplicationLauncher {
+ id: launcher
+ }
+
+ ListModel {
+ id: applicationModel
+ ListElement {
+ name: 'Home'
+ application: 'launcher'
+ }
+ ListElement {
+ name: 'Multimedia'
+ application: 'musicplayer'
+ }
+ ListElement {
+ name: 'HVAC'
+ application: 'hvac'
+ }
+ ListElement {
+ name: 'Navigation'
+ application: 'navigation'
+ }
+ }
+
+ property int currentIndex: -1 // TODO: to be moved to whereever right
+
+ RowLayout {
+ anchors.fill: parent
+ spacing: 2
+ Repeater {
+ model: applicationModel
+ delegate: ShortcutIcon {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ name: model.name
+ active: model.index === root.currentIndex
+ onClicked: {
+ root.currentIndex = active ? -1 : model.index
+ launcher.launch(model.application)
+ }
+ }
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/ShortcutIcon.qml b/HomeScreenNG/qml/ShortcutIcon.qml
new file mode 100644
index 0000000..84550d9
--- /dev/null
+++ b/HomeScreenNG/qml/ShortcutIcon.qml
@@ -0,0 +1,37 @@
+import QtQuick 2.6
+
+MouseArea {
+ id: root
+ width: 195
+ height: 216.8
+ property string name: 'Home'
+ property bool active: false
+ Image {
+ id: icon
+ anchors.fill: parent
+ source: './images/Shortcut/HMI_Shortcut_%1-01.png'.arg(root.name)
+ }
+ Image {
+ anchors.fill: parent
+ source: './images/Shortcut/HMI_Shortcut_%1_Active-01.png'.arg(root.name)
+ opacity: 1.0 - icon.opacity
+ }
+ states: [
+ State {
+ when: root.active
+ PropertyChanges {
+ target: icon
+ opacity: 0.0
+ }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ NumberAnimation {
+ properties: 'opacity'
+ easing.type: Easing.OutExpo
+ }
+ }
+ ]
+}
diff --git a/HomeScreenNG/qml/StatusArea.qml b/HomeScreenNG/qml/StatusArea.qml
new file mode 100644
index 0000000..6dda3ba
--- /dev/null
+++ b/HomeScreenNG/qml/StatusArea.qml
@@ -0,0 +1,86 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+import QtQuick.Controls 2.0
+import HomeScreen 1.0
+
+Item {
+ id: root
+ width: 295
+ height: 218
+
+ property date now: new Date
+ Timer {
+ interval: 100; running: true; repeat: true;
+ onTriggered: root.now = new Date
+ }
+
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+ Item {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredWidth: 295 - 76
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: 40
+ spacing: 0
+ Label {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ text: Qt.formatDate(now, 'dddd').toUpperCase()
+ font.family: 'Roboto'
+ font.pixelSize: 13
+ color: 'white'
+ verticalAlignment: Text.AlignVCenter
+// Rectangle {
+// anchors.fill: parent
+// anchors.margins: 5
+// color: 'red'
+// border.color: 'blue'
+// border.width: 1
+// z: -1
+// }
+ }
+ Label {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ text: Qt.formatTime(now, 'h:mm ap').toUpperCase()
+ font.family: 'Roboto'
+ font.pixelSize: 40
+ color: 'white'
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 20
+ Image {
+ source: './images/Weather/WeatherIcons_Rain-01.png'
+ }
+ Label {
+ text: '64°F'
+ color: 'white'
+ font.family: 'Helvetica'
+ font.pixelSize: 32
+ }
+ }
+ }
+ }
+ ColumnLayout {
+ id: icons
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredWidth: 76
+ spacing: -10
+ Repeater {
+ model: StatusBarModel {}
+ delegate: Image {
+ source: model.modelData
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/TopArea.qml b/HomeScreenNG/qml/TopArea.qml
new file mode 100644
index 0000000..8de8a8d
--- /dev/null
+++ b/HomeScreenNG/qml/TopArea.qml
@@ -0,0 +1,26 @@
+import QtQuick 2.7
+import QtQuick.Layouts 1.1
+
+Image {
+ width: 1920
+ height: 218
+ source: './images/TopSection_NoText_NoIcons-01.png'
+ fillMode: Image.PreserveAspectCrop
+
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+ ShortcutArea {
+ id: shortcutArea
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredWidth: 785
+ }
+ StatusArea {
+ id: statusArea
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredWidth: 295
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png b/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png
new file mode 100644
index 0000000..595f742
--- /dev/null
+++ b/HomeScreenNG/qml/images/AGL_HMI_Background_NoCar-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png
new file mode 100644
index 0000000..3716ab3
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/AlbumArtwork.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/BackArrow.png b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png
new file mode 100644
index 0000000..63e38d9
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/BackArrow.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png
new file mode 100644
index 0000000..a513705
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/ForwardArrow.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png
new file mode 100644
index 0000000..30f75c5
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/ShuffleIcon.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png
new file mode 100644
index 0000000..8ea4402
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Loud.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png
new file mode 100644
index 0000000..ae5c82e
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Medium.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png
new file mode 100644
index 0000000..07e3353
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/Volume_Off.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc b/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc
new file mode 100644
index 0000000..b1138c0
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaMusic/mediamusic.qrc
@@ -0,0 +1,11 @@
+<RCC>
+ <qresource prefix="/images/MediaMusic">
+ <file>AlbumArtwork.png</file>
+ <file>BackArrow.png</file>
+ <file>ForwardArrow.png</file>
+ <file>ShuffleIcon.png</file>
+ <file>Volume_Loud.png</file>
+ <file>Volume_Medium.png</file>
+ <file>Volume_Off.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png
new file mode 100644
index 0000000..14a52b2
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_AlbumArtwork.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png
new file mode 100644
index 0000000..0ec1f67
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png
new file mode 100644
index 0000000..bc2df1d
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png
new file mode 100644
index 0000000..8d8fc02
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Bluetooth_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png
new file mode 100644
index 0000000..94fe38f
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png
new file mode 100644
index 0000000..12609e1
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_CD_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png
new file mode 100644
index 0000000..299903e
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_DividingLine.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png
new file mode 100644
index 0000000..33cc700
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png
new file mode 100644
index 0000000..9bdb14d
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png
new file mode 100644
index 0000000..76b0fc9
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Loop_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png
new file mode 100644
index 0000000..c423005
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png
new file mode 100644
index 0000000..beece66
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Player_Play.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png
new file mode 100644
index 0000000..eec608f
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png
new file mode 100644
index 0000000..d392a90
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_PlaylistToggle_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png
new file mode 100644
index 0000000..22319c9
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png
new file mode 100644
index 0000000..9fd42e2
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Playlist_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png
new file mode 100644
index 0000000..eb61b39
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png
new file mode 100644
index 0000000..de305f0
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Radio_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png
new file mode 100644
index 0000000..d97feec
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png
new file mode 100644
index 0000000..7f6445d
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png
new file mode 100644
index 0000000..1f66e23
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Albums_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png
new file mode 100644
index 0000000..e0e7f00
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Albums_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png
new file mode 100644
index 0000000..87f2122
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/DividingLine.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png
new file mode 100644
index 0000000..0210b83
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/GreenLine.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png
new file mode 100644
index 0000000..36afac7
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Music_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png
new file mode 100644
index 0000000..9dae353
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Music_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png
new file mode 100644
index 0000000..fd2d2c0
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Active.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png
new file mode 100644
index 0000000..b76b04c
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Podcasts_Inactive.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png
new file mode 100644
index 0000000..ac63673
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_Highlight.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png
new file mode 100644
index 0000000..2627add
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_PauseIcon.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png
new file mode 100644
index 0000000..0483e07
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_PlayIcon.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png
new file mode 100644
index 0000000..6a9db00
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/Popup_VerticalLine.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/X.png b/HomeScreenNG/qml/images/MediaPlayer/X.png
new file mode 100644
index 0000000..ab392cb
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/X.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc b/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc
new file mode 100644
index 0000000..1cb17ab
--- /dev/null
+++ b/HomeScreenNG/qml/images/MediaPlayer/mediaplayer.qrc
@@ -0,0 +1,37 @@
+<RCC>
+ <qresource prefix="/images/MediaPlayer">
+ <file>AGL_MediaPlayer_AlbumArtwork.png</file>
+ <file>AGL_MediaPlayer_BackArrow.png</file>
+ <file>AGL_MediaPlayer_Bluetooth_Active.png</file>
+ <file>AGL_MediaPlayer_Bluetooth_Inactive.png</file>
+ <file>AGL_MediaPlayer_CD_Active.png</file>
+ <file>AGL_MediaPlayer_CD_Inactive.png</file>
+ <file>AGL_MediaPlayer_DividingLine.png</file>
+ <file>AGL_MediaPlayer_ForwardArrow.png</file>
+ <file>AGL_MediaPlayer_Loop_Active.png</file>
+ <file>AGL_MediaPlayer_Loop_Inactive.png</file>
+ <file>AGL_MediaPlayer_Player_Pause.png</file>
+ <file>AGL_MediaPlayer_Player_Play.png</file>
+ <file>AGL_MediaPlayer_Playlist_Active.png</file>
+ <file>AGL_MediaPlayer_Playlist_Inactive.png</file>
+ <file>AGL_MediaPlayer_PlaylistToggle_Active.png</file>
+ <file>AGL_MediaPlayer_PlaylistToggle_Inactive.png</file>
+ <file>AGL_MediaPlayer_Radio_Active.png</file>
+ <file>AGL_MediaPlayer_Radio_Inactive.png</file>
+ <file>AGL_MediaPlayer_Shuffle_Active.png</file>
+ <file>AGL_MediaPlayer_Shuffle_Inactive.png</file>
+ <file>Albums_Active.png</file>
+ <file>Albums_Inactive.png</file>
+ <file>DividingLine.png</file>
+ <file>GreenLine.png</file>
+ <file>Music_Active.png</file>
+ <file>Music_Inactive.png</file>
+ <file>Podcasts_Active.png</file>
+ <file>Podcasts_Inactive.png</file>
+ <file>Popup_Highlight.png</file>
+ <file>Popup_PauseIcon.png</file>
+ <file>Popup_PlayIcon.png</file>
+ <file>Popup_VerticalLine.png</file>
+ <file>X.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png
new file mode 100644
index 0000000..f5188f5
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png
new file mode 100644
index 0000000..abe92d2
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_HVAC_Active-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png
new file mode 100644
index 0000000..9aca151
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png
new file mode 100644
index 0000000..696168f
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Home_Active-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png
new file mode 100644
index 0000000..229860c
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png
new file mode 100644
index 0000000..b0a023c
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Multimedia_Active-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png
new file mode 100644
index 0000000..34b0671
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png
new file mode 100644
index 0000000..98e6146
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/HMI_Shortcut_Navigation_Active-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Shortcut/shortcut.qrc b/HomeScreenNG/qml/images/Shortcut/shortcut.qrc
new file mode 100644
index 0000000..fe31006
--- /dev/null
+++ b/HomeScreenNG/qml/images/Shortcut/shortcut.qrc
@@ -0,0 +1,12 @@
+<RCC>
+ <qresource prefix="/images/Shortcut">
+ <file>HMI_Shortcut_Home_Active-01.png</file>
+ <file>HMI_Shortcut_Home-01.png</file>
+ <file>HMI_Shortcut_HVAC_Active-01.png</file>
+ <file>HMI_Shortcut_HVAC-01.png</file>
+ <file>HMI_Shortcut_Multimedia_Active-01.png</file>
+ <file>HMI_Shortcut_Multimedia-01.png</file>
+ <file>HMI_Shortcut_Navigation_Active-01.png</file>
+ <file>HMI_Shortcut_Navigation-01.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png
new file mode 100644
index 0000000..10bd5a5
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_Inactive-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png
new file mode 100644
index 0000000..1ff96e1
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Bluetooth_On-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png
new file mode 100644
index 0000000..44ef700
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_1Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png
new file mode 100644
index 0000000..fe4e776
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_2Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png
new file mode 100644
index 0000000..892c6ec
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_3Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png
new file mode 100644
index 0000000..f4f033b
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_4Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png
new file mode 100644
index 0000000..18070b9
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_Full-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png
new file mode 100644
index 0000000..1b77207
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Signal_NoBars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png
new file mode 100644
index 0000000..c72461f
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_1Bar-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png
new file mode 100644
index 0000000..448dd36
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_2Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png
new file mode 100644
index 0000000..3e407ad
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_3Bars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png
new file mode 100644
index 0000000..6f95e97
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_Full-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png
new file mode 100644
index 0000000..07f4f09
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/HMI_Status_Wifi_NoBars-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Status/status.qrc b/HomeScreenNG/qml/images/Status/status.qrc
new file mode 100644
index 0000000..d29c91a
--- /dev/null
+++ b/HomeScreenNG/qml/images/Status/status.qrc
@@ -0,0 +1,17 @@
+<RCC>
+ <qresource prefix="/images/Status">
+ <file>HMI_Status_Wifi_NoBars-01.png</file>
+ <file>HMI_Status_Bluetooth_Inactive-01.png</file>
+ <file>HMI_Status_Bluetooth_On-01.png</file>
+ <file>HMI_Status_Signal_1Bars-01.png</file>
+ <file>HMI_Status_Signal_2Bars-01.png</file>
+ <file>HMI_Status_Signal_3Bars-01.png</file>
+ <file>HMI_Status_Signal_4Bars-01.png</file>
+ <file>HMI_Status_Signal_Full-01.png</file>
+ <file>HMI_Status_Signal_NoBars-01.png</file>
+ <file>HMI_Status_Wifi_1Bar-01.png</file>
+ <file>HMI_Status_Wifi_2Bars-01.png</file>
+ <file>HMI_Status_Wifi_3Bars-01.png</file>
+ <file>HMI_Status_Wifi_Full-01.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png b/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png
new file mode 100644
index 0000000..cf9ec4e
--- /dev/null
+++ b/HomeScreenNG/qml/images/TopSection_NoText_NoIcons-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Utility_Logo_Background-01.png b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png
new file mode 100644
index 0000000..21a602d
--- /dev/null
+++ b/HomeScreenNG/qml/images/Utility_Logo_Background-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png
new file mode 100644
index 0000000..6519a2d
--- /dev/null
+++ b/HomeScreenNG/qml/images/Utility_Logo_Colour-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Utility_Music_Background-01.png b/HomeScreenNG/qml/images/Utility_Music_Background-01.png
new file mode 100644
index 0000000..c3e9f91
--- /dev/null
+++ b/HomeScreenNG/qml/images/Utility_Music_Background-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Utility_Radio_Background-01.png b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png
new file mode 100644
index 0000000..b755843
--- /dev/null
+++ b/HomeScreenNG/qml/images/Utility_Radio_Background-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png
new file mode 100644
index 0000000..f5f8b19
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_ALL-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png
new file mode 100644
index 0000000..3603a55
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Cloudy-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png
new file mode 100644
index 0000000..8fe1e18
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Moon-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png
new file mode 100644
index 0000000..09cd84f
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_PartiallyCloudy-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png
new file mode 100644
index 0000000..125b413
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Rain-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png
new file mode 100644
index 0000000..d0a9520
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Snow-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png
new file mode 100644
index 0000000..ee3a744
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Sun-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png
new file mode 100644
index 0000000..f6959f4
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/WeatherIcons_Thunderstorm-01.png
Binary files differ
diff --git a/HomeScreenNG/qml/images/Weather/weather.qrc b/HomeScreenNG/qml/images/Weather/weather.qrc
new file mode 100644
index 0000000..2668fec
--- /dev/null
+++ b/HomeScreenNG/qml/images/Weather/weather.qrc
@@ -0,0 +1,12 @@
+<RCC>
+ <qresource prefix="/images/Weather">
+ <file>WeatherIcons_ALL-01.png</file>
+ <file>WeatherIcons_Cloudy-01.png</file>
+ <file>WeatherIcons_Moon-01.png</file>
+ <file>WeatherIcons_PartiallyCloudy-01.png</file>
+ <file>WeatherIcons_Rain-01.png</file>
+ <file>WeatherIcons_Snow-01.png</file>
+ <file>WeatherIcons_Sun-01.png</file>
+ <file>WeatherIcons_Thunderstorm-01.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/images/images.qrc b/HomeScreenNG/qml/images/images.qrc
new file mode 100644
index 0000000..2d8e902
--- /dev/null
+++ b/HomeScreenNG/qml/images/images.qrc
@@ -0,0 +1,10 @@
+<RCC>
+ <qresource prefix="/images">
+ <file>TopSection_NoText_NoIcons-01.png</file>
+ <file>Utility_Logo_Background-01.png</file>
+ <file>Utility_Logo_Colour-01.png</file>
+ <file>Utility_Music_Background-01.png</file>
+ <file>Utility_Radio_Background-01.png</file>
+ <file>AGL_HMI_Background_NoCar-01.png</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/qml/main.qml b/HomeScreenNG/qml/main.qml
new file mode 100644
index 0000000..e9774ae
--- /dev/null
+++ b/HomeScreenNG/qml/main.qml
@@ -0,0 +1,44 @@
+import QtQuick 2.7
+import QtQuick.Window 2.2
+import QtQuick.Layouts 1.1
+
+Window {
+ visible: true
+ flags: Qt.FramelessWindowHint
+ width: container.width * container.scale
+ height: container.height * container.scale
+ title: 'HomeScreen'
+
+ Image {
+ id: container
+ anchors.centerIn: parent
+ width: 1080
+ height: 1920
+ scale: 0.7
+ source: './images/AGL_HMI_Background_NoCar-01.png'
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 0
+ TopArea {
+ id: topArea
+ Layout.fillWidth: true
+ Layout.preferredHeight: 218
+ }
+
+ Item {
+ id: applicationArea
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 1920 - 218 - 215
+ }
+
+ MediaArea {
+ id: mediaArea
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: 215
+ }
+ }
+ }
+}
diff --git a/HomeScreenNG/qml/qml.qrc b/HomeScreenNG/qml/qml.qrc
new file mode 100644
index 0000000..a916b03
--- /dev/null
+++ b/HomeScreenNG/qml/qml.qrc
@@ -0,0 +1,13 @@
+<RCC>
+ <qresource prefix="/">
+ <file>main.qml</file>
+ <file>MediaArea.qml</file>
+ <file>MediaAreaBlank.qml</file>
+ <file>MediaAreaMusic.qml</file>
+ <file>MediaAreaRadio.qml</file>
+ <file>ShortcutArea.qml</file>
+ <file>ShortcutIcon.qml</file>
+ <file>StatusArea.qml</file>
+ <file>TopArea.qml</file>
+ </qresource>
+</RCC>
diff --git a/HomeScreenNG/statusbarmodel.cpp b/HomeScreenNG/statusbarmodel.cpp
new file mode 100644
index 0000000..b844525
--- /dev/null
+++ b/HomeScreenNG/statusbarmodel.cpp
@@ -0,0 +1,76 @@
+#include "statusbarmodel.h"
+#include "statusbarserver.h"
+
+#include <QtDBus/QDBusConnection>
+
+class StatusBarModel::Private
+{
+public:
+ Private(StatusBarModel *parent);
+
+private:
+ StatusBarModel *q;
+public:
+ StatusBarServer server;
+ QString iconList[StatusBarServer::SupportedCount];
+};
+
+StatusBarModel::Private::Private(StatusBarModel *parent)
+ : q(parent)
+{
+ QDBusConnection dbus = QDBusConnection::sessionBus();
+ dbus.registerObject("/StatusBar", &server);
+ dbus.registerService("org.agl.homescreen");
+ connect(&server, &StatusBarServer::statusIconChanged, [&](int placeholderIndex, const QString &icon) {
+ if (placeholderIndex < 0 || StatusBarServer::SupportedCount <= placeholderIndex) return;
+ if (iconList[placeholderIndex] == icon) return;
+ iconList[placeholderIndex] = icon;
+ emit q->dataChanged(q->index(placeholderIndex), q->index(placeholderIndex));
+ });
+ for (int i = 0; i < StatusBarServer::SupportedCount; i++) {
+ iconList[i] = server.getStatusIcon(i);
+ }
+}
+
+StatusBarModel::StatusBarModel(QObject *parent)
+ : QAbstractListModel(parent)
+ , d(new Private(this))
+{
+}
+
+StatusBarModel::~StatusBarModel()
+{
+ delete d;
+}
+
+int StatusBarModel::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
+
+ return StatusBarServer::SupportedCount;
+}
+
+QVariant StatusBarModel::data(const QModelIndex &index, int role) const
+{
+ QVariant ret;
+ if (!index.isValid())
+ return ret;
+
+ switch (role) {
+ case Qt::DisplayRole:
+ ret = d->iconList[index.row()];
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+}
+
+QHash<int, QByteArray> StatusBarModel::roleNames() const
+{
+ QHash<int, QByteArray> roles;
+ roles[Qt::DisplayRole] = "icon";
+ return roles;
+}
diff --git a/HomeScreenNG/statusbarmodel.h b/HomeScreenNG/statusbarmodel.h
new file mode 100644
index 0000000..743e816
--- /dev/null
+++ b/HomeScreenNG/statusbarmodel.h
@@ -0,0 +1,23 @@
+#ifndef STATUSBARMODEL_H
+#define STATUSBARMODEL_H
+
+#include <QtCore/QAbstractListModel>
+
+class StatusBarModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ explicit StatusBarModel(QObject *parent = nullptr);
+ ~StatusBarModel();
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+ QHash<int, QByteArray> roleNames() const override;
+
+private:
+ class Private;
+ Private *d;
+};
+
+#endif // STATUSBARMODEL_H
diff --git a/HomeScreenNG/statusbarserver.cpp b/HomeScreenNG/statusbarserver.cpp
new file mode 100644
index 0000000..1b1123c
--- /dev/null
+++ b/HomeScreenNG/statusbarserver.cpp
@@ -0,0 +1,71 @@
+#include "statusbarserver.h"
+#include "statusbar_adaptor.h"
+
+class StatusBarServer::Private
+{
+public:
+ Private(StatusBarServer *parent);
+ QString texts[SupportedCount];
+ QString icons[SupportedCount];
+ StatusbarAdaptor adaptor;
+};
+
+StatusBarServer::Private::Private(StatusBarServer *parent)
+ : adaptor(parent)
+{
+ icons[0] = QStringLiteral("./images/Status/HMI_Status_Wifi_Full-01.png");
+ icons[1] = QStringLiteral("./images/Status/HMI_Status_Bluetooth_Inactive-01.png");
+ icons[2] = QStringLiteral("./images/Status/HMI_Status_Signal_Full-01.png");
+}
+
+StatusBarServer::StatusBarServer(QObject *parent)
+ : QObject(parent)
+ , d(new Private(this))
+{
+}
+
+StatusBarServer::~StatusBarServer()
+{
+ delete d;
+}
+
+QList<int> StatusBarServer::getAvailablePlaceholders() const
+{
+ QList<int> ret;
+ return ret;
+}
+
+QString StatusBarServer::getStatusIcon(int placeholderIndex) const
+{
+ QString ret;
+ if (-1 < placeholderIndex && placeholderIndex < SupportedCount)
+ ret = d->icons[placeholderIndex];
+ return ret;
+}
+
+void StatusBarServer::setStatusIcon(int placeholderIndex, const QString &icon)
+{
+ if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+ if (d->icons[placeholderIndex] == icon) return;
+ d->icons[placeholderIndex] = icon;
+ emit statusIconChanged(placeholderIndex, icon);
+ }
+}
+
+QString StatusBarServer::getStatusText(int placeholderIndex) const
+{
+ QString ret;
+ if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+ ret = d->texts[placeholderIndex];
+ }
+ return ret;
+}
+
+void StatusBarServer::setStatusText(int placeholderIndex, const QString &text)
+{
+ if (-1 < placeholderIndex && placeholderIndex < SupportedCount) {
+ if (d->texts[placeholderIndex] == text) return;
+ d->texts[placeholderIndex] = text;
+ emit statusTextChanged(placeholderIndex, text);
+ }
+}
diff --git a/HomeScreenNG/statusbarserver.h b/HomeScreenNG/statusbarserver.h
new file mode 100644
index 0000000..b9c8716
--- /dev/null
+++ b/HomeScreenNG/statusbarserver.h
@@ -0,0 +1,33 @@
+#ifndef STATUSBARSERVER_H
+#define STATUSBARSERVER_H
+
+#include <QtCore/QObject>
+
+class StatusBarServer : public QObject
+{
+ Q_OBJECT
+public:
+ enum {
+ SupportedCount = 3,
+ };
+ explicit StatusBarServer(QObject *parent = nullptr);
+ ~StatusBarServer();
+
+ Q_INVOKABLE QList<int> getAvailablePlaceholders() const;
+ Q_INVOKABLE QString getStatusIcon(int placeholderIndex) const;
+ Q_INVOKABLE QString getStatusText(int placeholderIndex) const;
+
+public slots:
+ void setStatusIcon(int placeholderIndex, const QString &icon);
+ void setStatusText(int placeholderIndex, const QString &text);
+
+signals:
+ void statusIconChanged(int placeholderIndex, const QString &icon);
+ void statusTextChanged(int placeholderIndex, const QString &text);
+
+private:
+ class Private;
+ Private *d;
+};
+
+#endif // STATUSBARSERVER_H