X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=EventParsers%2FVMGEntities%2FVMessage.cpp;h=6e1141abb033526d1a5320f2a2df00f3ed59c492;hb=6e8e3d1a87a2b784abd818caeacb713f0cc2b582;hp=b79846226af1c4d7ca7a7b7b306ec44bcb502cda;hpb=c0bfd6ab49e36b1f96a500fced976b9eef2aec4b;p=qwerkisync diff --git a/EventParsers/VMGEntities/VMessage.cpp b/EventParsers/VMGEntities/VMessage.cpp index b798462..6e1141a 100644 --- a/EventParsers/VMGEntities/VMessage.cpp +++ b/EventParsers/VMGEntities/VMessage.cpp @@ -21,9 +21,9 @@ #include "EventTypes/SMS.h" #include "Factory.h" #include "Settings.h" +#include "VBody.h" #include "VCard.h" #include "VEnvelope.h" -#include "VBody.h" #include #include @@ -50,7 +50,7 @@ VMessage::~VMessage() { } -bool VMessage::Read(const QString & initialLine, QTextStream & stream, EventTypes::SMS & event) +bool VMessage::Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event) { if(getParent() != NULL) { @@ -83,18 +83,26 @@ bool VMessage::Read(const QString & initialLine, QTextStream & stream, EventType else if(lineData.startsWith("X-IRMC-STATUS:")) { bool isRead(lineData.mid(lineData.indexOf(":") + 1) == "READ"); - event.setIsRead(isRead); + event.IsRead(isRead); } else if(lineData.startsWith("X-IRMC-BOX:")) { QString box = lineData.mid(lineData.indexOf(":") + 1); bool isOutgoing(box == "SENT"); + + // Early out once we know we're not processing this type of message + if((!isOutgoing && !CurrentSettings().ShouldProcess(Settings::INCOMING, EventTypes::EVENT_TYPE_SMS)) + || isOutgoing && !CurrentSettings().ShouldProcess(Settings::OUTGOING, EventTypes::EVENT_TYPE_SMS)) + { + return false; + } + if (isOutgoing == false && box != "INBOX") { qDebug() << "Unexpected box: " << box; return false; } - event.setDestination(isOutgoing ? EventTypes::SMS::SENT : EventTypes::SMS::INBOX); + event.Destination(isOutgoing ? EventTypes::SMS::SENT : EventTypes::SMS::INBOX); } else if(lineData.startsWith("X-NOK-DT:")) { @@ -102,7 +110,7 @@ bool VMessage::Read(const QString & initialLine, QTextStream & stream, EventType lineData.mid(lineData.indexOf(":") + 1), "yyyyMMddThhmmssZ")); timestamp.setTimeSpec(Qt::UTC); - event.setTimestamp(timestamp); + event.Timestamp(timestamp); } else if(lineData.startsWith("BEGIN:")) { @@ -134,7 +142,7 @@ bool VMessage::Read(const QString & initialLine, QTextStream & stream, EventType return true; } -void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) +void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { stream << "BEGIN:VMSG\n"; stream << "VERSION:" << m_Version << "\n"; @@ -147,7 +155,7 @@ void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) // Add in the empty vcard for outgoing messages if(event.Destination() == EventTypes::SMS::SENT) { - VCard(CurrentSettings(), this, 2.1, VCard::VCARD_LOCAL).Write(stream, event); + VCard(CurrentSettings(), this, 2.1, VCard::VCARD_LOCAL).Write(stream, event, numberToNameLookup); msgEnvelope.getContentWriters().append(new VCard(CurrentSettings(), &msgEnvelope, 2.1, VCard::VCARD_REMOTE)); @@ -157,12 +165,12 @@ void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) } else { - VCard(CurrentSettings(), this, 2.1, VCard::VCARD_REMOTE).Write(stream, event); + VCard(CurrentSettings(), this, 2.1, VCard::VCARD_REMOTE).Write(stream, event, numberToNameLookup); msgEnvelope.getContentWriters().append(new VBody(CurrentSettings(), &msgEnvelope)); } - msgEnvelope.Write(stream, event); + msgEnvelope.Write(stream, event, numberToNameLookup); stream << "END:VMSG\n"; }