idlefw/src/idleint/aiuiidleintegration.cpp
changeset 85 7feec50967db
parent 4 1a2a00e78665
child 86 e492551a0d54
--- a/idlefw/src/idleint/aiuiidleintegration.cpp	Tue Feb 02 00:23:10 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:  Window server plug-in manager.
-*
-*/
-
-
-#include "aiuiidleintegrationimpl.h"
-#include "aifweventhandler.h"
-
-#include <coemain.h>
-#include <coeaui.h>
-#include <eikenv.h>
-#include <apgtask.h>
-#include <AknIncallBubbleNotify.h>
-#include <aknsoundsystem.h>
-#include <apgwgnam.h> 
-#include <AknDef.h>
-#include <AknCapServerDefs.h> 
-#include <startupdomainpskeys.h>
-#include <aiutility.h>
-#include <aipspropertyobserver.h>
-#include <aisystemuids.hrh>
-
-#include "aistate.h"
-#include "aifwpanic.h"
-#include "activeidle2domainpskeys.h"
-
-#include <ctsydomainpskeys.h>
-
-#include <AknSgcc.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::NewL()
-// ----------------------------------------------------------------------------
-//
-CAiUiIdleIntegrationImpl* CAiUiIdleIntegrationImpl::NewL( CEikonEnv& aEikEnv,         
-    const TAiIdleKeySoundConfig& aKeySoundConfig,
-    MAiFwEventHandler* aAiFwEventHandler )
-    {
-    CAiUiIdleIntegrationImpl* self = 
-        new ( ELeave ) CAiUiIdleIntegrationImpl( aEikEnv, aAiFwEventHandler );
-                                              
-    CleanupStack::PushL( self );
-    self->ConstructL( aKeySoundConfig );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::~CAiUiIdleIntegrationImpl()
-// ----------------------------------------------------------------------------
-//
-CAiUiIdleIntegrationImpl::~CAiUiIdleIntegrationImpl()
-    {
-    delete iActiveIdleState;
-    
-    delete iIncallBubble;
-    
-    Release( iSystemStateObserver );
-    
-    Release( iUiStartupStateObserver );
-    
-    Release( iCallStatusObserver );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::CAiUiIdleIntegrationImpl()
-// ----------------------------------------------------------------------------
-//
-CAiUiIdleIntegrationImpl::CAiUiIdleIntegrationImpl( CEikonEnv& aEikEnv,
-    MAiFwEventHandler* aAiFwEventHandler )
-    : iEikEnv( aEikEnv ),
-      iAiFwEventHandler( aAiFwEventHandler )
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::ConstructL()
-// ----------------------------------------------------------------------------
-//
-void CAiUiIdleIntegrationImpl::ConstructL(
-    const TAiIdleKeySoundConfig& aKeySoundConfig )       
-    {   
-	iIncallBubble = CAknIncallBubble::NewL();
-	
-    iActiveIdleState = CActiveIdleState::NewL();
-           
-    // Set up keysounds
-    if( aKeySoundConfig.iKeySounds )
-        {
-        aKeySoundConfig.iKeySounds
-            ->PushContextL( aKeySoundConfig.iContextResId );            
-        }
-    
-    // Set Active Idle application to be system application and disable
-    // priority switching performed by window server.
-    iEikEnv.SetSystem( ETrue );
-    iEikEnv.WsSession().ComputeMode( RWsSession::EPriorityControlDisabled ); 
-             
-    // Eikon server window group
-    iThisApplicationWgId = iEikEnv.RootWin().Identifier();
-
-    iEikEnv.RootWin().EnableFocusChangeEvents(); 
-    iEikEnv.RootWin().EnableGroupChangeEvents();
-    
-    CApaWindowGroupName::FindByAppUid( KAknCapServerUid, 
-                                       iEikEnv.WsSession(), 
-                                       iEikonServerWgId );
-	           
-    iActiveIdleState->SetIsIdleForeground( iThisApplicationForeground );
-      
-    iSystemStateObserver = AiUtility::CreatePSPropertyObserverL(                      
-                            TCallBack( HandleSystemStateChange, this ),            
-                                       KPSUidStartup, 
-                                       KPSGlobalSystemState );
-              
-    iUiStartupStateObserver = AiUtility::CreatePSPropertyObserverL(                           
-                                TCallBack( HandleUiStartupStateChange, this ),            
-                                           KPSUidStartup, 
-                                           KPSStartupUiPhase );        
-                 
-    iCallStatusObserver = AiUtility::CreatePSPropertyObserverL(          
-                            TCallBack( HandleCallEvent, this ),  
-                                       KPSUidCtsyCallInformation, 
-                                       KCTsyCallState );  
-    
-    // Update state flags.    
-    CAiUiIdleIntegrationImpl::HandleSystemStateChange( this );
-    CAiUiIdleIntegrationImpl::HandleUiStartupStateChange( this );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::ActivateUI()
-// ----------------------------------------------------------------------------
-//
-void CAiUiIdleIntegrationImpl::ActivateUI()
-    {       
-    if( iUiStartupPhaseOk && iSystemStateOk )
-        {      
-        RWsSession& wsSession( iEikEnv.WsSession() );
-        
-        TInt focusWgId( wsSession.GetFocusWindowGroup() );
-        
-        if( iThisApplicationWgId != focusWgId )
-            {                       
-            TApaTaskList taskList( wsSession );
-            
-            TApaTask task( taskList.FindApp( TUid::Uid( AI_UID3_AIFW_EXE ) ) );
-            
-            task.SendSystemEvent( EApaSystemEventBroughtToForeground );            
-            }
-
-        iAiFwEventHandler->HandleActivateUI();
-        }    
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::HandleWsEventL()
-// ----------------------------------------------------------------------------
-//
-void CAiUiIdleIntegrationImpl::HandleWsEventL( const TWsEvent& aEvent, 
-    CCoeControl* /*aDestination*/ )
-    {
-    if( !iSystemStateOk || !iUiStartupPhaseOk )
-        {                
-        return;
-        }
-      
-    switch ( aEvent.Type() )
-    	{
-    	case KAknFullOrPartialForegroundGained:	
-        	{
-            if ( !iThisApplicationForeground )
-            	{
-                iThisApplicationForeground = ETrue;
-                iActiveIdleState->SetIsIdleForeground( ETrue );
-               	SetCallBubbleIfNeededL();
-                }
-          	break;
-        	}
-                
-        case KAknFullOrPartialForegroundLost:
-        	{
-        	if ( iThisApplicationForeground )
-            	{
-            	iThisApplicationForeground = EFalse;
-                iActiveIdleState->SetIsIdleForeground( EFalse );
-                ClearCallBubbleL();
-                }
-        	break;
-        	}
-        
-    	case EEventKeyDown:
-    	    {
-            if( aEvent.Key()->iScanCode == EStdKeyDevice0 )
-            	{
-            	TBool isDialog( iEikEnv.AppUi()->IsDisplayingMenuOrDialog() );
-            	
-            	if( isDialog || iAiFwEventHandler->QueryIsMenuOpen() )
-            	    {
-                    RProperty::Set(
-                        KPSUidAiInformation, 
-                        KActiveIdlePopupState, 
-                        EPSAiDisplayingMenuOrDialog );
-            	    }
-            	else
-            	    {
-                    RProperty::Set(
-                        KPSUidAiInformation, 
-                        KActiveIdlePopupState, 
-                        EPSAiNotDisplayingMenuOrDialog );
-            	    }
-            	} 
-    	    break;
-    	    }
-                
-    	default:
-    	    {
-    		break;
-    	    }
-    	}
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::SetCallBubbleIfNeededL()
-// ----------------------------------------------------------------------------
-//
-void CAiUiIdleIntegrationImpl::SetCallBubbleIfNeededL()
-	{
-    if( !iIncallBubbleAllowed )
-    	{
-        TInt callStatus( 0 );
-            	
-        TInt err( RProperty::Get( KPSUidCtsyCallInformation,
-                                  KCTsyCallState,
-                                  callStatus ) );
-        
-        // Call ongoing => show bubble
-	  	if( err == KErrNone && callStatus > EPSCTsyCallStateNone )
-	      	{
-	       	iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue );                	
-	       	iIncallBubbleAllowed = ETrue;
-	       	}    
-    	}
-	}
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::ClearCallBubbleL()
-// ----------------------------------------------------------------------------
-//
-void CAiUiIdleIntegrationImpl::ClearCallBubbleL()
-	{
-	 if( iIncallBubbleAllowed )
-    	{
-    	iIncallBubble->SetIncallBubbleAllowedInIdleL( EFalse );
-    	iIncallBubbleAllowed = EFalse;
-    	}        
-	}
-    
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegration::NewL()
-// ----------------------------------------------------------------------------
-//
-EXPORT_C CAiUiIdleIntegration* CAiUiIdleIntegration::NewL( CEikonEnv& aEikEnv, 
-    const TAiIdleKeySoundConfig& aKeySoundConfig,
-    MAiFwEventHandler* aAiFwEventHandler )
-    {
-    return CAiUiIdleIntegrationImpl::NewL( aEikEnv, aKeySoundConfig,                                             
-                                           aAiFwEventHandler );
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::HandleSystemStateChange()
-// ----------------------------------------------------------------------------
-//
-TInt CAiUiIdleIntegrationImpl::HandleSystemStateChange( TAny* aPtr )
-    {
-    __ASSERT_DEBUG( aPtr, 
-            AiFwPanic::Panic( AiFwPanic::EAiFwPanic_NullPointerReference ) );
-    
-    CAiUiIdleIntegrationImpl* self = 
-        static_cast<CAiUiIdleIntegrationImpl*>( aPtr );
-           
-    if( !self->iSystemStateOk )
-        {
-        TInt state( 0 );
-        
-        self->iSystemStateObserver->Get( state );               
-
-        if ( state == ESwStateCriticalPhaseOK ||
-             state == ESwStateNormalRfOn || 
-             state == ESwStateNormalRfOff ||
-             state == ESwStateNormalBTSap )        
-            {
-            self->iSystemStateOk = ETrue;            
-            self->ActivateUI();
-            }        
-        }
-              
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::HandleUiStartupStateChange()
-// ----------------------------------------------------------------------------
-//
-TInt CAiUiIdleIntegrationImpl::HandleUiStartupStateChange( TAny *aPtr )
-    {
-    __ASSERT_DEBUG( aPtr, 
-            AiFwPanic::Panic( AiFwPanic::EAiFwPanic_NullPointerReference ) );
-    
-    CAiUiIdleIntegrationImpl* self = 
-        static_cast<CAiUiIdleIntegrationImpl*>( aPtr );
-
-    if( !self->iUiStartupPhaseOk )
-        {
-        TInt state( 0 );
-        
-        self->iUiStartupStateObserver->Get( state );
-        
-        if( state == EStartupUiPhaseAllDone )
-            {
-            self->iUiStartupPhaseOk = ETrue;
-            
-            self->ActivateUI();
-            }
-        }
-    
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CAiUiIdleIntegrationImpl::HandleCallEvent()
-// ----------------------------------------------------------------------------
-//
-TInt CAiUiIdleIntegrationImpl::HandleCallEvent( TAny* aPtr )
-	{
-	__ASSERT_DEBUG( aPtr, 
-	        AiFwPanic::Panic( AiFwPanic::EAiFwPanic_NullPointerReference ) );
-    
-	CAiUiIdleIntegrationImpl* self = 
-        static_cast<CAiUiIdleIntegrationImpl*>( aPtr );
-        
-	TInt callStatus( EPSCTsyCallStateNone );
-	
-	TInt err( self->iCallStatusObserver->Get( callStatus ) );
-	
-	if( err == KErrNone )
-		{
-		// Call ongoing => show bubble if not showing already
-		TBool allowed = EFalse;
-		
-		if( !self->iIncallBubbleAllowed &&
-		     self->iThisApplicationForeground &&
-		    ( callStatus > EPSCTsyCallStateNone ) )
-			{
-			allowed = ETrue;
-    		
-			TRAP( err, 
-                self->iIncallBubble->SetIncallBubbleAllowedInIdleL( allowed ) );
-			        
-    		
-			if( err == KErrNone )
-    		    {
-    			self->iIncallBubbleAllowed = allowed;
-    		    }
-			}
-		// No call ongoing => hide if bubble is visible			
-		else if( self->iIncallBubbleAllowed && callStatus <= EPSCTsyCallStateNone )
-			{
-			allowed = EFalse;
-			
-    		TRAP( err, 
-                self->iIncallBubble->SetIncallBubbleAllowedInIdleL( allowed ) );
-    		
-    		if( err == KErrNone )
-    		    {
-    			self->iIncallBubbleAllowed = allowed;
-    		    }
-			}
-		}
-	
-	return err;
-	}
-
-// End of file.
-