phoneuis/TelephonyDeviceMode/src/CTelDMCommandHandler.cpp
changeset 21 92ab7f8d0eab
parent 0 5f000ab63145
child 22 6bb1b21d2484
equal deleted inserted replaced
4:c84cf270c54f 21:92ab7f8d0eab
    22 #include    <mphonedevicemodeobserver.h>
    22 #include    <mphonedevicemodeobserver.h>
    23 #include    <PSVariables.h>
    23 #include    <PSVariables.h>
    24 #include    <ctsydomainpskeys.h>
    24 #include    <ctsydomainpskeys.h>
    25 
    25 
    26 #include    "CTelDMCommandHandler.h"
    26 #include    "CTelDMCommandHandler.h"
    27 #include	"CTelDMCallStateListener.h"
    27 #include    "CTelDMCallStateListener.h"
    28 #include	"MTelDMAccessory.h"
    28 #include    "MTelDMAccessory.h"
    29 #include	"CTelDMDebug.h"
    29 #include    "CTelDMDebug.h"
    30 #include     <coreapplicationuisdomainpskeys.h>
    30 #include     <coreapplicationuisdomainpskeys.h>
    31 
    31 
    32 // MODULE DATA STRUCTURES
    32 // MODULE DATA STRUCTURES
    33  
    33  
    34 // ============================ MEMBER FUNCTIONS ===============================
    34 // ============================ MEMBER FUNCTIONS ===============================
    37 // CTelDMCommandHandler::NewL
    37 // CTelDMCommandHandler::NewL
    38 // 
    38 // 
    39 // -----------------------------------------------------------------------------
    39 // -----------------------------------------------------------------------------
    40 //  
    40 //  
    41 CTelDMCommandHandler* CTelDMCommandHandler::NewL( 
    41 CTelDMCommandHandler* CTelDMCommandHandler::NewL( 
    42 									MPhoneDeviceModeObserver& aCallHandler, 
    42                                     MPhoneDeviceModeObserver& aCallHandler, 
    43         							MTelDMAccessory& aAccessory ) 
    43                                     MTelDMAccessory& aAccessory ) 
    44     {
    44     {
    45     CTelDMCommandHandler* self =
    45     CTelDMCommandHandler* self =
    46         new ( ELeave ) CTelDMCommandHandler( aCallHandler, 
    46         new ( ELeave ) CTelDMCommandHandler( aCallHandler, 
    47         										aAccessory );
    47                                                 aAccessory );
    48     CleanupStack::PushL( self );
    48     CleanupStack::PushL( self );
    49     self->ConstructL();
    49     self->ConstructL();
    50     CleanupStack::Pop( self );
    50     CleanupStack::Pop( self );
    51     return self;
    51     return self;
    52     }
    52     }
    56 // CTelDMCommandHandler::CTelDMCommandHandler
    56 // CTelDMCommandHandler::CTelDMCommandHandler
    57 // 
    57 // 
    58 // -----------------------------------------------------------------------------
    58 // -----------------------------------------------------------------------------
    59 //
    59 //
    60 CTelDMCommandHandler::CTelDMCommandHandler( 
    60 CTelDMCommandHandler::CTelDMCommandHandler( 
    61 									MPhoneDeviceModeObserver& aCallHandler, 
    61                                     MPhoneDeviceModeObserver& aCallHandler, 
    62         							MTelDMAccessory& aAccessory ):
    62                                     MTelDMAccessory& aAccessory ):
    63     iCallHandler( aCallHandler ),
    63     iCallHandler( aCallHandler ),
    64     iAccessory ( aAccessory ),
    64     iAccessory ( aAccessory ),
    65     iGripOpen ( EFalse ),
    65     iGripOpen ( EFalse ),
    66     iGripOpenOnRingingState ( EFalse )
    66     iGripOpenOnRingingState ( EFalse )
    67     {
    67     {
    82 // 
    82 // 
    83 // -----------------------------------------------------------------------------
    83 // -----------------------------------------------------------------------------
    84 //    
    84 //    
    85 void CTelDMCommandHandler::ConstructL()
    85 void CTelDMCommandHandler::ConstructL()
    86     { 
    86     { 
    87     User::LeaveIfError( iKeyLock.Connect() );                		      
    87     User::LeaveIfError( iKeyLock.Connect() );                             
    88     }
    88     }
    89 
    89 
    90 // -----------------------------------------------------------------------------
    90 // -----------------------------------------------------------------------------
    91 // CTelDMCommandHandler::CallStateChanged()
    91 // CTelDMCommandHandler::CallStateChanged()
    92 // 
    92 // 
    93 // -----------------------------------------------------------------------------
    93 // -----------------------------------------------------------------------------
    94 //    
    94 //    
    95 void CTelDMCommandHandler::CallStateChangedL( TInt aCallState )
    95 void CTelDMCommandHandler::CallStateChangedL( TInt aCallState )
    96 	{
    96     {
    97 	FLOG( _L( "CTelDMCommandHandler::CallStateChanged<" ) )
    97     FLOG( _L( "CTelDMCommandHandler::CallStateChanged<" ) )
    98 	FTRACE( FPrint( _L( "CTelDMCommandHandler::CallStateChangedL.aCallState=%d"), 
    98     FTRACE( FPrint( _L( "CTelDMCommandHandler::CallStateChangedL.aCallState=%d"), 
    99     															aCallState ))
    99                                                                 aCallState ))
   100     iCallState = aCallState;															
   100     iCallState = aCallState;                                                            
   101     switch( aCallState )
   101     switch( aCallState )
   102         {  
   102         {  
   103         // Arriving call                    
   103         // Arriving call                    
   104         case EPSCTsyCallStateRinging: 
   104         case EPSCTsyCallStateRinging: 
   105         	FLOG( _L( "CTelDMCommandHandler::CallStateChanged.Ringing" ) )
   105             FLOG( _L( "CTelDMCommandHandler::CallStateChanged.Ringing" ) )
   106             RProperty::Set( KPSUidCoreApplicationUIs,
   106             RProperty::Set( KPSUidCoreApplicationUIs,
   107                             KCoreAppUIsSoftReject,
   107                             KCoreAppUIsSoftReject,
   108                             ECoreAppUIsSoftRejectUninitialized );
   108                             ECoreAppUIsSoftRejectUninitialized );
   109 			iGripOpenOnRingingState = iGripOpen;
   109             iGripOpenOnRingingState = iGripOpen;
   110 			break;
   110             break;
   111 		// Answered
   111         // Answered
   112         case EPSCTsyCallStateConnected:  
   112         case EPSCTsyCallStateConnected:  
   113         	{	
   113             {   
   114         	FLOG( _L( "CTelDMCommandHandler::CallStateChanged.Connected" ) )
   114             FLOG( _L( "CTelDMCommandHandler::CallStateChanged.Connected" ) )
   115         	if ( iGripOpenOnRingingState )
   115             if ( iGripOpenOnRingingState )
   116         		{
   116                 {
   117         		OfferKeyLock();	
   117                 OfferKeyLock(); 
   118         		}
   118                 }
   119         	
   119             
   120         	// Clear the flag.
   120             // Clear the flag.
   121         	iGripOpenOnRingingState = EFalse;
   121             iGripOpenOnRingingState = EFalse;
   122         	}
   122             }
   123         	break;
   123             break;
   124         // Disconnected 
   124         // Disconnected 
   125        	case EPSCTsyCallStateNone:
   125         case EPSCTsyCallStateNone:
   126        		{
   126             {
   127        		FLOG( _L( "CTelDMCommandHandler::CallStateChanged.None" ) )
   127             FLOG( _L( "CTelDMCommandHandler::CallStateChanged.None" ) )
   128        		if ( iGripOpenOnRingingState )
   128             if ( iGripOpenOnRingingState )
   129         		{
   129                 {
   130         		OfferKeyLock();	
   130                 OfferKeyLock(); 
   131         		}    		
   131                 }           
   132        		}
   132             }
   133        		break; 
   133             break; 
   134         default:
   134         default:
   135             break;
   135             break;
   136         }     
   136         }     
   137    	FLOG( _L( "CTelDMCommandHandler::CallStateChanged>" ) )  
   137     FLOG( _L( "CTelDMCommandHandler::CallStateChanged>" ) )  
   138 	}
   138     }
   139 // -----------------------------------------------------------------------------
   139 // -----------------------------------------------------------------------------
   140 // CTelDMCommandHandler::HandleEvent
   140 // CTelDMCommandHandler::HandleEvent
   141 // 
   141 // 
   142 // -----------------------------------------------------------------------------
   142 // -----------------------------------------------------------------------------
   143 //    
   143 //    
   145     {           
   145     {           
   146     FLOG( _L( "CTelDMCommandHandler::HandleCommand<" ) ) 
   146     FLOG( _L( "CTelDMCommandHandler::HandleCommand<" ) ) 
   147     switch( aCommand )
   147     switch( aCommand )
   148         {                      
   148         {                      
   149         case EGripOpen:
   149         case EGripOpen:
   150         	{
   150             {
   151         	FLOG( _L( "CTelDMCommandHandler::HandleCommand.Open" ) ) 
   151             FLOG( _L( "CTelDMCommandHandler::HandleCommand.Open" ) ) 
   152         	iGripOpen = ETrue;
   152             iGripOpen = ETrue;
   153         	if ( !IsSoftRejectOngoing() )
   153             if ( !IsSoftRejectOngoing() )
   154         	    {
   154                 {
   155         	    iCallHandler.Answer();
   155                 iCallHandler.Answer();
   156         	    }
   156                 }
   157         	}
   157             }
   158 			break;
   158             break;
   159 		// Do not end calls if accessory is connected. 
   159         // Do not end calls if accessory is connected. 
   160         case EGripClose:
   160         case EGripClose:
   161         	{
   161             {
   162         	FLOG( _L( "CTelDMCommandHandler::HandleCommand.Close" ) ) 
   162             FLOG( _L( "CTelDMCommandHandler::HandleCommand.Close" ) ) 
   163         	iGripOpen = EFalse;
   163             iGripOpen = EFalse;
   164         	EndCalls();
   164             EndCalls();
   165         	break;
   165             break;
   166         	}
   166             }
   167         default:
   167         default:
   168             break;
   168             break;
   169         }  
   169         }  
   170    	FLOG( _L( "CTelDMCommandHandler::HandleCommand>" ) )      
   170     FLOG( _L( "CTelDMCommandHandler::HandleCommand>" ) )      
   171     }
   171     }
   172     
   172     
   173 // -----------------------------------------------------------------------------
   173 // -----------------------------------------------------------------------------
   174 // CTelDMCommandHandler::EndCalls
   174 // CTelDMCommandHandler::EndCalls
   175 // 
   175 // 
   176 // -----------------------------------------------------------------------------
   176 // -----------------------------------------------------------------------------
   177 //    
   177 //    
   178 void CTelDMCommandHandler::EndCalls()
   178 void CTelDMCommandHandler::EndCalls()
   179 
   179 
   180 	{
   180     {
   181 	if ( IsEmergencyCall() )
   181     if ( IsEmergencyCall() )
   182 	    {
   182         {
   183 	    // None
   183         // None
   184 	    }
   184         }
   185 	else if ( iAccessory.IsAccessoryAttached()  &&
   185     else if ( iAccessory.IsAccessoryAttached()  &&
   186 		      !iAccessory.IsAnyActiveAccessory() &&
   186               !iAccessory.IsAnyActiveAccessory() &&
   187 		      iCallState == EPSCTsyCallStateConnected )
   187               iCallState == EPSCTsyCallStateConnected )
   188 		{
   188         {
   189 		FLOG( _L( "CTelDMCommandHandler::EndCalls#1" ) )
   189         FLOG( _L( "CTelDMCommandHandler::EndCalls#1" ) )
   190 		iCallHandler.EndVoiceCalls();
   190         iCallHandler.EndVoiceCalls();
   191 		}
   191         }
   192 	else if ( !iAccessory.IsAccessoryAttached() )
   192     else if ( !iAccessory.IsAccessoryAttached() )
   193 		{
   193         {
   194 		FLOG( _L( "CTelDMCommandHandler::EndCalls#2" ) )
   194         FLOG( _L( "CTelDMCommandHandler::EndCalls#2" ) )
   195 		iCallHandler.EndVoiceCalls();
   195         iCallHandler.EndVoiceCalls();
   196 		}
   196         }
   197 	}
   197     }
   198 // -----------------------------------------------------------------------------
   198 // -----------------------------------------------------------------------------
   199 // CTelDMCommandHandler::OfferKeyLock
   199 // CTelDMCommandHandler::OfferKeyLock
   200 //
   200 //
   201 // -----------------------------------------------------------------------------
   201 // -----------------------------------------------------------------------------
   202 //
   202 //
   203 void CTelDMCommandHandler::OfferKeyLock()
   203 void CTelDMCommandHandler::OfferKeyLock()
   204 
   204 
   205     {
   205     {
   206     //- AudioAccessory attached (BT headset, Wired headset etc.)
   206     //- AudioAccessory attached (BT headset, Wired headset etc.)
   207 	//- Arriving call and grip open.  
   207     //- Arriving call and grip open.  
   208 	//- Call terminated or answered  
   208     //- Call terminated or answered  
   209 	//-> KeyLock query is shown if not locked   	
   209     //-> KeyLock query is shown if not locked       
   210     if ( iAccessory.IsAccessoryAttached() && 
   210     if ( iAccessory.IsAccessoryAttached() && 
   211         							   !iGripOpen && 
   211                                        !iGripOpen && 
   212         							   !iKeyLock.IsKeyLockEnabled() )
   212                                        !iKeyLock.IsKeyLockEnabled() )
   213 		{
   213         {
   214 		FLOG( _L( "CTelDMCommandHandler::CallStateChanged -lock?" ) ) 
   214         FLOG( _L( "CTelDMCommandHandler::CallStateChanged -lock?" ) ) 
   215 		//Lock keypad ?
   215         //Lock keypad ?
   216 		iKeyLock.OfferKeyLock();
   216         iKeyLock.OfferKeyLock();
   217 		}  
   217         }  
   218     }
   218     }
   219 
   219 
   220 // ---------------------------------------------------------
   220 // ---------------------------------------------------------
   221 // CTelDMCommandHandler::IsEmergencyCall
   221 // CTelDMCommandHandler::IsEmergencyCall
   222 // ---------------------------------------------------------
   222 // ---------------------------------------------------------