emailservices/emailclientapi/src/emailclientapiimpl.cpp
branchRCL_3
changeset 10 f5907b1a1053
parent 8 e1b6206813b4
child 11 0396474f30f5
equal deleted inserted replaced
8:e1b6206813b4 10:f5907b1a1053
    22 #include <vwsdefpartner.h>
    22 #include <vwsdefpartner.h>
    23 #else
    23 #else
    24 #include <viewcli.h>
    24 #include <viewcli.h>
    25 #include <vwsdef.h>
    25 #include <vwsdef.h>
    26 #endif // SYMBIAN_ENABLE_SPLIT_HEADERS
    26 #endif // SYMBIAN_ENABLE_SPLIT_HEADERS
    27 
    27 #include <coemain.h> // CCoeEnv
       
    28 #include <coeaui.h> // CCoeAppUi
       
    29 #include <centralrepository.h>
    28 #include "emailclientapiimpl.h"
    30 #include "emailclientapiimpl.h"
    29 #include "emailapiutils.h"
    31 #include "emailapiutils.h"
    30 #include "emailmailbox.h"
    32 #include "emailmailbox.h"
    31 #include <memailaddress.h>
    33 #include <memailaddress.h>
    32 #include "cfsmailplugin.h"
    34 #include "cfsmailplugin.h"
    33 #include "cfsclientapi.h"
    35 #include "cfsclientapi.h"
    34 #include "emailclientapiimpldefs.h"
    36 #include "emailclientapiimpldefs.h"
    35 #include "emailmailboxcache.h"
    37 #include "emailmailboxcache.h"
    36 #include "FreestyleEmailUiConstants.h"
    38 #include "FreestyleEmailUiConstants.h"
    37 #include "emailclientapi.hrh"
    39 #include "emailclientapi.hrh"
       
    40 #include "FreestyleEmailCenRepKeys.h"
       
    41 #include "FreestyleEmailUiConstants.h"
    38 // ---------------------------------------------------------------------------
    42 // ---------------------------------------------------------------------------
    39 // CEmailClientApi::MailboxL
    43 // CEmailClientApi::MailboxL
    40 // ---------------------------------------------------------------------------
    44 // ---------------------------------------------------------------------------
    41 //
    45 //
    42 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId )
    46 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId )
   134 // -----------------------------------------------------------------------------
   138 // -----------------------------------------------------------------------------
   135 // implement this
   139 // implement this
   136 // -----------------------------------------------------------------------------
   140 // -----------------------------------------------------------------------------
   137 void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy )
   141 void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy )
   138     {
   142     {
   139     if ( aPolicy != EDefault )
   143     if ( aPolicy == EShowLastUnseenMailbox)
   140         {
   144         {
   141         // no other launch policies supported
   145         CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep );
   142         User::Leave( KErrNotSupported );
   146 		CleanupStack::PushL(emailRepository);
   143         }
   147         TInt numberOfMailboxes(0);
   144     const TUid dummy = {0};
   148         TInt inboxId(0);
   145                 
   149         TInt pluginId(0);
   146     CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC();
   150         emailRepository->Get(KNumberOfMailboxesWithNewEmails,numberOfMailboxes);
   147     viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, AppGridId),
   151         if(numberOfMailboxes > 0)
       
   152             {
       
   153             emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2-1),pluginId);            
       
   154             emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2),inboxId);
       
   155            
       
   156             TUid pluginUid = {pluginId};
       
   157             TMailListActivationData activationData;
       
   158     
       
   159             activationData.iMailBoxId.SetId(inboxId);
       
   160             activationData.iMailBoxId.SetPluginId(pluginUid);
       
   161             activationData.iFolderId.SetPluginId(pluginUid);
       
   162             TPckgBuf<TMailListActivationData> pkgBuf(activationData);
       
   163     
       
   164             CCoeEnv::Static()->AppUi()->CreateActivateViewEventL( 
       
   165                     TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId, 
       
   166                     pkgBuf );
       
   167             }
       
   168         else
       
   169             {
       
   170             // We should never come here since the mailbox count should be more than 0 if launchemailL is called
       
   171             // but just to be safe launch the email in launchergrid if something went wrong with the repository
       
   172             const TUid dummy = {0};
       
   173             CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId),
       
   174             dummy, KNullDesC8() );        
       
   175             }
       
   176         CleanupStack::PopAndDestroy();//emailRepository
       
   177         }
       
   178     else if ( aPolicy == EDefault )
       
   179         {
       
   180         const TUid dummy = {0};                    
       
   181         CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId),
   148         dummy, KNullDesC8() );
   182         dummy, KNullDesC8() );
   149     CleanupStack::PopAndDestroy();    
   183         }
   150     }    
   184     }    
   151 
   185 
   152 // -----------------------------------------------------------------------------
   186 // -----------------------------------------------------------------------------
   153 // 
   187 // 
   154 // -----------------------------------------------------------------------------
   188 // -----------------------------------------------------------------------------