emailservices/emailclientapi/src/emailclientapiimpl.cpp
branchRCL_3
changeset 63 d189ee25cf9d
parent 16 4ce476e64c59
child 64 3533d4323edc
--- 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