summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzheng_wenlong <wenlong_zheng@nexty-ele.com>2018-08-01 11:07:16 +0900
committerzheng_wenlong <wenlong_zheng@nexty-ele.com>2018-08-01 11:07:41 +0900
commit564c3c80884c0e9064a19e31655fd80f92eb594a (patch)
treeacd0cd642475d97b850ce53a0e018fccd894c089
parenta8b94699ae7ec155729fcccda2be4f22328ca790 (diff)
Change bluetooth status using agl-service-bluetooth
Use libqtappfw's bluetooth to connection with agl-service-bluetooth. Instead of using dbus. Change-Id: I87610e0037b586fe08db86325b03f767dbe36537 Signed-off-by: zheng_wenlong <wenlong_zheng@nexty-ele.com>
-rw-r--r--homescreen/qml/StatusArea.qml40
-rw-r--r--homescreen/src/main.cpp4
-rw-r--r--homescreen/src/statusbarmodel.cpp10
-rw-r--r--homescreen/src/statusbarserver.h3
-rw-r--r--package/config.xml1
5 files changed, 55 insertions, 3 deletions
diff --git a/homescreen/qml/StatusArea.qml b/homescreen/qml/StatusArea.qml
index ab14a23..24d2b18 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 {}
delegate: Image {
diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp
index 19bb0d3..704bb9a 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 5438e89..bb44171 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.
@@ -64,7 +65,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
@@ -75,7 +77,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 036b9ba..1403c8f 100644
--- a/package/config.xml
+++ b/package/config.xml
@@ -9,6 +9,7 @@
<feature name="urn:AGL:widget:required-api">
<param name="homescreen" 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">