summaryrefslogtreecommitdiff
path: root/qml
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 /qml
parentc89b4e0cce457c6b96f44e23b66d6ab0254f0eac (diff)
Make SMS/message receive && notifications work
Diffstat (limited to 'qml')
-rw-r--r--qml/pages/WatchPage.qml70
1 files changed, 50 insertions, 20 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()
}