satui/satplugin/aisatpluginsrc/caisatplugin.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
parent 18 594d59766373
child 20 987c9837762f
--- a/satui/satplugin/aisatpluginsrc/caisatplugin.cpp	Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +0,0 @@
-/*
-* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  SAT Active Idle publisher
-*
-*/
-
-
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include <aicontentobserver.h>
-#include <aiutility.h>
-#include <aipluginsettings.h>
-#include <flogger.h>
-#include <AknUtils.h>
-#include <gulicon.h>            // For CGulIcon
-#include <fbs.h>                // For CFbsBitmap
-#include <SATInternalPSKeys.h>
-
-#include "aisatcontentmodel.h"
-#include "caisatplugin.h"
-#include "caisatengine.h"
-#include "tflogger.h"
-
-const TImplementationProxy KImplementationTable[] =
-    {
-    //lint -e{611,1924} Warning "Suspicious cast" can not be avoided.
-    IMPLEMENTATION_PROXY_ENTRY( KImplUidSatPlugin, CAiSatPlugin::NewL )
-    };
-    
-// static cleanup function
-static void TransactionCleanup( TAny* aAny )
-    {
-    static_cast<MAiContentObserver*>( aAny )->
-        CancelTransaction( KImplUidSatPlugin );
-    }
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave
-// ---------------------------------------------------------------------------
-//
-CAiSatPlugin* CAiSatPlugin::NewL()
-    {
-    TFLOGSTRING( "CAiSatPlugin::NewL() starts" )
-
-    CAiSatPlugin* self = new ( ELeave ) CAiSatPlugin;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    TFLOGSTRING( "CAiSatPlugin::NewL() exits" )
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// Deletes all data created to heap
-// ---------------------------------------------------------------------------
-//
-CAiSatPlugin::~CAiSatPlugin()
-    {
-    TFLOGSTRING( "CAiSatPlugin::~CAiSatPlugin() starts" )
-
-    Release( iContent );
-    iContent = NULL;
-    
-    Release( iResources );
-    iResources = NULL;
-    
-    Release( iEvents );
-    iEvents = NULL;
-
-    delete iEngine;
-    
-    iObservers.Close();
-
-    TFLOGSTRING( "CAiSatPlugin::~CAiSatPlugin() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// Publish a icon to the idle area.
-// ---------------------------------------------------------------------------
-//
-TInt CAiSatPlugin::PublishIcon(
-    MAiContentObserver& aObserver,
-    CGulIcon* aIcon )
-    {
-    TFLOGSTRING( "CAiSatPlugin::PublishIcon() starts" )
-    
-    TInt error( KErrNotSupported );
-    
-    // Check whether the icon can be published or not.
-    if ( aIcon && aObserver.CanPublish( *this, KSatContent[ESatContentIcon].id,
-                                        ESatContentIcon ) )
-        {
-        // If the icon can be published, and then publish it.        
-        error = aObserver.Publish( *this, KSatContent[ESatContentIcon].id,
-                                    TPckgC<TAny*>( aIcon ), ESatContentIcon );
-        }
-
-    TFLOGSTRING2( "CAiSatPlugin::PublishIcon() exits, error: %d", error )
-    
-    return error;
-    }
-
-// ---------------------------------------------------------------------------
-// Clean idle area icon
-// ---------------------------------------------------------------------------
-// 
-TInt CAiSatPlugin::CleanIcon( MAiContentObserver& aObserver )
-    {
-    TFLOGSTRING( "CAiSatPlugin::CleanIcon() starts" )
-    TInt error( KErrNotSupported );
-
-    error = aObserver.Clean( *this, KSatContent[ESatContentIcon].id,
-                             ESatContentIcon );    
-                             
-    TFLOGSTRING2( "CAiSatPlugin::CleanIcon() exits, error %d", error )    
-    return error;                        
-    }
-    
-// ---------------------------------------------------------------------------
-// Publish a SetUpIdleModeText string.
-// ---------------------------------------------------------------------------
-//
-TInt CAiSatPlugin::PublishText( MAiContentObserver& aObserver,
-                                const TDesC& aText )
-    {
-    TFLOGSTRING( "CAiSatPlugin::PublishText() starts" )
-    TFLOGSTRING2( "CAiSatPlugin::PublishText() length %i", aText.Length() )
-    
-    TInt error( KErrNotSupported );
-    
-    // Check whether the SetUpIdleModeText string can be published or not
-    if ( aText.Length() && 
-         aObserver.CanPublish( *this, KSatContent[ESatContentText].id,
-                               ESatContentText ) )
-        {
-        // If SetUpIdleModeText can be published, and then publish it.
-        error = aObserver.Publish( *this, KSatContent[ESatContentText].id,
-                                   aText, ESatContentText );
-        }        
-    TFLOGSTRING2( "CAiSatPlugin::PublishText() exits, error: \
-        %d", error )
-
-    return error;
-    }
- 
-// ---------------------------------------------------------------------------
-// Clean idle area text
-// ---------------------------------------------------------------------------
-// 
-TInt CAiSatPlugin::CleanText( MAiContentObserver& aObserver )
-    {
-    TFLOGSTRING( "CAiSatPlugin::CleanText() starts" )
-    TInt error( KErrNotSupported );
-
-    error = aObserver.Clean( *this, KSatContent[ESatContentText].id,
-                             ESatContentText );  
-                             
-    TFLOGSTRING2( "CAiSatPlugin::CleanText() exits, error %d", error )   
-    
-    return error;                          
-    }
-    
-// ---------------------------------------------------------------------------
-// Publishes the SAT Set Up Idle Mode Text and or Icon
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::PublishSatL()
-    {
-    TFLOGSTRING( "CAiSatPlugin::PublishSatL() starts" )
-    
-    TInt error( KErrNone );
-    TInt iconError( KErrNone );
-    TInt textError( KErrNone );
-    TInt observers( iObservers.Count() );
-    TInt transactionId( KImplUidSatPlugin );
-    MAiContentObserver* observer( NULL );
-    CGulIcon* icon( NULL ); // The icon for publishing.
-    TInt i( 0 );
-    TBool commitNeeded( EFalse );
-    
-    // Publish sat data to all observers.
-    TFLOGSTRING2( "CAiSatPlugin::PublishSatL() observer count: %i", observers )        
-    for ( i = 0; i < observers; i++ )
-        {
-        commitNeeded = EFalse;
-        observer = iObservers[i];
-        TFLOGSTRING2( "CAiSatPlugin::PublishSatL() observer id: %i", observer )
-        
-        // Start publish transaciton.
-        error = observer->StartTransaction( transactionId );
-        TCleanupItem item( TransactionCleanup, observer );
-        CleanupStack::PushL( item );
-
-        // Publish icon and text to idle mode area.
-        iEngine->ContentIconL( icon ); 
-        TPtrC text( KNullDesC );
-        iEngine->ContentText( text );  
-        if ( !icon && !text.Length() ) // Nothing
-            {
-            if ( !iDupIcon ) 
-                {
-                error = CleanIcon( *observer ); 
-                commitNeeded = ETrue;
-                }
-            if ( !iDupText )
-                {
-                error = CleanText( *observer );
-                commitNeeded = ETrue;                
-                }
-            }
-        else if ( icon && !text.Length() ) // Icon only
-            {
-            if ( !iDupIcon )                
-                { 
-                error = CleanIcon( *observer ); 
-                iconError = PublishIcon( *observer, icon );
-                commitNeeded = ETrue;
-                }  
-            if ( !iDupText )
-                {
-                error = CleanText( *observer );  
-                commitNeeded = ETrue;
-                }
-            }            
-        else if ( !icon && text.Length() ) // Text only
-            {   
-            if ( !iDupIcon ) 
-                {
-                error = CleanIcon( *observer );
-                commitNeeded = ETrue;
-                }
-            if ( !iDupText )
-                {
-                error = CleanText( *observer );
-                textError = PublishText( *observer, text );
-                commitNeeded = ETrue;
-                }
-            }
-        else // Text and icon
-            {
-            if ( !iDupIcon )                
-                {
-                error = CleanIcon( *observer );
-                iconError = PublishIcon( *observer, icon );
-                commitNeeded = ETrue;
-                }            
-            if ( !iDupText )
-                {
-                error = CleanText( *observer );
-                textError = PublishText( *observer, text );
-                commitNeeded = ETrue;
-                }              
-            }    
-                     
-        // Commit the publishing of the icon and text.
-        if ( !textError && !iconError && commitNeeded )
-            {
-            TFLOGSTRING( "CAiSatPlugin::PublishSatL() commit transaction" )  
-            error = observer->Commit( transactionId );
-            }
-        else
-            {
-            TFLOGSTRING( "CAiSatPlugin::PublishSatL() cancel transaction" )  
-            error = observer->CancelTransaction( transactionId );
-            }   
-        CleanupStack::Pop();
-        }
-
-    TFLOGSTRING( "CAiSatPlugin::PublishSatL() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::Start
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::Start( TStartReason /*aReason*/ )
-    {    
-    TFLOGSTRING( "CAiSatPlugin::Start() starts" )
-    
-    iPublishRequired = ETrue;
-    
-    TFLOGSTRING( "CAiSatPlugin::Start() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::Stop
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::Stop( TStopReason /*aReason*/ )
-    {
-    TFLOGSTRING( "CAiSatPlugin::Stop() starts - exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::Resume
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::Resume( TResumeReason aReason )
-    {
-    TFLOGSTRING2( "CAiSatPlugin::Resume() reason %d", aReason )
-
-    if ( aReason == EForeground )
-        {
-        if ( iPublishRequired )
-            {
-            iPublishRequired = EFalse;
-            
-            TRAP_IGNORE( UpdateSatL() )                       
-            }
-        }
-            
-    TFLOGSTRING( "CAiSatPlugin::Resume() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::Suspend
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::Suspend( TSuspendReason aReason )
-    {
-    TFLOGSTRING( "CAiSatPlugin::Suspend() starts" )
-    
-    if ( aReason == EGeneralThemeChange )
-        {
-        iPublishRequired = ETrue;
-        }
-    
-    TFLOGSTRING( "CAiSatPlugin::Suspend() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::SubscribeL
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::SubscribeL( MAiContentObserver& aObserver )
-    {
-    TFLOGSTRING( "CAiSatPlugin::SubscribeL() starts" )
-
-    iObservers.AppendL( &aObserver );
-
-    TFLOGSTRING( "CAiSatPlugin::SubscribeL() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::ConfigureL
-// 
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::ConfigureL( RAiSettingsItemArray& aSettings )
-    {
-    TFLOGSTRING( "CAiSatPlugin::ConfigureL() starts" )
-
-    TInt count = aSettings.Count();
-    TFLOGSTRING2( "CAiSatPlugin::ConfigureL  count: %d", count )
-    if ( count > 0 )
-        {
-        TInt i( 0 );
-        for ( i = 0; i < count; i++ )
-            {
-            MAiPluginSettings* settings = aSettings[i];
-            MAiPluginSettingsItem& item = settings->AiPluginSettingsItem();
-            item.SetValueL( item.Value(), EFalse );
-            }
-        TFLOGSTRING2( "CAiSatPlugin::ConfigureL  i: %d", i )    
-        }
-	
-    TFLOGSTRING( "CAiSatPlugin::ConfigureL() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// CAiSatPlugin::GetProperty
-// 
-// ---------------------------------------------------------------------------
-//
-TAny* CAiSatPlugin::GetProperty( TProperty aProperty )
-    {
-    TFLOGSTRING( "CAiSatPlugin::GetProperty() starts" )
-    
-    TAny* property( NULL );
-    
-    TFLOGSTRING2( "CAiSatPlugin::GetProperty aProperty: %d", aProperty )
-
-    if ( aProperty == EPublisherContent )
-        {            
-        property = iContent;            
-        }
-    else if ( aProperty == EPublisherResources )
-        {
-        property = iResources;
-        }
-    else if ( aProperty == EPublisherEvents )
-        {
-        property = iEvents;
-        }
-
-    TFLOGSTRING( "CAiSatPlugin::GetProperty() exits" )
-
-    return property;
-    }
-
-// ---------------------------------------------------------
-// This method is called from the engine, when the P&S
-// data content has been changed. Method call is made through
-// the MPluginAPI interface.
-// ---------------------------------------------------------
-//
-void CAiSatPlugin::NotifyContentUpdate()
-    {
-    TFLOGSTRING( "CAiSatPlugin::NotifyContentUpdate() starts" )
-    
-    if ( iEngine )
-        {
-        // Get the idle mode data first.
-        TRAP_IGNORE( iEngine->PrepareIdleModeDataL( iDupIcon, iDupText ) );
-        
-        // Send response to client side
-        TRAP_IGNORE( iEngine->HandleNotifyL() );   
-                            
-        // Publish set up idle mode data           
-        TRAP_IGNORE( PublishSatL() );  
-        }
-
-    TFLOGSTRING( "CAiSatPlugin::NotifyContentUpdate() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-CAiSatPlugin::CAiSatPlugin()
-    {
-    TFLOGSTRING( "CAiSatPlugin::CAiSatPlugin() starts-exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::ConstructL()
-    {
-    TFLOGSTRING( "CAiSatPlugin::ConstructL() starts" )
-
-    iContent = AiUtility::CreateContentItemArrayIteratorL( KSatContent );
-    iResources = AiUtility::CreateContentItemArrayIteratorL( KSatResources );
-    iEvents = AiUtility::CreateContentItemArrayIteratorL( KSatEvents );
-
-    iEngine = CAiSatEngine::NewL( *this );
-
-    TFLOGSTRING( "CAiSatPlugin::ConstructL() exits" )
-    }
-
-// ---------------------------------------------------------------------------
-// Update idle area when plug in reload.
-// ---------------------------------------------------------------------------
-//
-void CAiSatPlugin::UpdateSatL()
-    {
-    TFLOGSTRING( "CAiSatPlugin::UpdateSatL() starts" )
-    iEngine->PrepareIdleModeDataL( iDupIcon, iDupText );
-    PublishSatL();                
-    TFLOGSTRING( "CAiSatPlugin::UpdateSatL() exits" )
-    }
-
-// ============================ GLOBAL FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// Constructs and returns an application object.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
-    TInt& aTableCount )
-    {
-    TFLOGSTRING( "CAiSatPlugin::ImplementationGroupProxy() starts-exits" )
-    aTableCount =
-        sizeof( KImplementationTable ) / sizeof( TImplementationProxy );
-
-    return KImplementationTable;
-    }