idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp
branchRCL_3
changeset 28 d721605b30d0
parent 25 137ebc85284b
child 31 89165693e770
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Wed Jun 09 09:29:04 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Mon Jun 21 15:27:11 2010 +0300
@@ -352,8 +352,8 @@
            
     CleanupStack::PopAndDestroy(); // DisableRenderUiLC();
     
-    // Load initial view publishers         
-    ActiveViewData().LoadPublishers( EAiFwSystemStartup );    
+    // Load initial view publishers    
+    ActiveViewData().SetActive( ETrue );    
     }
 
 // -----------------------------------------------------------------------------
@@ -378,6 +378,16 @@
     delete iWidgetAmountTrigger;
     iWidgetAmountTrigger = NULL;
           
+    // Destroy all publishers
+    RPointerArray< CXnPluginData >& views( iRootData->PluginData() );
+    
+    for ( TInt i = 0; i < views.Count(); i++ )
+        {
+        CXnViewData* view = static_cast< CXnViewData* >( views[i] );
+                
+        view->DestroyPublishers( EAiFwSystemShutdown );        
+        }
+    
     // Destroy active view data
     ActiveViewData().Destroy();
          
@@ -387,6 +397,8 @@
        
     User::Heap().Compress();
     
+    iUiReady = EFalse;
+    
     LoadUiL();
     
     // Activate first view from the new configuration
@@ -1405,6 +1417,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewManager::NotifyAllViewsLoadedL()
+// Notifies that all views included in root configuration are loaded
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::NotifyAllViewsLoadedL()
+    {
+    for ( TInt i = 0; i < iObservers.Count(); i++ )
+        {
+        iObservers[i]->NotifyAllViewsLoadedL();
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewManager::PublishersReadyL()
 // Notifies that aViewData activation is complete
 // -----------------------------------------------------------------------------
@@ -1456,6 +1481,8 @@
     CXnBackgroundManager& bg( self->iAppUiAdapter.ViewAdapter().BgManager() ); 
         
     TRAP_IGNORE( bg.StoreWallpaperL() );
+
+    self->NotifyContainerActivatedL( active );
     
     return KErrNone;
     }
@@ -1564,6 +1591,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewManager::NotifyContainerActivatedL()
+// Notifies view container is activated
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::NotifyContainerActivatedL( const CXnViewData& aViewData )
+    {
+    for ( TInt i = 0; i < iObservers.Count(); i++ )
+        {
+        iObservers[i]->NotifyContainerActivatedL( aViewData );
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewManager::UpdateCachesL()
 //
 // -----------------------------------------------------------------------------