diff -r dcf0eedfc1a3 -r d189ee25cf9d emailservices/emailclientapi/src/emailclientapiimpl.cpp --- a/emailservices/emailclientapi/src/emailclientapiimpl.cpp Thu Aug 19 09:38:05 2010 +0300 +++ b/emailservices/emailclientapi/src/emailclientapiimpl.cpp Tue Aug 31 15:04:17 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 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" @@ -24,26 +24,20 @@ #include #include #endif // SYMBIAN_ENABLE_SPLIT_HEADERS -#include // CCoeEnv -#include // CCoeAppUi #include #include "emailclientapiimpl.h" #include "emailapiutils.h" #include "emailmailbox.h" #include -#include "cfsmailplugin.h" -#include "cfsclientapi.h" +#include "CFSMailPlugin.h" +#include "CFSMailClient.h" #include "emailclientapiimpldefs.h" #include "emailmailboxcache.h" -#include "FreestyleEmailUiConstants.h" #include "emailclientapi.hrh" -#include "freestyleemailcenrepkeys.h" -#include "FreestyleEmailUiConstants.h" // --------------------------------------------------------------------------- -// CEmailClientApi::MailboxL +// // --------------------------------------------------------------------------- -// MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId ) { UpdateMailboxInfoCacheL(); @@ -56,7 +50,6 @@ return mailbox; } - // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- @@ -84,9 +77,9 @@ } } } - CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy( &mailboxes ); // find mailbox or leave KErrNotFound - if ( !mailbox) + if ( !mailbox ) { User::Leave( KErrNotFound ); } @@ -116,8 +109,8 @@ { REmailMailboxIdArray mailboxIdArray; CleanupClosePushL( mailboxIdArray ); - - // note! GetMailboxIdsL loads plugin and keeps loaded if it contains at + + // GetMailboxIdsL loads plugin and keeps loaded if it contains at // least one mailbox TInt count = GetMailboxIdsL( mailboxIdArray ); while ( count-- ) @@ -132,57 +125,17 @@ // ref count. ReleaseAllPlugins(); - CleanupStack::PopAndDestroy(); // mailboxIdArray + CleanupStack::PopAndDestroy( &mailboxIdArray ); return aMailboxes.Count(); } // ----------------------------------------------------------------------------- -// implement this +// // ----------------------------------------------------------------------------- -void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy ) +void CEmailClientApi::LaunchEmailL( const TLaunchPolicy /*aPolicy*/ ) { - if ( aPolicy == EShowLastUnseenMailbox) - { - CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep ); - CleanupStack::PushL(emailRepository); - TInt numberOfMailboxes(0); - TInt inboxId(0); - TInt pluginId(0); - emailRepository->Get(KNumberOfMailboxesWithNewEmails,numberOfMailboxes); - if(numberOfMailboxes > 0) - { - emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2-1),pluginId); - emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2),inboxId); - - TUid pluginUid = {pluginId}; - TMailListActivationData activationData; - - activationData.iMailBoxId.SetId(inboxId); - activationData.iMailBoxId.SetPluginId(pluginUid); - activationData.iFolderId.SetPluginId(pluginUid); - TPckgBuf pkgBuf(activationData); - - CCoeEnv::Static()->AppUi()->CreateActivateViewEventL( - TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId, - pkgBuf ); - } - else - { - // We should never come here since the mailbox count should be more than 0 if launchemailL is called - // but just to be safe launch the email in launchergrid if something went wrong with the repository - const TUid dummy = {0}; - CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId), - dummy, KNullDesC8() ); - } - CleanupStack::PopAndDestroy();//emailRepository - } - else if ( aPolicy == EDefault ) - { - const TUid dummy = {0}; - CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId), - dummy, KNullDesC8() ); - } - } + User::Leave(KErrNotSupported); + } // ----------------------------------------------------------------------------- // @@ -203,18 +156,18 @@ CEmailClientApi* CEmailClientApi::NewL() { CEmailClientApi* instance = static_cast( Dll::Tls() ); - - if ( instance == NULL ) + + if ( !instance ) { instance = new ( ELeave ) CEmailClientApi(); CleanupStack::PushL( instance ); instance->ConstructL(); User::LeaveIfError( Dll::SetTls( instance ) ); - CleanupStack::Pop(); + CleanupStack::Pop( instance ); } instance->iInstanceCounter++; - + return instance; } @@ -235,7 +188,7 @@ iPluginDataArray.Close(); iLoadedPluginsArray.Close(); delete iMailboxCache; - delete iClientAPI; + Dll::FreeTls(); } @@ -243,7 +196,7 @@ // // ----------------------------------------------------------------------------- CEmailClientApi::CEmailClientApi() : iInstanceCounter( 0 ) - { + { } // ----------------------------------------------------------------------------- @@ -289,12 +242,11 @@ count = 0; } } - iClientAPI = CFSClientAPI::NewL(this); - CleanupStack::PopAndDestroy(); // CleanupImplInfoPushL + iMailClient = CFSMailClient::NewL(); + CleanupStack::PopAndDestroy( &implInfoArray ); User::LeaveIfError( err ); } - // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- @@ -317,7 +269,7 @@ this->iInstanceCounter--; } } - + // ----------------------------------------------------------------------------- // Returns plugin instance from plugin data. If we already have "claimed" // instance once, prevent increment of reference count @@ -345,7 +297,7 @@ } return pluginDataPtr->iPlugin; } - + // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- @@ -378,7 +330,7 @@ // ----------------------------------------------------------------------------- CEmailMailboxCache& CEmailClientApi::MailboxInfoCacheL() { - if ( !iMailboxCache) + if ( !iMailboxCache) { iMailboxCache = CEmailMailboxCache::NewL(); } @@ -428,8 +380,8 @@ } pluginData = iter.Next(); } - mbcache.EndCachingPop(); - } + mbcache.EndCachingPop(); + } } // ----------------------------------------------------------------------------- @@ -445,11 +397,11 @@ while ( mailboxCount-- ) { const TFSMailMsgId& mailboxId = pluginMailboxes[mailboxCount]; - TMailboxId id( mailboxId.Id() ); + TMailboxId id( mailboxId.Id() ); MailboxInfoCacheL().AddMailboxL( aPluginData, id ); containsMailbox = ETrue; } - CleanupStack::PopAndDestroy(); // pluginMailboxes + CleanupStack::PopAndDestroy( &pluginMailboxes ); return containsMailbox; } @@ -458,7 +410,7 @@ // ----------------------------------------------------------------------------- TInt CEmailClientApi::IndexOfLoadedPluginData( const TPluginData& aPluginData ) const { - TIdentityRelation relation( CEmailClientApi::PluginDataEquals ); + TIdentityRelation relation( CEmailClientApi::PluginDataEquals ); return iLoadedPluginsArray.Find( aPluginData, relation ); } @@ -470,18 +422,4 @@ return ( a1.iUid == a2.iUid ); } -CFSMailPlugin* CEmailClientApi::GetPluginByUid(TUid aUid) - { - CPluginData *p = NULL; - CFSMailPlugin* plugin = NULL; - - TRAP_IGNORE( p = iMailboxCache->PluginDataL(aUid) ); - if ( p ) - { - plugin = p->ClaimInstance(); - p->ReleaseInstance(); - } - return plugin; - } - -// End of file. +// End of file