idlefw/src/framework/aifw.cpp
changeset 60 f62f87b200ec
parent 4 1a2a00e78665
child 61 8e5041d13c84
--- a/idlefw/src/framework/aifw.cpp	Tue Feb 02 00:23:10 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,542 +0,0 @@
-/*
-* Copyright (c) 2005-2008 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:  Main AI framework class
-*
-*/
-
-
-#include <bautils.h>
-#include <coemain.h>
-#include <ConeResLoader.h>
-#include <e32property.h>
-#include <startupdomainpskeys.h>
-#include <activeidle2domainpskeys.h>
-#include <activeidle2internalpskeys.h>
-#include <cenrepnotifyhandler.h>
-#include <aipspropertyobserver.h>
-#include <aisystemuids.hrh>
-
-#include <AknWaitDialog.h>
-#include <AknGlobalNote.h>
-#include <StringLoader.h>
-
-
-#include <e32cmn.h>
-#include <e32def.h>
-
-#include "aifw.h"
-#include "aifwpanic.h"
-#include "aiutility.h"
-#include "aiuicontrollermanager.h"
-#include "aiuicontroller.h"
-#include "aicontentmodel.h"
-#include "aicontentpluginmanager.h"
-#include "aiwspluginmanager.h"
-#include "aipluginstatemanager.h"
-#include "aiidleappregister.h"
-#include "debug.h"
-
-#include <centralrepository.h>
-#include <activeidle2domaincrkeys.h>
-#include "ainetworklistener.h"
-
-
-#include <data_caging_path_literals.hrh>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CAiFw::NewL()
-// ----------------------------------------------------------------------------
-//
-CAiFw::CAiFw()
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::ConstructL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::ConstructL()
-    {
-#if 0
-    // For AI3_test    
-    RProcess proc;
-    // 0x102750F0 in AI3, 0x2001CB4F in AI3_Test
-    TSecureId secId( proc.SecureId() ); 
-                                           
-    if( secId == 0x2001CB4F )
-        {
-        iAIRepository = CRepository::NewL( TUid::Uid( 0x2001952B ) );
-        }   
-    else
-        {
-        iAIRepository = CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
-        }
-#else
-    iAIRepository = CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
-#endif
-        
-    TInt value( 0 );
-    
-    iAIRepository->Get( KAiMainUIController, value );
-    
-    if( !( value == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML ||
-           value == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE ||
-           value == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML ||
-           value == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE ) )
-        {
-        // Someone wrote an invalid configuration! Reset repository.
-        iAIRepository->Reset( KAiMainUIController );
-        iAIRepository->Reset( KAiFirstUIController );
-        iAIRepository->Delete( KAiFirstUIController + 1 );
-        }
-    
-    iUiControllerManager = CAiUiControllerManager::NewL();
-           
-    iPluginManager = CAiContentPluginManager::NewL();
-                                                                   
-    // Hook framework as UI event observer
-    iUiControllerManager->SetEventHandler( *this );    
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::NewLC()
-// ----------------------------------------------------------------------------
-//
-EXPORT_C CAiFw* CAiFw::NewLC()
-    {
-    CAiFw* self = new ( ELeave ) CAiFw;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-
-    __TICK( "FW: Core FW constructed" );
-    __HEAP( "FW: Core FW constructed" );
-    
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::~CAiFw()
-// ----------------------------------------------------------------------------
-//
-CAiFw::~CAiFw()
-    {
-    if( iPluginManager )
-        {
-        delete iPluginManager;
-        iPluginManager = NULL;
-        }
-        
-    if( iIdleRestartObserver )
-        {
-        Release( iIdleRestartObserver );
-        iIdleRestartObserver = NULL;
-        }
-    
-    if( iWsPluginManager )
-        {
-        delete iWsPluginManager;
-        iWsPluginManager = NULL;
-        }
-        
-    if( iUiControllerManager )
-        {
-        delete iUiControllerManager;
-        iUiControllerManager = NULL;
-        }
-    
-    if( iNotifyHandler )
-        {
-        iNotifyHandler->StopListening();
-        delete iNotifyHandler;
-        iNotifyHandler = NULL;
-        }
-    
-    if( iNotifyHandlerESS )
-        {
-        iNotifyHandlerESS->StopListening();
-        delete iNotifyHandlerESS;
-        iNotifyHandlerESS = NULL;
-        }
-    
-    if( iAIRepository )
-        {
-        delete iAIRepository;
-        iAIRepository = NULL;
-        }
-    
-    iLibrary1.Close();
-    iLibrary2.Close();
-    iLibrary3.Close();
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::RunL()
-// ----------------------------------------------------------------------------
-//
-EXPORT_C void CAiFw::RunL()
-    {
-    CAiIdleAppRegister* idleReg = CAiIdleAppRegister::NewLC();
-    idleReg->RegisterL();
-    CleanupStack::PopAndDestroy( idleReg );
-
-    // Tell UI controller manager to start application framework and event loop.
-    // This function returns only when the application is shut down.
-    // See in CAiFw::HandleUiReadyEventL how the framework initialization continues.
-    iUiControllerManager->RunApplicationL();
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::AppEnvReadyL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::AppEnvReadyL()
-    {
-    // Initialize members which need to be connected to the app environment's
-    // active scheduler or depend on the app environment being initialized.
-
-    // Create state managers system state observers
-    CAiPluginStateManager& stateManager( iPluginManager->StateManager() );
-    
-    stateManager.CreateSystemStateObserversL();
-
-    // Connect state managers UI observer to UI controllers
-    MAiUiFrameworkObserver* fwObserver( stateManager.UiFwObserver() );
-    
-    if ( fwObserver )
-        {
-        iUiControllerManager->AddObserverL( *fwObserver );
-        }
-
-    // Create WS pluign manager
-    iWsPluginManager = CAiWsPluginManager::NewL
-        ( iUiControllerManager->CoeEnv() );
-
-    // CenRep notifier to listen key changes in cenrep. Application is restarted
-    // if key value is changed.
-    iNotifyHandler = CCenRepNotifyHandler::NewL( *this,
-                                                 *iAIRepository,
-                                                 CCenRepNotifyHandler::EIntKey,
-                                                 KAiMainUIController );
-    iNotifyHandler->StartListeningL();
-
-    // Cenrep notifier to listen ESS changes in cenrep
-    //
-    iNotifyHandlerESS = CCenRepNotifyHandler::NewL( *this,
-                                                    *iAIRepository,
-                                                     CCenRepNotifyHandler::EIntKey,
-                                                     KAIExternalStatusScreen );
-    iNotifyHandlerESS->StartListeningL();
-
-    iIdleRestartObserver = AiUtility::CreatePSPropertyObserverL(
-                        TCallBack( HandleRestartEvent, this ),
-                        KPSUidAiInformation,
-                        KActiveIdleRestartAI2 );
-    
-    stateManager.ReportStateChange( ESMAISystemBoot );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandleUiReadyEventL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleUiReadyEventL( CAiUiController& aUiController )
-    {         
-    if( iUiControllerManager->IsMainUiController( aUiController ) )
-        {
-        iUiControllerManager->LoadUIDefinition();
-                
-        TInt value( EIdlePhase1Ok );
-        
-        RProperty::Get( KPSUidStartup, 
-                        KPSIdlePhase1Ok, 
-                        value );
-                                                      
-        if( value == EIdlePhase1NOK )
-            {
-            RProperty::Set( KPSUidStartup, 
-                            KPSIdlePhase1Ok, 
-                            EIdlePhase1Ok );                                                          
-            }    
-        
-        if( !iLibrariesLoaded )
-            {
-            _LIT( KAIVoiceUIDialer, "VoiceUiNameDialer.dll" );
-            _LIT( KAIVoiceUIRecog, "VoiceUiRecognition.dll" );
-            _LIT( KAIVCommandHandler, "vcommandhandler.dll" );
-            
-            iLibrary1.Load( KAIVoiceUIDialer );
-            iLibrary2.Load( KAIVoiceUIRecog );
-            iLibrary3.Load( KAIVCommandHandler );        
-            
-            iLibrariesLoaded = ETrue;
-            }
-        
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAiFw::HandleActivateUI()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleActivateUI()
-    {
-    iUiControllerManager->ActivateUI();         
-    }
-
-// ---------------------------------------------------------------------------
-// CAiFw::HandleUiShutdown()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleUiShutdown( CAiUiController& aUiController )
-    {
-    if( iUiControllerManager->IsMainUiController( aUiController ) )
-        {
-        if( iNotifyHandler )
-            {
-            iNotifyHandler->StopListening();
-            delete iNotifyHandler;
-            iNotifyHandler = NULL;
-            }
-
-        if( iNotifyHandlerESS )
-            {
-            iNotifyHandlerESS->StopListening();
-            delete iNotifyHandlerESS;
-            iNotifyHandlerESS = NULL;
-            }
-        
-        iPluginManager->PluginFactory().DestroyPlugins();
-
-        iPluginManager->StateManager().DestroySystemStateObservers();
-                
-        iUiControllerManager->DestroySecondaryUiControllers();
-
-        iUiControllerManager->RemoveObserver( 
-                *iPluginManager->StateManager().UiFwObserver() );
-        
-        if( iWsPluginManager )
-            {
-            delete iWsPluginManager;
-            iWsPluginManager = NULL;
-            }
-        
-        if( iIdleRestartObserver )
-            {
-            Release( iIdleRestartObserver );
-            iIdleRestartObserver = NULL;
-            } 
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandleLoadPluginL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleLoadPluginL( const TAiPublisherInfo& aPublisherInfo )
-    {           
-    iPluginManager->PluginFactory().CreatePluginL( 
-       aPublisherInfo, iUiControllerManager->UiControllers() );                                                                                                                                                 
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandleDestroyPluginL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleDestroyPluginL( const TAiPublisherInfo& aPublisherInfo )
-    {    
-    iPluginManager->PluginFactory().DestroyPluginL(
-        aPublisherInfo, iUiControllerManager->UiControllers() );                                                                            
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandlePluginEvent()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandlePluginEvent( const TDesC& aParam )
-    {
-    iPluginManager->HandlePluginEvent( aParam );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandlePluginEventL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandlePluginEventL( const TAiPublisherInfo& aPublisherInfo, 
-    const TDesC& aParam )
-    {
-    iPluginManager->HandlePluginEventL( aPublisherInfo, aParam );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HasMenuItemL()
-// ----------------------------------------------------------------------------
-//
-TBool CAiFw::HasMenuItemL( const TAiPublisherInfo& aPublisherInfo, 
-    const TDesC& aMenuItem )
-    {            
-    return iPluginManager->HasMenuItemL( aPublisherInfo, aMenuItem ); 
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::RefreshContent()
-// ----------------------------------------------------------------------------
-//
-TBool CAiFw::RefreshContent( const TDesC& aContentCid )
-    {
-    return iPluginManager->RefreshContent( aContentCid );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::ProcessStateChange()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::ProcessStateChange( TAifwStates aState )     
-    {
-    switch ( aState )
-    	{
-    	case EAifwOnline :
-    		{
-    		iPluginManager->ProcessOnlineState( ETrue );
-    		}
-    		break;
-    	case EAifwOffline :
-			{
-			iPluginManager->ProcessOnlineState( EFalse );
-			}
-			break;
-    	case EAifwPageSwitch:
-    		{
-    		iPluginManager->StateManager().ReportStateChange( ESMAIPageSwitch );
-    		}
-    		break;
-    	default : 
-    		break;
-    	}
-    
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::QueryIsMenuOpen()
-// ----------------------------------------------------------------------------
-//
-TBool CAiFw::QueryIsMenuOpen()
-    {
-    return iUiControllerManager->MainUiController().IsMenuOpen();
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandleNotifyInt()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::HandleNotifyInt( TUint32 aId, TInt aNewValue )
-    {
-    switch( aId )
-        {
-        case KAiMainUIController:
-            if( aNewValue == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML ||
-                aNewValue == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE ||
-                aNewValue == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML ||
-                aNewValue == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE )
-                {
-                iUiControllerManager->ExitMainController();
-                }
-            else
-                {
-                // Someone wrote an invalid configuration! Reset repository.
-                if( iAIRepository )
-                    {
-                    iAIRepository->Reset( KAiMainUIController );
-                    iAIRepository->Reset( KAiFirstUIController );
-                    iAIRepository->Delete( KAiFirstUIController + 1 );
-                    }
-                }
-            break;
-        case KAIExternalStatusScreen:
-            if( ( aNewValue & 0x7FFFFFFF ) != 0 )
-                {
-                TRAP_IGNORE( SwapUiControllerL( EFalse ) );
-                }
-            else
-                {
-                TRAP_IGNORE( SwapUiControllerL( ETrue ) );
-                }
-            break;
-        default:
-            break;
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::SwapUiControllerL()
-// ----------------------------------------------------------------------------
-//
-void CAiFw::SwapUiControllerL( TBool aToExtHS )
-    {
-    TUid uid = { KCRUidActiveIdleLV };
-    CRepository* cenRep = CRepository::NewL( uid );
-
-    if( !aToExtHS ) // Switch to XML UI
-        {
-        cenRep->Create( KAiFirstUIController, 
-                AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE );
-        
-        cenRep->Set( KAiFirstUIController, 
-                AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE );
-        cenRep->Delete( KAiFirstUIController + 1 );
-        
-        cenRep->Set( KAiMainUIController, 
-                AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML );
-        }
-    else // Switch to ExtHS
-        {
-        cenRep->Delete( KAiFirstUIController );
-        cenRep->Delete( KAiFirstUIController + 1 );
-        cenRep->Set( KAiMainUIController, 
-                AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE );
-        }
-    
-    delete cenRep;
-
-    // Restart
-    iUiControllerManager->ExitMainController();
-    }
-
-// ----------------------------------------------------------------------------
-// CAiFw::HandleRestartEvent()
-// ----------------------------------------------------------------------------
-//
-TInt CAiFw::HandleRestartEvent( TAny* aSelf )
-    {
-    CAiFw* self = static_cast<CAiFw*>( aSelf );
-    
-    TInt value( 0 );
-    
-    if( self->iIdleRestartObserver )
-        {
-        TInt err( self->iIdleRestartObserver->Get( value ) );
-
-        // Check the PS keys value and call manager with approriate parameter.
-        // Report either "idle foreground" or "idle background"
-        if( value == KActiveIdleRestartCode )
-            {
-            self->iUiControllerManager->ExitMainController();
-            }
-        }
-    
-    return KErrNone;
-    }
-
-// End of file