coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp
branchRCL_3
changeset 10 469fa8a78de7
parent 6 a72ff4214918
child 17 5e7d68cc22e0
--- a/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp	Tue May 25 12:52:36 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/sysapdefaultkeyhandler.cpp	Wed Jun 09 09:52:12 2010 +0300
@@ -37,6 +37,7 @@
 #include <centralrepository.h> //for CRepository
 #include <settingsinternalcrkeys.h>
 #include <keylockpolicyapi.h>
+#include <ctsydomainpskeys.h>
 #include "sysapdefaultkeyhandler.h"
 #include "sysapcallback.h"
 #include "SysAp.hrh"
@@ -128,6 +129,9 @@
     //Load keylock slide handling CR 
     TRAP_IGNORE( iSlideRepository = CRepository::NewL( KCRUidSlideSettings ) );
     iKeylockPolicy = CKeyLockPolicyApi::NewL( EPolicyActivateKeyguard );
+
+    //Load PhoneCallStatus P&S  
+    TInt err = iCallStateProperty.Attach(KPSUidCtsyCallInformation, KCTsyCallState);
     }
 
 // ---------------------------------------------------------------------------
@@ -216,26 +220,41 @@
 					}
 				else
 					{ // keylock action is defined by user setting
-					TInt keyGuardSetting;
-					iSlideRepository->Get( KSlideKeyguard, keyGuardSetting );
-					switch( ( TSlideSettingKeyguard ) keyGuardSetting )
-						{
-						case ESlideSettingsKeyguardActivatingOn: 
-						    iKeylock->EnableKeyLock();
-						    break;
-						case ESlideSettingsKeyguardActivatingAskMe: 
-						    iKeylock->OfferKeyLock();
-							break;
-						case ESlideSettingsKeyguardActivatingOff: 
-						    //do nothing
-						    break;
-						case ESlideSettingsKeyguardActivatingAutomatic: 
-						    if( iKeypadWasLocked )
-							    {
-								iKeylock->EnableKeyLock();
-								}
-							break;
-						}
+                    TInt status(0);
+                    TInt err = iCallStateProperty.Get( status );
+                    if (err == KErrNone)
+                        {
+                        switch ( status )
+                            {
+                            case EPSCTsyCallStateUninitialized:
+                            case EPSCTsyCallStateNone:
+                                {
+    
+                                TInt keyGuardSetting;
+                                iSlideRepository->Get( KSlideKeyguard, keyGuardSetting );
+                                switch( ( TSlideSettingKeyguard ) keyGuardSetting )
+                                    {
+                                    case ESlideSettingsKeyguardActivatingOn: 
+                                        iKeylock->EnableKeyLock();
+                                        break;
+                                    case ESlideSettingsKeyguardActivatingAskMe: 
+                                        iKeylock->OfferKeyLock();
+                                        break;
+                                    case ESlideSettingsKeyguardActivatingOff: 
+                                        //do nothing
+                                        break;
+                                    case ESlideSettingsKeyguardActivatingAutomatic: 
+                                        if( iKeypadWasLocked )
+                                            {
+                                            iKeylock->EnableKeyLock();
+                                            }
+                                        break;
+                                    }
+                                }
+                            default: // any other state
+                                break;
+                            }
+                        }
 					}
                 // apply default light control
                 iCallback.ExecCommandL( MSysapCallback::EUpdateLights, TUpdateLightsBuf(EKeyGripClose) );