diff options
| author | Tomasz Sterna <tomek@xiaoka.com> | 2014-07-14 16:59:07 +0200 |
|---|---|---|
| committer | Tomasz Sterna <tomek@xiaoka.com> | 2014-07-14 16:59:07 +0200 |
| commit | 19da5c6e7c7ba4ff577d30e022f66431a8964968 (patch) | |
| tree | 8227bed64b6cbd7088102c762285e64a30418d56 /daemon/manager.cpp | |
| parent | 9160f139d399bce61c67a4ebc31dfdf1cc5d3e62 (diff) | |
| parent | c358544734ae26770e91d56a92dcd8e22da71be5 (diff) | |
Merge branch 'smurfy-notifications'
Diffstat (limited to 'daemon/manager.cpp')
| -rw-r--r-- | daemon/manager.cpp | 58 |
1 files changed, 23 insertions, 35 deletions
diff --git a/daemon/manager.cpp b/daemon/manager.cpp index 496f6d8..ec0d21b 100644 --- a/daemon/manager.cpp +++ b/daemon/manager.cpp @@ -5,8 +5,8 @@ #include <QtContacts/QContact> #include <QtContacts/QContactPhoneNumber> -Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice) : - QObject(0), watch(watch), dbus(dbus), voice(voice), commands(new WatchCommands(watch, this)), +Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice, NotificationManager *notifications) : + QObject(0), watch(watch), dbus(dbus), voice(voice), notifications(notifications), commands(new WatchCommands(watch, this)), notification(MNotification::DeviceEvent) { // We don't need to handle presence changes, so report them separately and ignore them @@ -17,14 +17,14 @@ Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallMan numberFilter.setDetailType(QContactDetail::TypePhoneNumber, QContactPhoneNumber::FieldNumber); numberFilter.setMatchFlags(QContactFilter::MatchPhoneNumber); - conversations = new GroupManager(this); - connect(conversations, SIGNAL(groupAdded(GroupObject*)), SLOT(onConversationGroupAdded(GroupObject*))); - conversations->getGroups(); + connect(watch, SIGNAL(connectedChanged()), SLOT(onConnectedChanged())); connect(voice, SIGNAL(activeVoiceCallChanged()), SLOT(onActiveVoiceCallChanged())); connect(voice, SIGNAL(error(const QString &)), SLOT(onVoiceError(const QString &))); - connect(watch, SIGNAL(connectedChanged()), SLOT(onConnectedChanged())); + connect(notifications, SIGNAL(error(const QString &)), SLOT(onNotifyError(const QString &))); + connect(notifications, SIGNAL(emailNotify(const QString &,const QString &,const QString &)), SLOT(onEmailNotify(const QString &,const QString &,const QString &))); + connect(notifications, SIGNAL(smsNotify(const QString &,const QString &)), SLOT(onSmsNotify(const QString &,const QString &))); connect(watch, SIGNAL(messageDecoded(uint,uint,QByteArray)), commands, SLOT(processMessage(uint,uint,QByteArray))); connect(commands, SIGNAL(hangup()), SLOT(hangupAll())); @@ -169,45 +169,33 @@ void Manager::onVoiceError(const QString &message) logger()->error() << "Error: " << message; } -void Manager::hangupAll() + +void Manager::onNotifyError(const QString &message) { - foreach (VoiceCallHandler* handler, voice->voiceCalls()) { - handler->hangup(); - } + qWarning() << "Error: " << message; } -void Manager::onConversationGroupAdded(GroupObject *group) +void Manager::onSmsNotify(const QString &sender, const QString &data) { - if (!group) { - logger()->debug() << "Got null conversation group"; - return; - } - - connect(group, SIGNAL(unreadMessagesChanged()), SLOT(onUnreadMessagesChanged())); - if (group->unreadMessages()) processUnreadMessages(group); + logger()->debug() << "SMS:"; + logger()->debug() << sender; + logger()->debug() << data; + watch->sendSMSNotification(sender, data); } - -void Manager::onUnreadMessagesChanged() +void Manager::onEmailNotify(const QString &sender, const QString &data,const QString &subject) { - GroupObject *group = qobject_cast<GroupObject*>(sender()); - if (!group) { - logger()->debug() << "Got unreadMessagesChanged for null group"; - return; - } - processUnreadMessages(group); + logger()->debug() << "Email:"; + logger()->debug() << sender; + logger()->debug() << data; + logger()->debug() << subject; + watch->sendEmailNotification(sender, data, subject); } -void Manager::processUnreadMessages(GroupObject *group) +void Manager::hangupAll() { - if (group->unreadMessages()) { - QString name = group->contactName(); - QString message = group->lastMessageText(); - logger()->debug() << "Msg:" << message; - logger()->debug() << "From:" << name; - watch->sendSMSNotification(name.isEmpty()?"Unknown":name, message); - } else { - logger()->debug() << "Got processUnreadMessages for group with no new messages"; + foreach (VoiceCallHandler* handler, voice->voiceCalls()) { + handler->hangup(); } } |
