diff options
| author | Jouni Roivas <jroivas@iki.fi> | 2014-03-02 12:09:30 +0200 |
|---|---|---|
| committer | Jouni Roivas <jroivas@iki.fi> | 2014-03-02 12:09:30 +0200 |
| commit | 76415d0ed091115ca3ba902085526b0f7a288aca (patch) | |
| tree | 5961dc530455bb40a6fe6cbf74f044e3e6e7384d | |
| parent | c89b4e0cce457c6b96f44e23b66d6ab0254f0eac (diff) | |
Make SMS/message receive && notifications work
| -rw-r--r-- | qml/pages/WatchPage.qml | 70 | ||||
| -rw-r--r-- | src/watchconnector.cpp | 2 | ||||
| -rw-r--r-- | waterwatch.png | bin | 2965 -> 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 Binary files differindex 4c883a0..f4aaeeb 100644 --- a/waterwatch.png +++ b/waterwatch.png |
