diff -r e7aa27f58ae1 -r 578830873419 emailuis/nmframeworkadapter/src/nmfwareplymessagecreationoperation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmframeworkadapter/src/nmfwareplymessagecreationoperation.cpp Fri Apr 16 14:51:52 2010 +0300 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#include "nmframeworkadapterheaders.h" + +NmFwaReplyMessageCreationOperation::NmFwaReplyMessageCreationOperation( + const NmId &mailboxId, + const NmId &originalMessageId, + const bool replyAll, + CFSMailClient &mailClient) : + NmFwaMessageCreationOperation(mailboxId, mailClient), + mOriginalMessageId(originalMessageId), + mReplyAll(replyAll) +{ +} + +NmFwaReplyMessageCreationOperation::~NmFwaReplyMessageCreationOperation() +{ +} + +void NmFwaReplyMessageCreationOperation::runAsyncOperation() +{ + const TFSMailMsgId mailMsgId(mMailboxId.pluginId32(), mMailboxId.id32()); + + CFSMailBox *mailBox(NULL); + TRAP_IGNORE(mailBox = mMailClient.GetMailBoxByUidL(mailMsgId)); + + if (mailBox) { + TRAPD(err, mRequestId = mailBox->CreateReplyMessageL(mOriginalMessageId, mReplyAll, *this)); + + if (err == KErrFSMailPluginNotSupported) { + CFSMailMessage *fsMessage = mailBox->CreateReplyMessage(mOriginalMessageId, mReplyAll); + + mMessage = fsMessage->GetNmMessage(); + + delete fsMessage; + fsMessage = NULL; + + completeOperation(NmNoError); + } + else if (err != KErrNone) { + completeOperation(NmGeneralError); + } + + delete mailBox; + mailBox = NULL; + } + else { + completeOperation(NmNotFoundError); + } +}