idlefw/src/framework/aipluginfactory.cpp
branchRCL_3
changeset 18 bd874ee5e5e2
parent 9 d0529222e3f0
child 51 15e4dd19031c
--- a/idlefw/src/framework/aipluginfactory.cpp	Fri Feb 19 23:07:29 2010 +0200
+++ b/idlefw/src/framework/aipluginfactory.cpp	Fri Mar 12 15:43:54 2010 +0200
@@ -34,19 +34,30 @@
 const TUid KDeviceStatusPluginUid = 
     { AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_DEVSTAPLUGIN };
 
+const TUid KProfilePluginUid =
+    { AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_PROFILEPLUGIN };
+
 _LIT( KDeviceStatusPluginName, "DeviceStatus" );
+_LIT( KProfilePluginName, "Profile" );
 
 
 // ======== LOCAL FUNCTIONS ========
 // ----------------------------------------------------------------------------
-// IsDeviceStatus()
+// IsRecyclable()
 //
 // ----------------------------------------------------------------------------
 //
-TBool IsDeviceStatus( const THsPublisherInfo& aInfo )
+TBool IsRecyclable( const THsPublisherInfo& aInfo )
     {
-    return ( aInfo.Name() == KDeviceStatusPluginName && 
-        aInfo.Uid() == KDeviceStatusPluginUid );
+    if ( ( aInfo.Name() == KProfilePluginName && 
+        aInfo.Uid() == KProfilePluginUid ) ||
+        ( aInfo.Name() == KDeviceStatusPluginName &&
+        aInfo.Uid() == KDeviceStatusPluginUid ) )
+        {
+        return ETrue;
+        }
+    
+    return EFalse;
     }
 
 // ----------------------------------------------------------------------------
@@ -136,19 +147,19 @@
     {                                            
     __PRINTS( "*** CAiPluginFactory::CreatePlugin: Start ***" );
                                     
-    if ( IsDeviceStatus( aPublisherInfo ) )
+    if ( IsRecyclable( aPublisherInfo ) )
         {
         CHsContentPublisher* plugin( PluginByUid( aPublisherInfo.Uid() ) );
         
         if ( plugin )
             {
-            // Devicestatus plugin already exists, update its namespace
+            // Plugin already exists, update its namespace
             THsPublisherInfo& info( 
                 const_cast< THsPublisherInfo& >( plugin->PublisherInfo() ) );
             
             info.iNamespace.Copy( aPublisherInfo.Namespace() );
             
-            __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - DeviceStatus plugin updated ***" );
+            __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Plugin recycled ***" );
             
             return KErrNone;
             }
@@ -202,10 +213,10 @@
     {
     __PRINTS( "*** CAiPluginFactory::DestroyPlugin: Start ***" );
     
-    if ( IsDeviceStatus( aPublisherInfo ) )
+    if ( IsRecyclable( aPublisherInfo ) )
         {
-        // Don't destroy device status plugin
-        __PRINTS( "*** CAiPluginFactory::DestroyPlugin: Done - Keepind DeviceStatus Plug-in ***" );
+        // Don't destroy recyclable plugin
+        __PRINTS( "*** CAiPluginFactory::DestroyPlugin: Done - Keeping recyclable Plug-in ***" );
         
         return;
         }
@@ -234,12 +245,13 @@
     __PRINT( __DBG_FORMAT( "\t[I]\t Loading plug-in uid=%x name=%S"), 
     aPublisherInfo.Uid(), &(aPublisherInfo.Name() ) );
 
-    __TIME( "FW: Create plug-in:",
-            
-    iPublishers.ReserveL( iPublishers.Count() + 1 );    
-            
-    CHsContentPublisher* plugin = 
-        CHsContentPublisher::NewL( aPublisherInfo ) );            
+    iPublishers.ReserveL( iPublishers.Count() + 1 );
+    
+    CHsContentPublisher* plugin( NULL );
+    
+    __TIME( "CAiPluginFactory::CreatePluginL Create plug-in:",                                  
+    plugin = CHsContentPublisher::NewL( aPublisherInfo ) );            
+    
     CleanupStack::PushL( plugin );
     
     __TIME( "FW: Subscribe content observers",