diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2011-09-24 20:52:17 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2011-09-24 20:52:17 +0200 |
commit | a1ec50943454ba4674c8c5e5d5dadcdbd414b111 (patch) | |
tree | 163aed51758c98fa6feec35a344aa8b5095c32e5 /ckitcallnotification/ckitcallprovider.cpp | |
parent | cba26597f1c09764d37be0d13863ec5d5c340da0 (diff) | |
download | sowatch-a1ec50943454ba4674c8c5e5d5dadcdbd414b111.tar.gz sowatch-a1ec50943454ba4674c8c5e5d5dadcdbd414b111.zip |
Incoming phone calls working!
Diffstat (limited to 'ckitcallnotification/ckitcallprovider.cpp')
-rw-r--r-- | ckitcallnotification/ckitcallprovider.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/ckitcallnotification/ckitcallprovider.cpp b/ckitcallnotification/ckitcallprovider.cpp index 85f85b2..adcb6d5 100644 --- a/ckitcallnotification/ckitcallprovider.cpp +++ b/ckitcallnotification/ckitcallprovider.cpp @@ -1,16 +1,16 @@ #include <QtCore/QtDebug> #include <contextsubscriber/contextproperty.h> +#include "ckitcallnotification.h" #include "ckitcallprovider.h" using namespace sowatch; CKitCallProvider::CKitCallProvider(QObject *parent) : NotificationProvider(parent), - _inCall(false), - _activeCall(new ContextProperty("/com/nokia/CallUi/ActiveCall")) + _activeCall(new ContextProperty("/com/nokia/CallUi/ActiveCall")), + _notification(0) { connect(_activeCall, SIGNAL(valueChanged()), SLOT(activeCallChanged())); - qDebug() << _activeCall->value(); } CKitCallProvider::~CKitCallProvider() @@ -18,23 +18,25 @@ CKitCallProvider::~CKitCallProvider() } -int CKitCallProvider::getCount(Notification::Type type) -{ - Q_UNUSED(type); - return 0; -} - void CKitCallProvider::activeCallChanged() { QVariantMap info = _activeCall->value().toMap(); int state = info["state"].toInt(); if (state == 0) { - // Incoming call, or update to a incoming call - _inCall = true; - emit incomingCall(info["displayName"].toString()); - } else if (_inCall) { - // Call is no longer incoming - _inCall = false; - emit endIncomingCall(); + QString displayName = info["displayName"].toString(); + // "Incoming call" + if (_notification) { + _notification->changeDisplayName(displayName); + } else { + _notification = new CKitCallNotification(displayName, this); + emit incomingNotification(_notification); + } + } else { + // Call is either answered, dropped, missed, .. + if (_notification) { + _notification->clear(); + _notification->deleteLater(); + _notification = 0; + } } } |