diff -r e7aa27f58ae1 -r e1b6206813b4 emailuis/emailui/src/FreestyleEmailUiAppui.cpp --- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Tue Feb 02 00:02:40 2010 +0200 +++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Fri Feb 19 22:37:30 2010 +0200 @@ -32,12 +32,12 @@ #include #include // -#include "CFSMailClient.h" -#include "CFSMailBox.h" -#include "CFSMailFolder.h" -#include "CFSMailMessage.h" -#include "CFSMailAddress.h" -#include "CFSMailCommon.h" +#include "cfsmailclient.h" +#include "cfsmailbox.h" +#include "cfsmailfolder.h" +#include "cfsmailmessage.h" +#include "cfsmailaddress.h" +#include "cfsmailcommon.h" // #include #include @@ -169,6 +169,7 @@ { FUNC_LOG; iEnv = &aEnv; + TIMESTAMP( "Application starting" ); } // --------------------------------------------------------------------------- @@ -381,6 +382,7 @@ // until a certain callback event is received // -> thus keep this last in this method! iWizardObserver->DoWizardStartupActionsL(); + TIMESTAMP( "Application started" ); } // Functions loads some views as delayed to reduce startup time @@ -531,6 +533,7 @@ delete iNaviDecorator2MailViewer; delete iConnectionStatusIconAnimTimer; + TIMESTAMP( "Application exit" ); } @@ -634,6 +637,14 @@ iCurrentActiveView = iNavigationHistory->Pop(); } } + // may be tricky; added here to handle activation of composer view from external app when email is plugin settings view + // in this case also duplictaed view needs to be poped up, but iSettingsViewActive is already set to EFalse + // other solution would need to expand api of this class to handle directly this case + else + if ( iPreviousActiveView->Id() == SettingsViewId || iPreviousActiveView->Id() == MailListId ) + { + iCurrentActiveView = iNavigationHistory->Pop(); + } } void CFreestyleEmailUiAppUi::ViewActivatedExternallyL( TUid aViewId ) @@ -668,7 +679,7 @@ iCurrentActiveView = static_cast( View(aViewId) ); } } - + TIMESTAMP( "View activated" ); } void CFreestyleEmailUiAppUi::SetSwitchingToBackground( TBool aValue ) @@ -700,6 +711,7 @@ { ReturnToPreviousViewL(); } + TIMESTAMP( "Returned from html viewer view to previous view" ); } TUid CFreestyleEmailUiAppUi::ReturnToPreviousViewL( const TDesC8& aCustomMessage /*= KNullDesC8*/ ) @@ -725,6 +737,7 @@ if ( viewId == AppGridId ) { ActivateLocalViewL( AppGridId ); + TIMESTAMP( "Return to application grid view" ); } else if ( viewId == MailListId ) { @@ -737,6 +750,7 @@ const TPckgBuf pkgOut; ActivateLocalViewL( MailListId, KStartListReturnToPreviousFolder, pkgOut ); } + TIMESTAMP( "Return to message list view" ); } else if ( viewId == SearchListViewId ) { @@ -755,10 +769,12 @@ // launch html viewer const TPckgBuf pkgOut; ActivateLocalViewL( HtmlViewerId, KHtmlViewerReturnToPrevious, pkgOut ); + TIMESTAMP( "Return to html viewer view" ); } else if ( viewId == MailEditorId ) { ActivateLocalViewL( MailEditorId, TUid::Uid(KEditorCmdReturnToPrevious), aCustomMessage ); + TIMESTAMP( "Return to email editor view" ); } else if ( viewId == MsgDetailsViewId ) { @@ -772,6 +788,7 @@ { // Generic case where the view does not need any startup parameters ActivateLocalViewL( viewId ); + TIMESTAMP( "Return to previous view" ); } return viewId; @@ -824,6 +841,7 @@ { ActivateLocalViewL( iCurrentActiveView->Id() ); } + TIMESTAMP( "Return to earlier view" ); } void CFreestyleEmailUiAppUi::ShowFolderListInPopupL( @@ -897,6 +915,7 @@ void CFreestyleEmailUiAppUi::Exit() { FUNC_LOG; + TIMESTAMP ("Exiting from email application"); g_ApplicationExitOnGoing = ETrue; if ( iExitGuardian->ExitApplication() == KRequestPending ) { @@ -1741,23 +1760,40 @@ // Force Sync on active mailbox. void CFreestyleEmailUiAppUi::SyncActiveMailBoxL() - { - FUNC_LOG; - if ( iActiveMailbox ) - { - iSyncStatusReqId = iActiveMailbox->RefreshNowL( *this ); - } - } - + { + FUNC_LOG; + if( iActiveMailbox ) + { + // Start sync automatically if not syncing already + TSSMailSyncState latestSyncstate = iActiveMailbox->CurrentSyncState(); + if( latestSyncstate != InboxSyncing && latestSyncstate != StartingSync && latestSyncstate != EmailSyncing ) + { + iSyncStatusReqId = iActiveMailbox->RefreshNowL( *this ); + } + } + } void CFreestyleEmailUiAppUi::StopActiveMailBoxSyncL() - { - FUNC_LOG; - if ( iActiveMailbox ) - { - iActiveMailbox->CancelSyncL(); - } - } - + { + FUNC_LOG; + if ( iActiveMailbox && iActiveMailbox->GetMailBoxStatus()==EFSMailBoxOnline) + { + TSSMailSyncState latestSyncstate = iActiveMailbox->CurrentSyncState(); + if(latestSyncstate == InboxSyncing || + latestSyncstate == EmailSyncing || + latestSyncstate == OutboxSyncing || + latestSyncstate == SentItemsSyncing || + latestSyncstate == DraftsSyncing || + latestSyncstate == CalendarSyncing || + latestSyncstate == ContactsSyncing || + latestSyncstate == TasksSyncing || + latestSyncstate == NotesSyncing || + latestSyncstate == FilesSyncing || + latestSyncstate == DataSyncStarting ) + { + iActiveMailbox->CancelSyncL(); + } + } + } MCoeMessageObserver::TMessageResponse CFreestyleEmailUiAppUi::HandleMessageL( TUint32 aClientHandleOfTargetWindowGroup, @@ -1883,7 +1919,9 @@ { case StartingSync: { + TIMESTAMP( "Starting sync" ); //If syncs were started by user, show the synchoronisation indicator + TIMESTAMP( "Sync error" ); if(iManualMailBoxSyncAll) { ManualMailBoxSyncAll(EFalse); @@ -1910,6 +1948,7 @@ case SyncCancelled: case Idle: { + TIMESTAMP( "Sync finished" ); ManualMailBoxSync( EFalse ); } break;