summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJouni Roivas <jroivas@iki.fi>2014-03-02 12:09:30 +0200
committerJouni Roivas <jroivas@iki.fi>2014-03-02 12:09:30 +0200
commit76415d0ed091115ca3ba902085526b0f7a288aca (patch)
tree5961dc530455bb40a6fe6cbf74f044e3e6e7384d
parentc89b4e0cce457c6b96f44e23b66d6ab0254f0eac (diff)
Make SMS/message receive && notifications work
-rw-r--r--qml/pages/WatchPage.qml70
-rw-r--r--src/watchconnector.cpp2
-rw-r--r--waterwatch.pngbin2965 -> 1725 bytes
3 files changed, 51 insertions, 21 deletions
diff --git a/qml/pages/WatchPage.qml b/qml/pages/WatchPage.qml
index 7cf77c4..623c47e 100644
--- a/qml/pages/WatchPage.qml
+++ b/qml/pages/WatchPage.qml
@@ -156,27 +156,57 @@ Page {
}
}
- // Handle SMS
- ClassZeroSMSModel {
- id: classZeroSMS
- property Component dialogComponent
-
- onNewMessage: {
- console.log("New message: " + text)
- /*
- if (dialogComponent === null) {
- dialogComponent = Qt.createComponent("pages/ClassZeroSMS.qml")
- if (dialogComponent.status === Component.Error)
- console.log("ClassZeroSMS: ", dialogComponent.errorString())
- }
-
- var dialog = dialogComponent.createObject(mainWindow, { "messageToken": messageToken, "text": text })
- dialog.visibleChanged.connect(function() { if (!dialog.visible) { dialog.destroy() } })
- dialog.activate()
- */
-
- classZeroSMS.clear()
+ // Handle SMS (and other messages) via groups
+ CommGroupManager {
+ id: groupManager
+ useBackgroundThread: true
+ }
+ CommContactGroupModel {
+ id: groupModel
+ manager: groupManager
+
+ property var unreadGroups: [ ]
+
+ onContactGroupCreated: {
+ if (group.unreadMessages > 0) {
+ unreadGroups.push(group)
+ unreadSignalTimer.start()
+ }
}
+
+ onContactGroupChanged: {
+ var index = unreadGroups.indexOf(group)
+ if (group.unreadMessages > 0 && index < 0) {
+ unreadGroups.push(group)
+ unreadSignalTimer.start()
+ } else if (group.unreadMessages === 0 && index >= 0) {
+ unreadGroups.splice(index, 1)
+ unreadSignalTimer.start()
+ }
+ }
+
+ onContactGroupRemoved: {
+ var index = unreadGroups.indexOf(group)
+ if (index >= 0) {
+ unreadGroups.splice(index, 1)
+ unreadSignalTimer.start()
+ }
+ }
+
+ onUnreadGroupsChanged: {
+ var group = groupModel.unreadGroups[0];
+ if (group != undefined) {
+ var name = group.contactNames.length ? group.contactNames[0] : group.groups[0].remoteUids[0];
+ console.log("Msg: " + group.lastMessageText);
+ console.log("From: " + name);
+ watchConnector.sendSMSNotification(name?name:"Unknown", group.lastMessageText)
+ }
+ }
+ }
+ Timer {
+ id: unreadSignalTimer
+ interval: 1
+ onTriggered: groupModel.unreadGroupsChanged()
}
diff --git a/src/watchconnector.cpp b/src/watchconnector.cpp
index ab27b71..c58e867 100644
--- a/src/watchconnector.cpp
+++ b/src/watchconnector.cpp
@@ -294,7 +294,7 @@ void WatchConnector::endPhoneCall(unsigned int cookie)
phoneControl(callEND, cookie, QStringList());
}
-void registerWatchConnector()
+void watch::registerWatchConnector()
{
qmlRegisterType<WatchConnector>("watch", 0, 1, "WatchConnector");
}
diff --git a/waterwatch.png b/waterwatch.png
index 4c883a0..f4aaeeb 100644
--- a/waterwatch.png
+++ b/waterwatch.png
Binary files differ