emailuis/nmframeworkadapter/src/nmfwaremovedraftmessageoperation.cpp
changeset 65 478bc57ad291
parent 54 997a02608b3a
equal deleted inserted replaced
59:16ed8d08d0b1 65:478bc57ad291
    49     Destructor
    49     Destructor
    50  */
    50  */
    51 NmFwaRemoveDraftMessageOperation::~NmFwaRemoveDraftMessageOperation()
    51 NmFwaRemoveDraftMessageOperation::~NmFwaRemoveDraftMessageOperation()
    52 {
    52 {
    53     NM_FUNCTION;
    53     NM_FUNCTION;
    54     
    54    
    55     doCancelOperation();
       
    56     mMailClient.Close(); // decrease ref count
    55     mMailClient.Close(); // decrease ref count
    57     delete mMessage;
    56     delete mMessage;
    58     mMessage = NULL;
    57     mMessage = NULL;
    59 }
    58 }
    60 
    59 
    66  */
    65  */
    67 void NmFwaRemoveDraftMessageOperation::doRunAsyncOperation()
    66 void NmFwaRemoveDraftMessageOperation::doRunAsyncOperation()
    68 {
    67 {
    69     NM_FUNCTION;
    68     NM_FUNCTION;
    70     
    69     
    71     TRAPD( err, removeMessageL() );
    70     TRAPD(err, removeMessageL());
    72         
    71         
    73     if (err != KErrNone) {
    72     if (err != KErrNone) {
    74         completeOperation(NmGeneralError);
    73         completeOperation(NmGeneralError);
    75     }
    74     }
    76 }
    75 }
    83     NM_FUNCTION;
    82     NM_FUNCTION;
    84     
    83     
    85     mRequestId = NmNotFoundError;
    84     mRequestId = NmNotFoundError;
    86 }
    85 }
    87 
    86 
    88 /*!
       
    89     
       
    90  */
       
    91 void NmFwaRemoveDraftMessageOperation::doCancelOperation()
       
    92 {
       
    93     NM_FUNCTION;
       
    94 
       
    95     // remove draft operation is not cancellable
       
    96 }
       
    97     
       
    98 /*!
    87 /*!
    99     Asynchronous request response message.
    88     Asynchronous request response message.
   100     
    89     
   101     \param aEvent Plugin event description.
    90     \param aEvent Plugin event description.
   102     \param aRequestId Request id of asyncronous operation.
    91     \param aRequestId Request id of asyncronous operation.
   123  */
   112  */
   124 void NmFwaRemoveDraftMessageOperation::removeMessageL()
   113 void NmFwaRemoveDraftMessageOperation::removeMessageL()
   125 {
   114 {
   126     NM_FUNCTION;
   115     NM_FUNCTION;
   127     
   116     
   128     TFSMailMsgId mailboxId( mMessage->envelope().mailboxId() );
   117     TFSMailMsgId mailboxId(mMessage->envelope().mailboxId());
   129     TFSMailMsgId folderId( mMessage->envelope().folderId() );
   118     TFSMailMsgId folderId(mMessage->envelope().folderId());
   130     TFSMailMsgId messageId( mMessage->envelope().messageId() );
   119     TFSMailMsgId messageId(mMessage->envelope().messageId());
   131     
   120     
   132     CFSMailFolder* folder = mMailClient.GetFolderByUidL( mailboxId, folderId );
   121     CFSMailFolder *folder = mMailClient.GetFolderByUidL(mailboxId, folderId);
   133     CleanupStack::PushL(folder);
   122     CleanupStack::PushL(folder);
   134     if ( folder ) {
   123     if (folder) {
   135         // try to use the asynchronous version first
   124         // try to use the asynchronous version first
   136         TRAPD(err, mRequestId = folder->RemoveMessageL( messageId, *this ));
   125         TRAPD(err, mRequestId = folder->RemoveMessageL(messageId, *this));
   137         
   126         
   138         if(err == KErrFSMailPluginNotSupported) {
   127         if(err == KErrFSMailPluginNotSupported) {
   139             // async version not supported, use sync version
   128             // async version not supported, use sync version
   140             folder->RemoveMessageL( messageId );
   129             folder->RemoveMessageL(messageId);
   141             completeOperation(NmNoError);
   130             completeOperation(NmNoError);
   142         } else if (KErrNone != err) {
   131         } else if (KErrNone != err) {
   143             completeOperation(NmGeneralError);
   132             completeOperation(NmGeneralError);
   144         }
   133         }
   145     }
   134     }
   146     else {
   135     else {
   147         User::Leave( KErrNotFound );
   136         User::Leave(KErrNotFound);
   148     }
   137     }
   149     CleanupStack::PopAndDestroy(folder);
   138     CleanupStack::PopAndDestroy(folder);
   150 }
   139 }