Change bluetooth status using agl-service-bluetooth
[apps/homescreen.git] / homescreen / qml / StatusArea.qml
index 3fc3079..24d2b18 100644 (file)
@@ -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.
@@ -17,7 +18,6 @@
 
 import QtQuick 2.2
 import QtQuick.Layouts 1.1
-import QtQuick.Controls 1.0
 import HomeScreen 1.0
 
 Item {
@@ -31,6 +31,30 @@ Item {
         onTriggered: root.now = new Date
     }
 
+    Connections {
+        target: weather
+
+        onConditionChanged: {
+            var icon = ''
+
+            if (condition.indexOf("clouds") != -1) {
+                icon = "WeatherIcons_Cloudy-01.png"
+            } else if (condition.indexOf("thunderstorm") != -1) {
+                icon = "WeatherIcons_Thunderstorm-01.png"
+            } else if (condition.indexOf("snow") != -1) {
+                icon = "WeatherIcons_Snow-01.png"
+            } else if (condition.indexOf("rain") != -1) {
+                icon = "WeatherIcons_Rain-01.png"
+            }
+
+            condition_item.source = icon ? './images/Weather/' + icon : ''
+        }
+
+        onTemperatureChanged: {
+            temperature_item.text = temperature.split(".")[0] + '°F'
+        }
+    }
+
     RowLayout {
         anchors.fill: parent
         spacing: 0
@@ -74,9 +98,11 @@ Item {
                     Layout.fillHeight: true
                     Layout.preferredHeight: 20
                     Image {
+                        id: condition_item
                         source: './images/Weather/WeatherIcons_Rain-01.png'
                     }
                     Text {
+                        id: temperature_item
                         text: '64°F'
                         color: 'white'
                         font.family: 'Helvetica'
@@ -91,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 {