diff options
author | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2018-08-01 11:24:08 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@automotivelinux.org> | 2018-08-01 11:24:08 +0000 |
commit | 761c15a8ab0c0b390e1cff84ad5d33d48b99ed98 (patch) | |
tree | aa7d7d8605a6e3e7e9e0e27d54d6c58261b7cb50 | |
parent | 220d40ffb6339edd3bb14d29d32cabfa44293fc9 (diff) | |
parent | 564c3c80884c0e9064a19e31655fd80f92eb594a (diff) |
Merge "Change bluetooth status using agl-service-bluetooth"
-rw-r--r-- | homescreen/qml/StatusArea.qml | 40 | ||||
-rw-r--r-- | homescreen/src/main.cpp | 4 | ||||
-rw-r--r-- | homescreen/src/statusbarmodel.cpp | 10 | ||||
-rw-r--r-- | homescreen/src/statusbarserver.h | 3 | ||||
-rw-r--r-- | package/config.xml | 1 |
5 files changed, 55 insertions, 3 deletions
diff --git a/homescreen/qml/StatusArea.qml b/homescreen/qml/StatusArea.qml index 1a86a57..3f2b280 100644 --- a/homescreen/qml/StatusArea.qml +++ b/homescreen/qml/StatusArea.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017, 2018 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -116,6 +117,45 @@ Item { Layout.fillHeight: true Layout.preferredWidth: 76 spacing: -10 + + Image { + id: bt_icon + Layout.preferredWidth: 77 + Layout.preferredHeight: 73 + source: connStatus ? './images/Status/HMI_Status_Bluetooth_On-01.png' : './images/Status/HMI_Status_Bluetooth_Inactive-01.png' + fillMode: Image.PreserveAspectFit + property string deviceName: "none" + property bool connStatus: false + Connections { + target: bluetooth + + //{"event":"Bluetooth-Manager\/connection","data":{"Status":"connected","Address":"88:BD:45:EC:3A:E6"},"jtype":"afb-event"} + //{"event":"Bluetooth-Manager\/connection","data":{"Status":"disconnected","Address":"88:BD:45:EC:3A:E6"},"jtype":"afb-event"} + onConnectionEvent: { + // console.log("bluetooth connection is:", data.Status) + // console.log("onConnectionEvent bt_icon.deviceName:",bt_icon.deviceName, "bt_icon.connStatus:", bt_icon.connStatus) + if (data.Status == "connected"){ + bt_icon.connStatus = true + } else if (data.Status == "disconnected"){ + bt_icon.connStatus = false + } + } + //{"event":"Bluetooth-Manager\/device_updated","data":{"Address":"88:BD:45:EC:3A:E6","Name":"SG02","Paired":"True","Connected":"True","AVPConnected":"True","Metadata":{"Title":"","Artist":"","Status":"stop} + onDeviceUpdatedEvent: { + // console.log("bluetooth onDeviceUpdatedEvent date is:", data.Name, "Paired: ", data.Paired, "Connected: ", data.Connected) + // console.log("onDeviceUpdatedEvent bt_icon.deviceName:",bt_icon.deviceName, "bt_icon.connStatus:", bt_icon.connStatus) + if ( data.Paired == "True" && data.Connected == "True" ){ + bt_icon.deviceName = data.Name + bt_icon.connStatus = true + } else { + if(bt_icon.deviceName == data.Name) + { + bt_icon.connStatus = false + } + } + } + } + } Repeater { model: StatusBarModel { objectName: "statusBar" } delegate: Image { diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp index 71dc782..39903e8 100644 --- a/homescreen/src/main.cpp +++ b/homescreen/src/main.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * Copyright (c) 2017 TOYOTA MOTOR CORPORATION + * Copyright (c) 2017, 2018 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ #include <qlibwindowmanager.h> #include <weather.h> +#include <bluetooth.h> #include "applicationlauncher.h" #include "statusbarmodel.h" #include "afm_user_daemon_proxy.h" @@ -134,6 +135,7 @@ int main(int argc, char *argv[]) engine.rootContext()->setContextProperty("homescreenHandler", homescreenHandler); engine.rootContext()->setContextProperty("launcher", launcher); engine.rootContext()->setContextProperty("weather", new Weather(bindingAddress)); + engine.rootContext()->setContextProperty("bluetooth", new Bluetooth(bindingAddress)); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); QObject *root = engine.rootObjects().first(); diff --git a/homescreen/src/statusbarmodel.cpp b/homescreen/src/statusbarmodel.cpp index 19767a9..5e63b7d 100644 --- a/homescreen/src/statusbarmodel.cpp +++ b/homescreen/src/statusbarmodel.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2016 The Qt Company Ltd. + * Copyright (C) 2017, 2018 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -110,7 +111,8 @@ int StatusBarModel::rowCount(const QModelIndex &parent) const if (parent.isValid()) return 0; - return StatusBarServer::SupportedCount; + // Delete bluetooth because use agl-service-bluetooth. + return StatusBarServer::SupportedCount - 1; } QVariant StatusBarModel::data(const QModelIndex &index, int role) const @@ -121,7 +123,11 @@ QVariant StatusBarModel::data(const QModelIndex &index, int role) const switch (role) { case Qt::DisplayRole: - ret = d->iconList[index.row()]; + if (index.row() == 0){ + ret = d->iconList[StatusBarServer::StatusWifi]; + }else if (index.row() == 1){ + ret = d->iconList[StatusBarServer::StatusCellular]; + } break; default: break; diff --git a/homescreen/src/statusbarserver.h b/homescreen/src/statusbarserver.h index a5b89e5..dabf6d3 100644 --- a/homescreen/src/statusbarserver.h +++ b/homescreen/src/statusbarserver.h @@ -24,6 +24,9 @@ class StatusBarServer : public QObject Q_OBJECT public: enum { + StatusWifi = 0, + StatusBluetooth = 1, + StatusCellular = 2, SupportedCount = 3, }; explicit StatusBarServer(QObject *parent = NULL); diff --git a/package/config.xml b/package/config.xml index f6a040f..63973a6 100644 --- a/package/config.xml +++ b/package/config.xml @@ -10,6 +10,7 @@ <param name="homescreen" value="ws" /> <param name="network-manager" value="ws" /> <param name="weather" value="ws" /> + <param name="Bluetooth-Manager" value="ws" /> <param name="windowmanager" value="ws" /> </feature> <feature name="urn:AGL:widget:required-permission"> |