--- 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 <viewcli.h>
#include <vwsdef.h>
#endif // SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <coemain.h> // CCoeEnv
-#include <coeaui.h> // CCoeAppUi
#include <centralrepository.h>
#include "emailclientapiimpl.h"
#include "emailapiutils.h"
#include "emailmailbox.h"
#include <memailaddress.h>
-#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<TMailListActivationData> 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<CEmailClientApi*>( 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<TPluginData> relation( CEmailClientApi::PluginDataEquals );
+ TIdentityRelation<TPluginData> 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