summaryrefslogtreecommitdiff
path: root/app/qml
diff options
context:
space:
mode:
Diffstat (limited to 'app/qml')
-rw-r--r--app/qml/pages/ManagerPage.qml31
-rw-r--r--app/qml/pages/WatchInfo.qml52
-rw-r--r--app/qml/pebble.qml88
3 files changed, 94 insertions, 77 deletions
diff --git a/app/qml/pages/ManagerPage.qml b/app/qml/pages/ManagerPage.qml
index bfafeb5..894797d 100644
--- a/app/qml/pages/ManagerPage.qml
+++ b/app/qml/pages/ManagerPage.qml
@@ -1,34 +1,3 @@
-/*
- Copyright (C) 2014 Jouni Roivas
- Copyright (C) 2013 Jolla Ltd.
- Contact: Thomas Perl <thomas.perl@jollamobile.com>
- All rights reserved.
-
- You may use this file under the terms of BSD license as follows:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the authors nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
import QtQuick 2.0
import QtQml 2.1
import Sailfish.Silica 1.0
diff --git a/app/qml/pages/WatchInfo.qml b/app/qml/pages/WatchInfo.qml
index 9ae1135..94445fb 100644
--- a/app/qml/pages/WatchInfo.qml
+++ b/app/qml/pages/WatchInfo.qml
@@ -5,19 +5,6 @@ import Sailfish.Silica 1.0
Page {
id: watchInfoPage
- property string firmwareVersion
- property string recoveryVersion
-
- Component.onCompleted: {
- pebbled.info.firmware.forEach(function(firmware){
- if (firmware.recovery) {
- recoveryVersion = firmware.version
- } else {
- firmwareVersion = firmware.version
- }
- })
- }
-
Column {
id: column
width: watchInfoPage.width
@@ -65,7 +52,7 @@ Page {
text: qsTr("Firmware")
}
Label {
- text: firmwareVersion
+ text: app.firmwareVersion
}
Label {
@@ -73,8 +60,43 @@ Page {
text: qsTr("Recovery")
}
Label {
- text: recoveryVersion
+ text: app.recoveryVersion
+ }
+ }
+
+ Label {
+ text: qsTr("Firmware")
+ font.family: Theme.fontFamilyHeading
+ color: Theme.highlightColor
+ anchors.right: parent.right
+ anchors.rightMargin: Theme.paddingMedium
+ }
+ Grid {
+ columns: 2
+ spacing: Theme.paddingMedium
+ anchors {
+ left: parent.left
+ right: parent.right
+ margins: Theme.paddingLarge
+ }
+
+ Label {
+ color: Theme.highlightColor
+ text: qsTr("Latest")
+ }
+ Label {
+ text: app.firmwareLatest || qsTr("unknown")
+ }
+ }
+ Button {
+ visible: app.firmwareLatest && app.firmwareVersion && app.firmwareVersion !== app.firmwareLatest
+ text: qsTr("Upgrade Firmware")
+ anchors {
+ left: parent.left
+ right: parent.right
+ margins: Theme.paddingLarge * 2
}
+ onClicked: pageStack.push(Qt.resolvedUrl("FirmwareUpgrade.qml"))
}
}
}
diff --git a/app/qml/pebble.qml b/app/qml/pebble.qml
index 2e26ebe..a4b8b1f 100644
--- a/app/qml/pebble.qml
+++ b/app/qml/pebble.qml
@@ -1,34 +1,3 @@
-/*
- Copyright (C) 2014 Jouni Roivas
- Copyright (C) 2013 Jolla Ltd.
- Contact: Thomas Perl <thomas.perl@jollamobile.com>
- All rights reserved.
-
- You may use this file under the terms of BSD license as follows:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the authors nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
import QtQuick 2.0
import Sailfish.Silica 1.0
import "pages"
@@ -36,6 +5,63 @@ import org.pebbled 0.1
ApplicationWindow
{
+ id: app
+
+ property string firmwareVersion
+ property string recoveryVersion
+ property string hardwareVersion
+ property string firmwareLatest
+
initialPage: Component { ManagerPage { } }
cover: Qt.resolvedUrl("cover/CoverPage.qml")
+
+ function parseInfo() {
+ if (pebbled.info.firmware && pebbled.info.firmware.length) {
+ pebbled.info.firmware.forEach(function(firmware){
+ if (firmware.recovery) {
+ recoveryVersion = firmware.version
+ } else {
+ firmwareVersion = firmware.version
+ hardwareVersion = firmware.hardware
+ }
+ })
+ } else {
+ firmwareVersion = recoveryVersion = hardwareVersion = ""
+ }
+ }
+
+ function notifyNewFirmware() {
+ firmwareLatest = pebbleFirmware.latest.friendlyVersion || ""
+ if (firmwareLatest && firmwareVersion && firmwareVersion !== firmwareLatest) {
+ pebbled.notifyFirmware(firmwareLatest);
+ }
+ }
+
+ Component.onCompleted: {
+ parseInfo()
+ }
+
+ Connections {
+ target: pebbled
+ onInfoChanged: {
+ parseInfo()
+ }
+ }
+
+ onHardwareVersionChanged: {
+ if (hardwareVersion) {
+ pebbleFirmware.updateLatest(hardwareVersion)
+ }
+ }
+
+ onFirmwareVersionChanged: {
+ notifyNewFirmware()
+ }
+
+ Connections {
+ target: pebbleFirmware
+ onLatestChanged: {
+ notifyNewFirmware()
+ }
+ }
}