Update VoiceCallManager to match latest oFono
authorAlexander Kanavin <alex.kanavin@gmail.com>
Fri, 5 Aug 2011 14:51:15 +0000 (17:51 +0300)
committerAlexander Kanavin <alex.kanavin@gmail.com>
Fri, 5 Aug 2011 15:11:32 +0000 (18:11 +0300)
lib/ofonovoicecallmanager.cpp
lib/ofonovoicecallmanager.h
tests/test_ofonomultipartycall.cpp

index 65209bc..2004950 100644 (file)
@@ -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<QDBusObjectPath>&)),
                                         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<QDBusObjectPath>&)),
                                         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<QDBusObjectPath> &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<QDBusObjectPath> &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()
index 4fd82de..ff00ec1 100644 (file)
@@ -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<QDBusObjectPath> &paths);
     void privateChatErr(const QDBusError &error);
-    void createMultipartyResp();
+    void createMultipartyResp(const QList<QDBusObjectPath> &paths);
     void createMultipartyErr(const QDBusError &error);
     void hangupMultipartyResp();
     void hangupMultipartyErr(const QDBusError &error);
index a466b07..3424623 100644 (file)
@@ -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