messagingappbase/mce/src/mceui.cpp
branchRCL_3
changeset 15 52d61119153d
parent 13 a9c7e5670d17
child 22 1367103c24e2
--- 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();
+                }
+            }
         }
     }