diff options
| author | Tomasz Sterna <tomek@xiaoka.com> | 2014-07-28 11:04:12 +0200 |
|---|---|---|
| committer | Tomasz Sterna <tomek@xiaoka.com> | 2014-07-28 11:04:12 +0200 |
| commit | 0ead71b6a9b5c49a4bdc055ce45bc8531b538a20 (patch) | |
| tree | 21e92503bf004773625c6208f08a1c6b93182b96 /daemon/manager.cpp | |
| parent | 05502a35e1b1bd10a4ba81d2974d5c41e6a1ef35 (diff) | |
| parent | 5f3e8fd022e29d3014b4e0888f310a5ac512b467 (diff) | |
Merge pull request #12 from smurfy/notifications
Notifications via freedesktop.org interface snooping
Diffstat (limited to 'daemon/manager.cpp')
| -rw-r--r-- | daemon/manager.cpp | 64 |
1 files changed, 30 insertions, 34 deletions
diff --git a/daemon/manager.cpp b/daemon/manager.cpp index e97da41..bdda77b 100644 --- a/daemon/manager.cpp +++ b/daemon/manager.cpp @@ -5,10 +5,12 @@ #include <QtContacts/QContact> #include <QtContacts/QContactPhoneNumber> -Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice, Settings *settings) : - QObject(0), watch(watch), dbus(dbus), voice(voice), commands(new WatchCommands(watch, this)), +Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice, NotificationManager *notifications, Settings *settings) : + QObject(0), watch(watch), dbus(dbus), voice(voice), notifications(notifications), commands(new WatchCommands(watch, this)), settings(settings), notification(MNotification::DeviceEvent) { + notifications->setSettings(settings);; + connect(settings, SIGNAL(valueChanged(QString)), SLOT(onSettingChanged(const QString&))); connect(settings, SIGNAL(valuesChanged()), SLOT(onSettingsChanged())); //connect(settings, SIGNAL(silentWhenConnectedChanged(bool)), SLOT(onSilentWhenConnectedChanged(bool))); @@ -21,14 +23,16 @@ 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(notifications, SIGNAL(twitterNotify(const QString &,const QString &)), SLOT(onTwitterNotify(const QString &,const QString &))); + connect(notifications, SIGNAL(facebookNotify(const QString &,const QString &)), SLOT(onFacebookNotify(const QString &,const QString &))); connect(watch, SIGNAL(messageDecoded(uint,QByteArray)), commands, SLOT(processMessage(uint,QByteArray))); connect(commands, SIGNAL(hangup()), SLOT(hangupAll())); @@ -65,7 +69,6 @@ Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallMan void Manager::onSettingChanged(const QString &key) { logger()->debug() << __FUNCTION__ << key << ":" << settings->property(qPrintable(key)); - if (key == "silentWhenConnected") applyProfile(); } void Manager::onSettingsChanged() @@ -188,45 +191,38 @@ 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; - } + watch->sendSMSNotification(sender, data); +} - connect(group, SIGNAL(unreadMessagesChanged()), SLOT(onUnreadMessagesChanged())); - if (group->unreadMessages()) processUnreadMessages(group); +void Manager::onTwitterNotify(const QString &sender, const QString &data) +{ + watch->sendTwitterNotification(sender, data); } -void Manager::onUnreadMessagesChanged() +void Manager::onFacebookNotify(const QString &sender, const QString &data) { - GroupObject *group = qobject_cast<GroupObject*>(sender()); - if (!group) { - logger()->debug() << "Got unreadMessagesChanged for null group"; - return; - } - processUnreadMessages(group); + watch->sendFacebookNotification(sender, data); } -void Manager::processUnreadMessages(GroupObject *group) + +void Manager::onEmailNotify(const QString &sender, const QString &data,const QString &subject) { - 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"; + watch->sendEmailNotification(sender, data, subject); +} + +void Manager::hangupAll() +{ + foreach (VoiceCallHandler* handler, voice->voiceCalls()) { + handler->hangup(); } } |
