From fccb156c7c641041a3ae384a43ffe186a6b212fd Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 5 Aug 2011 17:51:15 +0300 Subject: [PATCH] Update VoiceCallManager to match latest oFono --- lib/ofonovoicecallmanager.cpp | 36 ++++++++++++++++++++++++++---------- lib/ofonovoicecallmanager.h | 11 +++++++---- tests/test_ofonomultipartycall.cpp | 18 +++++++++++++----- 3 files changed, 46 insertions(+), 19 deletions(-) diff --git a/lib/ofonovoicecallmanager.cpp b/lib/ofonovoicecallmanager.cpp index 65209bc..2004950 100644 --- a/lib/ofonovoicecallmanager.cpp +++ b/lib/ofonovoicecallmanager.cpp @@ -115,18 +115,28 @@ void OfonoVoiceCallManager::connectDbusSignals(const QString& path) QDBusConnection::systemBus().disconnect("org.ofono", QString(), m_if->ifname(), "CallAdded", this, SLOT(callAddedChanged(const QDBusObjectPath&, const QVariantMap&))); - QDBusConnection::systemBus().disconnect("org.ofono", QString(), m_if->ifname(), "CallRemoved", this, SLOT(callRemovedChanged(const QDBusObjectPath&))); + QDBusConnection::systemBus().disconnect("org.ofono", QString(), m_if->ifname(), + "BarringActive", this, + SIGNAL(barringActive(const QString&))); + QDBusConnection::systemBus().disconnect("org.ofono", QString(), m_if->ifname(), + "Forwarded", this, + SIGNAL(forwarded(const QString&))); QDBusConnection::systemBus().connect("org.ofono", path, m_if->ifname(), "CallAdded", this, SLOT(callAddedChanged(const QDBusObjectPath&, const QVariantMap&))); - QDBusConnection::systemBus().connect("org.ofono", path, m_if->ifname(), "CallRemoved", this, SLOT(callRemovedChanged(const QDBusObjectPath&))); + QDBusConnection::systemBus().connect("org.ofono", path, m_if->ifname(), + "BarringActive", this, + SIGNAL(barringActive(const QString&))); + QDBusConnection::systemBus().connect("org.ofono", path, m_if->ifname(), + "Forwarded", this, + SIGNAL(forwarded(const QString&))); } void OfonoVoiceCallManager::dial(const QString &number, const QString &callerid_hide) @@ -237,7 +247,7 @@ void OfonoVoiceCallManager::privateChat(const QString &call) arg.append(qVariantFromValue(QDBusObjectPath(call))); request.setArguments(arg); QDBusConnection::systemBus().callWithCallback(request, this, - SLOT(privateChatResp()), + SLOT(privateChatResp(const QList&)), SLOT(privateChatErr(const QDBusError&)), PRIVATE_CHAT_TIMEOUT); } @@ -250,7 +260,7 @@ void OfonoVoiceCallManager::createMultiparty() "CreateMultiparty"); QDBusConnection::systemBus().callWithCallback(request, this, - SLOT(createMultipartyResp()), + SLOT(createMultipartyResp(const QList&)), SLOT(createMultipartyErr(const QDBusError&)), CREATE_MULTIPARTY_TIMEOUT); } @@ -279,26 +289,32 @@ void OfonoVoiceCallManager::hangupMultipartyErr(const QDBusError &error) emit hangupMultipartyComplete(FALSE); } -void OfonoVoiceCallManager::createMultipartyResp() +void OfonoVoiceCallManager::createMultipartyResp(const QList &paths) { - emit createMultipartyComplete(TRUE); + QStringList calls; + foreach(QDBusObjectPath path, paths) + calls << path.path(); + emit createMultipartyComplete(TRUE, calls); } void OfonoVoiceCallManager::createMultipartyErr(const QDBusError &error) { m_if->setError(error.name(), error.message()); - emit createMultipartyComplete(FALSE); + emit createMultipartyComplete(FALSE, QStringList()); } -void OfonoVoiceCallManager::privateChatResp() +void OfonoVoiceCallManager::privateChatResp(const QList &paths) { - emit privateChatComplete(TRUE); + QStringList calls; + foreach(QDBusObjectPath path, paths) + calls << path.path(); + emit privateChatComplete(TRUE, calls); } void OfonoVoiceCallManager::privateChatErr(const QDBusError &error) { m_if->setError(error.name(), error.message()); - emit privateChatComplete(FALSE); + emit privateChatComplete(FALSE, QStringList()); } void OfonoVoiceCallManager::holdAndAnswerResp() diff --git a/lib/ofonovoicecallmanager.h b/lib/ofonovoicecallmanager.h index 4fd82de..ff00ec1 100644 --- a/lib/ofonovoicecallmanager.h +++ b/lib/ofonovoicecallmanager.h @@ -87,10 +87,13 @@ signals: void swapCallsComplete(const bool status); void releaseAndAnswerComplete(const bool status); void holdAndAnswerComplete(const bool status); - void privateChatComplete(const bool status); - void createMultipartyComplete(const bool status); + void privateChatComplete(const bool status, const QStringList& calls); + void createMultipartyComplete(const bool status, const QStringList& calls); void hangupMultipartyComplete(const bool status); + void barringActive(const QString &type); + void forwarded(const QString &type); + private slots: void validityChanged(bool); void pathChanged(const QString& path); @@ -111,9 +114,9 @@ private slots: void releaseAndAnswerErr(const QDBusError &error); void holdAndAnswerResp(); void holdAndAnswerErr(const QDBusError &error); - void privateChatResp(); + void privateChatResp(const QList &paths); void privateChatErr(const QDBusError &error); - void createMultipartyResp(); + void createMultipartyResp(const QList &paths); void createMultipartyErr(const QDBusError &error); void hangupMultipartyResp(); void hangupMultipartyErr(const QDBusError &error); diff --git a/tests/test_ofonomultipartycall.cpp b/tests/test_ofonomultipartycall.cpp index a466b07..3424623 100644 --- a/tests/test_ofonomultipartycall.cpp +++ b/tests/test_ofonomultipartycall.cpp @@ -67,16 +67,18 @@ private slots: // 11. Verify hangupMultiparty() works as expected // 12. Hangup all calls + QVariantList variantList; + // VoiceCallManager Spy's QSignalSpy dialreg(m,SIGNAL(dialComplete(bool))); QSignalSpy dspy(m, SIGNAL(callAdded(QString))); QSignalSpy rspy(m, SIGNAL(callRemoved(QString))); QSignalSpy haspy(m, SIGNAL(hangupAllComplete(bool))); QSignalSpy haaspy(m, SIGNAL(holdAndAnswerComplete(bool))); - QSignalSpy cmspy(m, SIGNAL(createMultipartyComplete(bool))); + QSignalSpy cmspy(m, SIGNAL(createMultipartyComplete(bool, QStringList))); QSignalSpy hmspy(m, SIGNAL(hangupMultipartyComplete(bool))); QSignalSpy scspy(m, SIGNAL(swapCallsComplete(bool))); - QSignalSpy pcspy(m, SIGNAL(privateChatComplete(bool))); + QSignalSpy pcspy(m, SIGNAL(privateChatComplete(bool, QStringList))); // 1. Dial a call (outgoing) m->dial("123",""); @@ -172,7 +174,9 @@ private slots: m->createMultiparty(); QTest::qWait(1000); QCOMPARE(cmspy.count(),1); - QCOMPARE(cmspy.takeFirst().at(0).toBool(),true); + variantList = cmspy.takeFirst(); + QCOMPARE(variantList.at(0).toBool(),true); + QVERIFY(variantList.at(1).toStringList().length() > 0); QTest::qWait(3000); // 4. Verify createMultiparty() works as expected @@ -247,7 +251,9 @@ private slots: QTest::qWait(1000); QCOMPARE(cmspy.count(),1); - QCOMPARE(cmspy.takeFirst().at(0).toBool(),true); + variantList = cmspy.takeFirst(); + QCOMPARE(variantList.at(0).toBool(),true); + QVERIFY(variantList.at(1).toStringList().length() > 0); QTest::qWait(3000); // - calls #1 and #2 should have a stateChanged signal triggered @@ -270,7 +276,9 @@ private slots: QTest::qWait(1000); QCOMPARE(pcspy.count(),1); - QCOMPARE(pcspy.takeFirst().at(0).toBool(),true); + variantList = pcspy.takeFirst(); + QCOMPARE(variantList.at(0).toBool(),true); + QVERIFY(variantList.at(1).toStringList().length() > 0); QTest::qWait(3000); // 9. Verify privateChat() works as expected -- 2.7.4