diff options
Diffstat (limited to 'app/qml/pebble.qml')
| -rw-r--r-- | app/qml/pebble.qml | 88 |
1 files changed, 57 insertions, 31 deletions
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() + } + } } |
