From 4d66f9362b74500b1ceb1850c156cd7aeaf60fc6 Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Wed, 1 Aug 2018 11:09:38 +0900 Subject: Change bluetooth status using agl-service-bluetooth Use libqtappfw's bluetooth to connection with agl-service-bluetooth. Instead of using dbus. Change-Id: Ib0de7cf81ee9e582995a1e4102f8c3b297694328 Signed-off-by: zheng_wenlong --- homescreen/qml/StatusArea.qml | 40 +++++++++++++++++++++++++++++++++++++++ homescreen/src/main.cpp | 4 +++- homescreen/src/statusbarmodel.cpp | 10 ++++++++-- homescreen/src/statusbarserver.h | 3 +++ package/config.xml | 1 + 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 #include +#include #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 1cd5438..4b2a218 100644 --- a/package/config.xml +++ b/package/config.xml @@ -9,6 +9,7 @@ + -- cgit 1.2.3-korg