qtmobility/src/messaging/qmessageservice_maemo.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/src/messaging/qmessageservice_maemo.cpp	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/src/messaging/qmessageservice_maemo.cpp	Wed Jun 23 19:08:38 2010 +0300
@@ -421,9 +421,9 @@
         }
 
         if (account.messageTypes() & QMessage::Sms) {
-            retVal = TelepathyEngine::instance()->sendMessage(message);
+            retVal = TelepathyEngine::instance()->sendMessage(outgoing);
         } else if (account.messageTypes() & QMessage::InstantMessage) {
-            retVal = TelepathyEngine::instance()->sendMessage(message);
+            retVal = TelepathyEngine::instance()->sendMessage(outgoing);
         } else if (account.messageTypes() & QMessage::Mms) {
             d_ptr->_error = QMessageManager::NotYetImplemented;
             qWarning() << "QMessageService::send not yet implemented for MMS";
@@ -484,15 +484,68 @@
 
 bool QMessageService::retrieveBody(const QMessageId& id)
 {
-    Q_UNUSED(id)
-    return false; // stub
+    if (d_ptr->_active) {
+        return false;
+    }
+
+    if (!id.isValid()) {
+        d_ptr->_error = QMessageManager::InvalidId;
+        return false;
+    }
+
+    d_ptr->_active = true;
+    d_ptr->_error = QMessageManager::NoError;
+
+    bool retVal = true;
+    d_ptr->stateChanged(QMessageService::ActiveState);
+
+    if (id.toString().startsWith("MO_")) {
+        retVal = ModestEngine::instance()->retrieveBody(*this, id);
+        if (retVal == true) {
+            d_ptr->_pendingRequestCount = 1;
+        }
+    } else {
+        retVal = false;
+    }
+
+    if (retVal == false) {
+        d_ptr->setFinished(retVal);
+    }
+
+    return retVal;
 }
 
 bool QMessageService::retrieve(const QMessageId &messageId, const QMessageContentContainerId& id)
 {
-    Q_UNUSED(messageId)
-    Q_UNUSED(id)
-    return false; // stub
+    if (d_ptr->_active) {
+        return false;
+    }
+
+    if (!id.isValid()) {
+        d_ptr->_error = QMessageManager::InvalidId;
+        return false;
+    }
+
+    d_ptr->_active = true;
+    d_ptr->_error = QMessageManager::NoError;
+
+    bool retVal = true;
+    d_ptr->stateChanged(QMessageService::ActiveState);
+
+    if (messageId.toString().startsWith("MO_")) {
+        retVal = ModestEngine::instance()->retrieve(*this, messageId, id, NULL);
+        if (retVal == true) {
+            d_ptr->_pendingRequestCount = 1;
+        }
+    } else {
+        retVal = false;
+    }
+
+    if (retVal == false) {
+        d_ptr->setFinished(retVal);
+    }
+
+    return retVal;
 }
 
 bool QMessageService::show(const QMessageId& id)