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

index c95f062..ce85be4 100644 (file)
@@ -113,6 +113,20 @@ void OfonoSimManager::unlockPin(const QString &pintype, const QString &pin)
                                        SLOT(unlockPinErr(const QDBusError&)));
 }
 
+void OfonoSimManager::getIcon(quint8 id)
+{
+    QDBusMessage request;
+
+    request = QDBusMessage::createMethodCall("org.ofono",
+                                            path(), m_if->ifname(),
+                                            "GetIcon");
+    request << qVariantFromValue(id);
+
+    QDBusConnection::systemBus().callWithCallback(request, this,
+                                       SLOT(getIconResp(QByteArray)),
+                                       SLOT(getIconErr(const QDBusError&)));
+}
+
 void OfonoSimManager::setSubscriberNumbers(const QStringList &numbers)
 {
     m_if->setProperty("SubscriberNumbers", qVariantFromValue(numbers));
@@ -177,6 +191,16 @@ OfonoPinRetries OfonoSimManager::pinRetries() const
     return retries;
 }
 
+bool OfonoSimManager::fixedDialing() const
+{
+    return m_if->properties()["FixedDialing"].value<bool>();
+}
+
+bool OfonoSimManager::barredDialing() const
+{
+    return m_if->properties()["BarredDialing"].value<bool>();
+}
+
 void OfonoSimManager::propertyChanged(const QString& property, const QVariant& value)
 {
     if (property == "Present") {       
@@ -205,6 +229,10 @@ void OfonoSimManager::propertyChanged(const QString& property, const QVariant& v
         OfonoPinRetries retries;
         value.value<QDBusArgument>() >> retries;
         emit pinRetriesChanged(retries);
+    } else if (property == "FixedDialing") {   
+        emit fixedDialingChanged(value.value<bool>());
+    } else if (property == "BarredDialing") {  
+        emit barredDialingChanged(value.value<bool>());
     }
 }
 
@@ -266,3 +294,13 @@ void OfonoSimManager::unlockPinErr(QDBusError error)
     m_if->setError(error.name(), error.message()); 
     emit unlockPinComplete(FALSE);
 }
+
+void OfonoSimManager::getIconResp(QByteArray icon)
+{
+    emit getIconComplete(TRUE, icon);
+}
+void OfonoSimManager::getIconErr(QDBusError error)
+{
+    m_if->setError(error.name(), error.message()); 
+    emit getIconComplete(FALSE, QByteArray());
+}
index 8a861d0..a653243 100644 (file)
@@ -55,6 +55,8 @@ class OFONO_QT_EXPORT OfonoSimManager : public OfonoModemInterface
     Q_PROPERTY(QString cardIdentifier READ cardIdentifier NOTIFY cardIdentifierChanged)
     Q_PROPERTY(QStringList preferredLanguages READ preferredLanguages NOTIFY preferredLanguagesChanged)
     Q_PROPERTY(OfonoPinRetries pinRetries READ pinRetries NOTIFY pinRetriesChanged)
+    Q_PROPERTY(bool fixedDialing READ fixedDialing NOTIFY fixedDialingChanged)
+    Q_PROPERTY(bool barredDialing READ barredDialing NOTIFY barredDialingChanged)
 
 public:
     OfonoSimManager(OfonoModem::SelectionSetting modemSetting, const QString &modemPath, QObject *parent=0);
@@ -72,12 +74,16 @@ public:
     QString cardIdentifier() const;
     QStringList preferredLanguages() const;
     OfonoPinRetries pinRetries() const;
+    bool fixedDialing() const;
+    bool barredDialing() const;
 
+public slots:
     void changePin(const QString &pintype, const QString &oldpin, const QString &newpin);
     void enterPin(const QString &pintype, const QString &pin);
     void resetPin(const QString &pintype, const QString &puk, const QString &newpin);
     void lockPin(const QString &pintype, const QString &pin);
     void unlockPin(const QString &pintype, const QString &pin);
+    void getIcon(quint8 id);
 
     void setSubscriberNumbers(const QStringList &numbers);
 
@@ -94,13 +100,15 @@ signals:
     void cardIdentifierChanged(const QString &iccid);
     void preferredLanguagesChanged(const QStringList &languages);
     void pinRetriesChanged(const OfonoPinRetries &pinRetries);
+    void fixedDialingChanged(bool fixedDialing);
+    void barredDialingChanged(bool barredDialing);
 
     void changePinComplete(bool success);
     void enterPinComplete(bool success);
     void resetPinComplete(bool success);
     void lockPinComplete(bool success);
     void unlockPinComplete(bool success);
-
+    void getIconComplete(bool success, const QByteArray &icon);
 
 private slots:
     void propertyChanged(const QString& property, const QVariant& value);
@@ -116,6 +124,8 @@ private slots:
     void lockPinErr(QDBusError error);
     void unlockPinResp();
     void unlockPinErr(QDBusError error);
+    void getIconResp(QByteArray icon);
+    void getIconErr(QDBusError error);
 
 private:
 
index 8f1918c..aa99d44 100644 (file)
@@ -63,6 +63,8 @@ private slots:
         QSignalSpy lockedPins(m, SIGNAL(lockedPinsChanged(QStringList)));
         QSignalSpy cardIdentifier(m, SIGNAL(cardIdentifierChanged(QString)));
         QSignalSpy preferredLanguages(m, SIGNAL(preferredLanguagesChanged(QStringList)));
+        QSignalSpy fixedDialing(m, SIGNAL(fixedDialingChanged(bool)));
+        QSignalSpy barredDialing(m, SIGNAL(barredDialingChanged(bool)));
 
         QSignalSpy setSubscriberNumbersFailed(m, SIGNAL(setSubscriberNumbersFailed()));
 
@@ -86,6 +88,8 @@ private slots:
        QVERIFY(m->preferredLanguages().count() > 0);
        QCOMPARE(m->preferredLanguages()[0], QString("de"));
         QCOMPARE(m->pinRetries().count(), 0);
+       QCOMPARE(m->fixedDialing(), false);
+       QCOMPARE(m->barredDialing(), false);
        
        QStringList numbers = m->subscriberNumbers();
        QStringList newNumbers;
@@ -143,6 +147,8 @@ private slots:
         QStringList languages = preferredLanguages.takeFirst().at(0).toStringList();
         QVERIFY(languages.count() > 0);
                QCOMPARE(languages[0], QString("de"));
+       QCOMPARE(fixedDialing.count(), 0);
+       QCOMPARE(barredDialing.count(), 0);
     }
     
     void testOfonoSimManagerPin()
@@ -199,6 +205,19 @@ private slots:
         QCOMPARE(pinRetries.count(), 0);
     }
 
+    void testOfonoSimManagerIcon()
+    {
+       QSignalSpy getIcon(m, SIGNAL(getIconComplete(bool, QByteArray)));
+       m->getIcon(0);
+       QTest::qWait(1000);
+       m->getIcon(1);
+       QTest::qWait(1000);
+       QCOMPARE(getIcon.count(), 2);
+       QCOMPARE(getIcon.takeFirst().at(0).toBool(), false);
+       QVariantList list = getIcon.takeFirst();
+       QCOMPARE(list.at(0).toBool(), true);
+       QVERIFY(list.at(1).toByteArray().length() > 0);
+    }
 
     void cleanupTestCase()
     {