idlefw/plugins/devicestatus/src/aidevicestatusplugin.cpp
branchRCL_3
changeset 8 d0529222e3f0
parent 0 79c6a41cd166
child 11 bd874ee5e5e2
--- a/idlefw/plugins/devicestatus/src/aidevicestatusplugin.cpp	Tue Feb 02 00:23:10 2010 +0200
+++ b/idlefw/plugins/devicestatus/src/aidevicestatusplugin.cpp	Fri Feb 19 23:07:29 2010 +0200
@@ -15,7 +15,7 @@
 *
 */
 
-
+// System includes
 #include <ecom/ecom.h>
 #include <ecom/implementationproxy.h>
 #include <coemain.h>
@@ -23,6 +23,8 @@
 #include <bautils.h>
 #include <aiutility.h>
 #include <featmgr.h>
+
+// User includes
 #include "aidevicestatusplugin.h"
 #include "aidevicestatuspluginengine.h"
 #include "aipublishprioritizer.h"
@@ -31,9 +33,11 @@
 #include "aipluginsettings.h"
 #include "ainetworkinfolistener.h"
 
+// Constants
 _LIT( KResourceDrive, "Z:" );
 _LIT( KResourceFile, "aidevstaplgres.rsc" );
-#define KResourcePath KDC_APP_RESOURCE_DIR
+
+#define KResourcePath KDC_RESOURCE_FILES_DIR
 
 // ECOM implementation table
 const TImplementationProxy KImplementationTable[] =
@@ -43,17 +47,23 @@
 
 
 // ======== MEMBER FUNCTIONS ========
-
-CAiDeviceStatusPlugin::CAiDeviceStatusPlugin() :
-   	iResourceOffset( KErrNotFound )
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::CAiDeviceStatusPlugin
+//
+// ----------------------------------------------------------------------------
+//
+CAiDeviceStatusPlugin::CAiDeviceStatusPlugin() 
+    : iResourceOffset( KErrNotFound )   	
     {
     }
 
-
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::ConstructL
+//
+// ----------------------------------------------------------------------------
+//
 void CAiDeviceStatusPlugin::ConstructL()
-    {
-    iInfo.iUid.iUid = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_DEVSTAPLUGIN; 
-
+    {     
     FeatureManager::InitializeLibL();
     
     // Create master instance to prevent deletion on Stop()
@@ -62,11 +72,17 @@
 	//Create content here since this is needed in optimization phase.
     iContent = AiUtility::CreateContentItemArrayIteratorL( KAiDeviceStatusContent );
     iResources = AiUtility::CreateContentItemArrayIteratorL( KAiDeviceStatusResources );
+    
     iContentObservers = CAiMultiContentObserver::NewL();
+    
     iPrioritizer = CAiPublishPrioritizer::NewL( *iContentObservers, *this );
     }
 
-
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::NewL
+//
+// ----------------------------------------------------------------------------
+//
 CAiDeviceStatusPlugin* CAiDeviceStatusPlugin::NewL()
     {
     CAiDeviceStatusPlugin* self = CAiDeviceStatusPlugin::NewLC();
@@ -74,7 +90,11 @@
     return self;
     }
 
-
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::NewLC
+//
+// ----------------------------------------------------------------------------
+//
 CAiDeviceStatusPlugin* CAiDeviceStatusPlugin::NewLC()
     {
     CAiDeviceStatusPlugin* self = new( ELeave ) CAiDeviceStatusPlugin;
@@ -83,57 +103,65 @@
     return self;
     }
 
-
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::~CAiDeviceStatusPlugin
+//
+// ----------------------------------------------------------------------------
+//
 CAiDeviceStatusPlugin::~CAiDeviceStatusPlugin()
     {
     delete iPrioritizer;
+    
     FreeResources();
+    
     delete iContentObservers;
+    
     Release( iResources );
     Release( iContent );
+    
     FeatureManager::UnInitializeLib();
+    
     if( iListener )
         {
         iListener->Release();
         }
     }
 
-
-/**
- * Allocates all resourcers required for plug-in operation.
- */
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::AllocateResourcesL
+//
+// ----------------------------------------------------------------------------
+//
 void CAiDeviceStatusPlugin::AllocateResourcesL()
     {
     //create engine
     if( !iEngine )
     	{
-   	    iEngine = CAiDeviceStatusPluginEngine::NewL( *iContentObservers,
-   	                                                    *this,
-   	                                                    *iPrioritizer);
+   	    iEngine = CAiDeviceStatusPluginEngine::NewL( 
+            *iContentObservers, *this, *iPrioritizer );   	                                                      	                                                  
     	}
 
 	if( iResourceOffset < 0 )
 		{
-		CCoeEnv* coe = CCoeEnv::Static();
-
-		if( !coe )
-		    {
-		    User::Leave( KErrNotReady );
-		    }
+		CCoeEnv* coe( CCoeEnv::Static() );
 
-		//Add resource file to cone
-		TFullName resourceFile( KResourceDrive );
-		resourceFile.Append( KResourcePath );
-		resourceFile.Append( KResourceFile );
-		BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), resourceFile );
-		iResourceOffset = coe->AddResourceFileL( resourceFile );
+		if ( coe )
+		    {
+	        //Add resource file to cone
+	        TFullName resourceFile( KResourceDrive );
+	        resourceFile.Append( KResourcePath );
+	        resourceFile.Append( KResourceFile );
+	        BaflUtils::NearestLanguageFile( coe->FsSession(), resourceFile );
+	        iResourceOffset = coe->AddResourceFileL( resourceFile );		    
+		    }
 		}
     }
 
-
-/**
- * Frees all allocated resources.
- */
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::FreeResources
+//
+// ----------------------------------------------------------------------------
+//
 void CAiDeviceStatusPlugin::FreeResources()
     {
 	if( iResourceOffset >= 0 )
@@ -153,155 +181,151 @@
 	iEngine = NULL;
     }
 
-
-void CAiDeviceStatusPlugin::Resume(TAiTransitionReason aReason)
-    {
-    if( IgnoreReason( aReason ) )
-        {
-        return;
-        }
-    // resume all publishers only in startup
-    if( iEngine )
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::Start
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::Start( TStartReason aReason )     
+    {    
+    if ( aReason == EPageStartup || aReason == ESystemStartup )
         {
-        if (  aReason == EAiIdleForeground || aReason == EAiKeylockDisabled )
-        	{
-        	// not much can be done if some publisher cannot be refreshed
-        	TRAP_IGNORE( iEngine->RefreshPublishersL( 
-        	                EAiDeviceStatusContentNetworkIdentity, ETrue ) );
-        	
-        	TRAP_IGNORE( iEngine->RefreshPublishersL( 
-        					EAiDeviceStatusContentCUGMCNIndicator, ETrue ) );
-        	}
-        // if layout changed republish some information
-        else if ( aReason == EAiScreenLayoutChanged )
-            {
-            TRAP_IGNORE( iEngine->RefreshPublishersL( EAiDeviceStatusContentDate, ETrue )); 
-            TRAP_IGNORE( iEngine->RefreshPublishersL( EAiDeviceStatusContentCUGMCNIndicator, ETrue ));
-            TRAP_IGNORE( iEngine->RefreshPublishersL( EAiDeviceStatusContentVHZText, ETrue ));
-            TRAP_IGNORE( iEngine->RefreshPublishersL( EAiDeviceStatusContentNetworkIdentity, ETrue ));
-            }
-        return;
-        }
-    // If engine has been deleted. create it again.
-    else
-        {
-        iContentObservers->StartTransaction( KImplUidDevStaPlugin );
-
-        TRAPD( err, DoResumeL(aReason) );
-
-        if( err == KErrNone )
-            {
-            iContentObservers->Commit( KImplUidDevStaPlugin );
-            }
-        else
-            {
-            iContentObservers->CancelTransaction( KImplUidDevStaPlugin );
-            }
+        iRequirePublish = ETrue;
         }
     }
 
-
-void CAiDeviceStatusPlugin::DoResumeL(TAiTransitionReason /*aReason*/)
-    {
-    AllocateResourcesL( );
-    iEngine->ResumePublishersL();
-    iEngine->RefreshPublishersL( EFalse );
-    }
-    
-
-TBool CAiDeviceStatusPlugin::IgnoreReason( TAiTransitionReason aReason )
-    {
-    switch( aReason )
-        {
-        case EAiBacklightOff:
-            return ETrue;
-        }
-    return EFalse;
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::Stop
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::Stop( TStopReason /*aReason*/ )     
+    {    
     }
 
-
-void CAiDeviceStatusPlugin::Stop(TAiTransitionReason /*aReason*/)
-    {
-    FreeResources();
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::Resume
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::Resume( TResumeReason aReason )     
+    {          
+    if ( aReason == EForeground )
+        {
+        if ( iRequirePublish )
+            {
+            TRAP_IGNORE( DoResumeL() );
+            
+            iRequirePublish = EFalse;
+            }          
+        }
     }
-
-
-void CAiDeviceStatusPlugin::Suspend(TAiTransitionReason /*aReason*/)
+  
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::Suspend
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::Suspend( TSuspendReason /*aReason*/ )    
     {
     }
 
-
-void CAiDeviceStatusPlugin::SubscribeL(MAiContentObserver& aObserver)
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::SubscribeL
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::SubscribeL( MAiContentObserver& aObserver )
     {
     iContentObservers->AddObserverL( aObserver );
     }
 
-
-TAny* CAiDeviceStatusPlugin::Extension(TUid aUid)
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::ConfigureL
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::ConfigureL( RAiSettingsItemArray& aSettings )
     {
-	//Access to extensions
-    if( aUid == KExtensionUidProperty )
+	aSettings.ResetAndDestroy();
+	
+	AllocateResourcesL();
+    }
+
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::GetProperty
+//
+// ----------------------------------------------------------------------------
+//
+TAny* CAiDeviceStatusPlugin::GetProperty( TProperty aProperty )     
+    {
+    if ( aProperty == EPublisherContent )
         {
-        return static_cast<MAiPropertyExtension*>(this);
+        return static_cast< MAiContentItemIterator* >( iContent );
+        }
+    else if ( aProperty ==  EPublisherResources )
+        {
+        return static_cast< MAiContentItemIterator* >( iResources );
         }
-
+    else if ( aProperty == EContentRequest )
+        {
+        return static_cast< MAiContentRequest* >( this );
+        }
+    
     return NULL;
     }
 
-
-void CAiDeviceStatusPlugin::ConfigureL(RAiSettingsItemArray& aSettings)
-    {
-	aSettings.ResetAndDestroy();
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::DoResumeL
+//
+// ----------------------------------------------------------------------------
+//
+void CAiDeviceStatusPlugin::DoResumeL()
+    {    
+    iEngine->ResumePublishersL();
+    iEngine->RefreshPublishersL( EFalse );
     }
 
-TAny* CAiDeviceStatusPlugin::GetPropertyL(TInt aProperty)
-    {
-	//Return properties.
-    switch (aProperty)
-        {
-        case EAiPublisherInfo:
-                return &iInfo;
-
-        case EAiPublisherContent:
-            return static_cast<MAiContentItemIterator*>(iContent);
-
-        case EAiPublisherResources:
-            return static_cast<MAiContentItemIterator*>(iResources);
-
-        case EAiContentRequest:
-            return static_cast<MAiContentRequest*>(this);
-        }
-
-    return NULL;
-    }
-
-void CAiDeviceStatusPlugin::SetPropertyL(TInt aProperty, TAny* aValue)
-    {
-    if( aProperty == EAiPublisherInfo )
-        {
-        ASSERT( aValue );
-        
-        const TAiPublisherInfo* info( 
-                static_cast<const TAiPublisherInfo*>( aValue ) );
-        
-        iInfo = *info;
-        }
-    }
-
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::RefreshContent
+//
+// ----------------------------------------------------------------------------
+//
 TBool CAiDeviceStatusPlugin::RefreshContent( TInt aContentId )
     {
-    TBool result = EFalse;
+    TBool result( EFalse );
 
     TRAP_IGNORE( result = iEngine->RefreshPublishersL( aContentId, EFalse ) );
+    
     return result;
     }
 
+// ----------------------------------------------------------------------------
+// CAiDeviceStatusPlugin::SuspendContent
+//
+// ----------------------------------------------------------------------------
+//
+TBool CAiDeviceStatusPlugin::SuspendContent( TInt aContentId )
+    {
+    TBool result( EFalse );
+    
+    TRAP_IGNORE( result = iEngine->SuspendPublishersL( aContentId, EFalse ) );
+    
+    return result;
+    }
 
-/**
- * ECom component entry point.
- */
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+// ======== GLOBAL FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// ImplementationGroupProxy
+//
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
+    TInt& aTableCount )
     {
-    aTableCount = sizeof(KImplementationTable) / sizeof(TImplementationProxy);
+    aTableCount = sizeof(KImplementationTable) / sizeof( TImplementationProxy );
+
     return KImplementationTable;
     }
+
+// End of file