diff -r c6838af47512 -r 52d61119153d messagingappbase/mce/src/mceui.cpp --- a/messagingappbase/mce/src/mceui.cpp Wed Mar 31 21:25:02 2010 +0300 +++ b/messagingappbase/mce/src/mceui.cpp Wed Apr 14 15:53:21 2010 +0300 @@ -286,8 +286,12 @@ delete iEmailApi; delete iEmailNotifHandler; delete iCancelExitFlagOperation; - delete iMceIAUpdate; - + + if(iMceIAUpdate) + { + delete iMceIAUpdate; + } + if ( iIdArray ) { delete iIdArray; @@ -427,8 +431,13 @@ iMailAccountItemArray = new(ELeave) CMceMailAccountItemArray( KMceArrayGranularity ); - iMceIAUpdate = CMceIAUpdateUtils::NewL(*this); - + iMceIAUpdate = NULL; + iIadUpdateVal = EFalse; + if(FeatureManager::FeatureSupported( KFeatureIdIAUpdate )) + { + iIadUpdateVal = ETrue; + } + if ( iAlwaysOnline ) { iConnectionMonitor.ConnectL(); @@ -2682,6 +2691,10 @@ { CleanupStack::PopAndDestroy(); // TCleanupItem - will show tabs again } + if ( iMceUiFlags.MceFlag( EMceUiFlagsTabsActive ) && (!tabsToCleanupStack) ) + { + ShowTabsL( iMceListView->ListContainer()->CurrentFolderId() ); + } } else { @@ -5556,13 +5569,29 @@ TBool newAudioMsgVal = EFalse; newAudioMsgVal = FeatureManager::FeatureSupported( KFeatureIdAudioMessaging ); newPostcardVal = FeatureManager::FeatureSupported( KFeatureIdMmsPostcard ); + if ( newAudioMsgVal != iAudioMsgEnabled || newPostcardVal != iPostcardEnabled ) { TRAP_IGNORE( HandleMTMChangeL() ); } - if ( MceViewActive( EMceMainViewActive ) ) - { - CheckIAUpdate(); + + if ( MceViewActive( EMceMainViewActive ) && iIadUpdateVal) + { + if(!iMceIAUpdate) // first time messaging view is activated + { + TRAP_IGNORE(iMceIAUpdate = CMceIAUpdateUtils::NewL(*this)); + if(iMceIAUpdate) + { + CheckIAUpdate(); + } + } + else + { + if(iMceIAUpdate->IsUpdateRequired()) + { + CheckIAUpdate(); + } + } } }