summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2014-07-07 00:59:11 +0200
committerTomasz Sterna <tomek@xiaoka.com>2014-07-09 01:57:32 +0200
commit164b95968d67f2363a270540d00a028741e58976 (patch)
tree7e7e200234c0eedf60fcf9da15ccc300b3dcf222 /app
parent54a34201f993c3dc5bff0347349e1727febacf97 (diff)
Implemented ManagerPage and WatchPage
Diffstat (limited to 'app')
-rw-r--r--app/app.pro1
-rw-r--r--app/qml/cover/CoverPage.qml17
-rw-r--r--app/qml/pages/ManagerPage.qml132
-rw-r--r--app/qml/pages/WatchPage.qml81
-rw-r--r--app/qml/pebble.qml7
5 files changed, 157 insertions, 81 deletions
diff --git a/app/app.pro b/app/app.pro
index f09a142..40a4a1d 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -14,6 +14,7 @@ QMAKE_CXXFLAGS += -std=c++0x
OTHER_FILES += \
qml/cover/CoverPage.qml \
+ qml/pages/ManagerPage.qml \
qml/pages/WatchPage.qml \
qml/pebble.qml \
pebble.desktop \
diff --git a/app/qml/cover/CoverPage.qml b/app/qml/cover/CoverPage.qml
index 8b9942a..7822b5c 100644
--- a/app/qml/cover/CoverPage.qml
+++ b/app/qml/cover/CoverPage.qml
@@ -36,12 +36,25 @@ CoverBackground {
Label {
id: label
anchors.centerIn: parent
- text: watchPage.name ? watchPage.name : "Pebble"
+ font.pointSize: Theme.fontSizeLarge
+ text: pebbled.name ? pebbled.name : "Pebble"
}
Label {
anchors.top: label.bottom
anchors.horizontalCenter: parent.horizontalCenter
font.pointSize: Theme.fontSizeSmall
- text: watchPage.connected ? "connected" : "disconnected"
+ text: pebbled.connected ? qsTr("connected") : qsTr("disconnected")
+ }
+
+ CoverActionList {
+ id: coverAction
+
+ CoverAction {
+ iconSource: pebbled.connected ? "image://theme/icon-cover-transfers" : "image://theme/icon-cover-sync"
+ onTriggered: {
+ // FIXME: implement
+ console.log('reconnect');
+ }
+ }
}
}
diff --git a/app/qml/pages/ManagerPage.qml b/app/qml/pages/ManagerPage.qml
new file mode 100644
index 0000000..c042adc
--- /dev/null
+++ b/app/qml/pages/ManagerPage.qml
@@ -0,0 +1,132 @@
+/*
+ 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
+
+Page {
+ id: page
+
+ SilicaFlickable {
+ anchors.fill: parent
+
+ contentHeight: column.height
+
+ Column {
+ id: column
+
+ width: page.width
+ spacing: Theme.paddingLarge
+ PageHeader {
+ title: qsTr("Pebble Manager")
+ }
+
+ Label {
+ color: Theme.highlightColor
+ font.pixelSize: Theme.fontSizeSmall
+ visible: !pebbled.connected
+ text: qsTr("Waiting for watch...\nIf it can't be found plase check it's available and paired in Bluetooth settings.")
+ wrapMode: Text.Wrap
+ anchors {
+ left: parent.left
+ right: parent.right
+ margins: Theme.paddingLarge
+ }
+
+ }
+ ListItem {
+ visible: pebbled.connected
+ Label {
+ text: pebbled.name
+ truncationMode: TruncationMode.Fade
+ anchors {
+ left: parent.left
+ right: parent.right
+ margins: Theme.paddingLarge
+ }
+ }
+ onClicked: pageStack.push(Qt.resolvedUrl("WatchPage.qml"))
+ }
+
+ Label {
+ text: qsTr("Service")
+ font.family: Theme.fontFamilyHeading
+ color: Theme.highlightColor
+ anchors.right: parent.right
+ anchors.rightMargin: Theme.paddingMedium
+ }
+ TextSwitch {
+ text: qsTr("Enabled")
+ description: pebbled.enabled ? qsTr("Automatic startup") : qsTr("Manual startup")
+ checked: pebbled.enabled
+ automaticCheck: false
+ onClicked: {
+ console.log('pebbled.(dis|en)able()');
+ }
+ }
+ TextSwitch {
+ text: qsTr("Active")
+ description: pebbled.active ? qsTr("Running") : qsTr("Dead")
+ checked: pebbled.active
+ automaticCheck: false
+ onClicked: {
+ console.log('pebbled.start|stop()');
+ }
+ }
+ TextSwitch {
+ text: qsTr("Connection")
+ description: pebbled.connected ? qsTr("Connected"): qsTr("Disconnected")
+ checked: pebbled.connected
+ automaticCheck: false
+ onClicked: {
+ console.log('pebbled.(dis)connect()');
+ }
+ }
+
+ Label {
+ text: qsTr("Settings")
+ font.family: Theme.fontFamilyHeading
+ color: Theme.highlightColor
+ anchors.right: parent.right
+ anchors.rightMargin: Theme.paddingMedium
+ }
+ TextSwitch {
+ text: qsTr("Silent when connected")
+ checked: false
+ automaticCheck: false
+ onClicked: {
+ console.log('settings.silentConnected');
+ }
+ }
+ }
+ }
+}
diff --git a/app/qml/pages/WatchPage.qml b/app/qml/pages/WatchPage.qml
index 5848293..efb12a0 100644
--- a/app/qml/pages/WatchPage.qml
+++ b/app/qml/pages/WatchPage.qml
@@ -32,45 +32,10 @@
import QtQuick 2.0
import QtQml 2.1
import Sailfish.Silica 1.0
-import watch 0.1
-import org.nemomobile.dbus 1.0
Page {
id: page
- property string name
- property string address
- property bool connected: false
-
- onNameChanged: console.log(name)
- onAddressChanged: console.log(address)
- onConnectedChanged: console.log(connected?"connected":"disconnected")
-
- WatchConnector {
- id: watchConnector
- }
-
- DBusInterface {
- id: pebbled
- destination: "org.pebbled"
- path: "/"
- iface: "org.pebbled"
- signalsEnabled: true
-
- function pebbleChanged() {
- page.name = getProperty("name");
- page.address = getProperty("address");
- }
- function connectedChanged() {
- page.connected = getProperty("connected");
- }
-
- Component.onCompleted: {
- pebbled.pebbleChanged();
- pebbled.connectedChanged();
- }
- }
-
SilicaFlickable {
anchors.fill: parent
@@ -82,53 +47,13 @@ Page {
width: page.width
spacing: Theme.paddingLarge
PageHeader {
- title: "Pebble Manager"
- }
- Label {
- visible: !page.connected
- text: "Waiting for watch...\nIf it can't be found plase\ncheck it's available and\npaired in Bluetooth settings."
- width: column.width
- }
- ListItem {
- visible: !!page.name
- Label {
- text: page.name
- }
- onVisibleChanged: {
- if (parent.visible) {
- // Connect with the device
- watchConnector.deviceConnect(page.name, page.address);
- }
- }
+ title: pebbled.name
}
+
Button {
text: "Ping"
onClicked: {
- watchConnector.ping(66)
- }
- }
- Button {
- text: "Send SMS"
- onClicked: {
- watchConnector.sendSMSNotification("Dummy", "Hello world!")
- }
- }
- Button {
- text: "Ring"
- onClicked: {
- watchConnector.ring("+1234567890", "Test user")
- }
- }
- Button {
- text: "Start call"
- onClicked: {
- watchConnector.startPhoneCall()
- }
- }
- Button {
- text: "End call"
- onClicked: {
- watchConnector.endPhoneCall()
+ pebbled.ping(66)
}
}
}
diff --git a/app/qml/pebble.qml b/app/qml/pebble.qml
index c0085f1..da3bfb5 100644
--- a/app/qml/pebble.qml
+++ b/app/qml/pebble.qml
@@ -32,9 +32,14 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
import "pages"
+import org.pebbled 0.1
ApplicationWindow
{
- initialPage: WatchPage { id: watchPage }
+ initialPage: Component { ManagerPage { } }
cover: Qt.resolvedUrl("cover/CoverPage.qml")
+
+ PebbledInterface {
+ id: pebbled
+ }
}