diff -r 16ed8d08d0b1 -r 478bc57ad291 emailservices/emailcommon/src/CFSMailFolder.cpp --- a/emailservices/emailcommon/src/CFSMailFolder.cpp Wed Aug 18 09:37:47 2010 +0300 +++ b/emailservices/emailcommon/src/CFSMailFolder.cpp Thu Sep 02 20:15:00 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -21,11 +21,8 @@ #include // -// #include "CFSMailFolder.h" #include "CFSMailPlugin.h" -// - #include "CFSMailIterator.h" #include "CFSMailRequestObserver.h" @@ -74,8 +71,8 @@ CFSMailFolderBase::ConstructL( aFolderId ); // - // get requesthandler pointer - iRequestHandler = static_cast(Dll::Tls()); + // get requesthandler pointer + iRequestHandler = static_cast(Dll::Tls()); } // ----------------------------------------------------------------------------- @@ -90,43 +87,42 @@ // CFSMailFolder::ListMessagesL // ----------------------------------------------------------------------------- EXPORT_C MFSMailIterator* CFSMailFolder::ListMessagesL( const TFSMailDetails aDetails, - const RArray& aSorting) + const RArray& aSorting ) { NM_FUNCTION; - CFSMailIterator* iterator = NULL; - if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) - { - MFSMailIterator* pluginIterator = - plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting); - if(pluginIterator) - { - iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler ); - } - } - return iterator; + CFSMailIterator* iterator(NULL); + if (CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) + { + MFSMailIterator* pluginIterator = + plugin->ListMessagesL(GetMailBoxId(),GetFolderId(),aDetails,aSorting); + if(pluginIterator) + { + iterator = CFSMailIterator::NewL(*pluginIterator,iRequestHandler ); + } + } + return iterator; } // ----------------------------------------------------------------------------- // CFSMailFolder::FetchMessagesL // ----------------------------------------------------------------------------- -EXPORT_C TInt CFSMailFolder::FetchMessagesL( const RArray& aMessageIds, - TFSMailDetails aDetails, - MFSMailRequestObserver& aObserver ) - { +EXPORT_C TInt CFSMailFolder::FetchMessagesL( const RArray& aMessageIds, + TFSMailDetails aDetails, + MFSMailRequestObserver& aObserver ) + { NM_FUNCTION; - // init asynchronous request - CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()); + // init asynchronous request + CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId()); TFSPendingRequest request = - iRequestHandler->InitAsyncRequestL( GetFolderId().PluginId(), aObserver ); - - TInt err = KErrNone; + iRequestHandler->InitAsyncRequestL( GetFolderId().PluginId(), aObserver ); + TInt err (KErrNone); if (plugin) { MFSMailRequestObserver* observer = request.iObserver; - TRAP(err,plugin->FetchMessagesL( GetMailBoxId(), + TRAP(err,plugin->FetchMessagesL( GetMailBoxId(), GetFolderId(), aMessageIds, aDetails, @@ -138,56 +134,54 @@ err = KErrNotFound; } - if(err != KErrNone) + if (err != KErrNone) { iRequestHandler->CompleteRequest(request.iRequestId); User::Leave(err); } return request.iRequestId; - - } + } // ----------------------------------------------------------------------------- // CFSMailFolder::GetSubFoldersL // ----------------------------------------------------------------------------- -EXPORT_C void CFSMailFolder::GetSubFoldersL(RPointerArray& aSubFolders) +EXPORT_C void CFSMailFolder::GetSubFoldersL( RPointerArray& aSubFolders ) { NM_FUNCTION; - if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) - { - TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders)); - if(err != KErrNone) - { - aSubFolders.ResetAndDestroy(); - } - } + if (CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) + { + TRAPD(err,plugin->ListFoldersL( GetMailBoxId(), GetFolderId(), aSubFolders)); + if(err != KErrNone) + { + aSubFolders.ResetAndDestroy(); + } + } } - + // ----------------------------------------------------------------------------- // CFSMailFolder::RemoveMessageL // ----------------------------------------------------------------------------- -EXPORT_C void CFSMailFolder::RemoveMessageL(TFSMailMsgId aMessage) +EXPORT_C void CFSMailFolder::RemoveMessageL( TFSMailMsgId aMessage ) { NM_FUNCTION; - if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) - { - RArray messages; - messages.Reset(); - messages.AppendL(aMessage); - plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages); - messages.Close(); - } + if (CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) + { + RArray messages; + messages.AppendL(aMessage); + plugin->DeleteMessagesByUidL(GetMailBoxId(),GetFolderId(),messages); + messages.Close(); + } } // // ----------------------------------------------------------------------------- // CFSMailFolder::RemoveMessageL // ----------------------------------------------------------------------------- -EXPORT_C TInt CFSMailFolder::RemoveMessageL(TFSMailMsgId aMessage, - MFSMailRequestObserver& aObserver) +EXPORT_C TInt CFSMailFolder::RemoveMessageL( TFSMailMsgId aMessage, + MFSMailRequestObserver& aObserver ) { NM_FUNCTION; @@ -196,14 +190,13 @@ TFSPendingRequest request = iRequestHandler->InitAsyncRequestL( GetFolderId().PluginId(), aObserver ); - TInt err = KErrNone; + TInt err(KErrNone); if (plugin) { MFSMailRequestObserver* observer = request.iObserver; RArray messages; - messages.Reset(); messages.AppendL(aMessage); TRAP(err,plugin->DeleteMessagesByUidL( @@ -230,132 +223,58 @@ // // ----------------------------------------------------------------------------- -// CFSMailFolder::SupportsCopyFromL -// ----------------------------------------------------------------------------- -EXPORT_C TBool CFSMailFolder::SupportsCopyFromL( TFSFolderType aFolderType ) - { - NM_FUNCTION; - - if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) - { - TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); - if(onlineStatus == EFSMailBoxOnline) - { - for(TInt i=0;iGetPluginByUid(GetFolderId())) - { - TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); - if(onlineStatus == EFSMailBoxOnline) - { - for(TInt i=0;iGetPluginByUid(GetFolderId()); - if(plugin != NULL) + TBool ret(ETrue); + if (CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetFolderId())) { - MFSMailIterator* iterator = NULL; - - // select message details to be listed - TFSMailDetails details(EFSMsgDataEnvelope); - - // sorting is free, give empty array - RArray sorting; - sorting.Reset(); - iterator = plugin->ListMessagesL( GetMailBoxId(), - GetFolderId(), - details, - sorting ); - if(iterator) + TFSMailBoxStatus onlineStatus = plugin->GetMailBoxStatus(GetMailBoxId()); + if (onlineStatus == EFSMailBoxOnline) { - TFSMailMsgId nullId; - RPointerArray messages; - messages.Reset(); - iterator->NextL(nullId,GetMessageCount(),messages); - for(TInt i=0;iIsFlagSet(EFSMsgFlag_Attachments)) + if (iMoveOnlineBlocked[i] == aFolderType) { - messages[i]->RemoveDownLoadedAttachmentsL(); - } + ret = EFalse; + } } - messages.ResetAndDestroy(); - delete iterator; } - } + else if (onlineStatus == EFSMailBoxOffline) + { + for (TInt i(0); i < iMoveOfflineBlocked.Count(); i++) + { + if(iMoveOfflineBlocked[i] == aFolderType) + { + ret = EFalse; + } + } + } } + return ret; +} // ----------------------------------------------------------------------------- // CFSMailFolder::ReleaseExtension // ----------------------------------------------------------------------------- EXPORT_C void CFSMailFolder::ReleaseExtension( CEmailExtension* aExtension ) - { +{ NM_FUNCTION; // no specialized behaviour, call base class CExtendableEmail::ReleaseExtension( aExtension ); - } +} // ----------------------------------------------------------------------------- // CFSMailFolder::ExtensionL // ----------------------------------------------------------------------------- EXPORT_C CEmailExtension* CFSMailFolder::ExtensionL( const TUid& aInterfaceUid ) - { +{ NM_FUNCTION; return CExtendableEmail::ExtensionL( aInterfaceUid ); - } +}