phoneapp/phoneuistates/src/cphoneemergency.cpp
branchRCL_3
changeset 17 38529f706030
parent 14 24062c24fe38
child 31 ba54057fe027
equal deleted inserted replaced
15:2a26698d78ba 17:38529f706030
    39 #include "cphonemainresourceresolver.h"
    39 #include "cphonemainresourceresolver.h"
    40 #include "phonelogger.h"
    40 #include "phonelogger.h"
    41 #include "cphonepubsubproxy.h"
    41 #include "cphonepubsubproxy.h"
    42 #include "cphonekeys.h"
    42 #include "cphonekeys.h"
    43 #include "tphonecmdparamaudiooutput.h"
    43 #include "tphonecmdparamaudiooutput.h"
       
    44 #include "cphonesecuritymodeobserver.h"
    44 
    45 
    45 // ================= MEMBER FUNCTIONS =======================
    46 // ================= MEMBER FUNCTIONS =======================
    46 
    47 
    47 // C++ default constructor can NOT contain any code, that
    48 // C++ default constructor can NOT contain any code, that
    48 // might leave.
    49 // might leave.
   232             {
   233             {
   233             StartShowSecurityNoteL();
   234             StartShowSecurityNoteL();
   234             }
   235             }
   235         else
   236         else
   236             {
   237             {
   237             if ( !TopAppIsDisplayedL() || iDeviceLockOn  )
   238             if ( !TopAppIsDisplayedL() || iStateMachine->SecurityMode()->IsAutolockEnabled() )
   238                 {
   239                 {
   239                 // Continue displaying current app but set up the
   240                 // Continue displaying current app but set up the
   240                 // idle screen in the background
   241                 // idle screen in the background
   241                 SetupIdleScreenInBackgroundL();
   242                 SetupIdleScreenInBackgroundL();
   242                 }
   243                 }
   291                  !( IsSimStateNotPresentWithSecurityModeEnabled() &&
   292                  !( IsSimStateNotPresentWithSecurityModeEnabled() &&
   292                     !FeatureManager::FeatureSupported( KFeatureIdFfSimlessOfflineSupport ) ) )
   293                     !FeatureManager::FeatureSupported( KFeatureIdFfSimlessOfflineSupport ) ) )
   293                 {
   294                 {
   294                 UpdateCbaL( EPhoneEmptyCBA );
   295                 UpdateCbaL( EPhoneEmptyCBA );
   295 
   296 
   296                 TPhoneCmdParamBoolean securityMode;
   297                 if ( !iStateMachine->SecurityMode()->IsSecurityMode() )
   297                 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &securityMode );
       
   298                 if ( !securityMode.Boolean() )
       
   299                     {
   298                     {
   300                     // Setup idle as next active app.
   299                     // Setup idle as next active app.
   301                     SetupIdleScreenInBackgroundL();
   300                     SetupIdleScreenInBackgroundL();
   302                     }
   301                     }
   303                 }
   302                 }
   333             TPhoneCmdParamBoolean visibleMode;
   332             TPhoneCmdParamBoolean visibleMode;
   334             visibleMode.SetBoolean( ETrue );
   333             visibleMode.SetBoolean( ETrue );
   335             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetStatusPaneVisible, &visibleMode );
   334             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetStatusPaneVisible, &visibleMode );
   336             }
   335             }
   337 
   336 
   338         iDeviceLockOn = IsAutoLockOn();
       
   339 
       
   340         // Close menu bar, if it is displayed
   337         // Close menu bar, if it is displayed
   341         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   338         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   342 
   339 
   343         // Disable global notes when the phone is dialling
   340         // Disable global notes when the phone is dialling
   344         TPhoneCmdParamBoolean globalNotifierParam;
   341         TPhoneCmdParamBoolean globalNotifierParam;
   412             {
   409             {
   413             // Stop capturing keys
   410             // Stop capturing keys
   414             CaptureKeysDuringCallNotificationL( EFalse );
   411             CaptureKeysDuringCallNotificationL( EFalse );
   415             }
   412             }
   416         }
   413         }
   417     else if ( !iDeviceLockOn && SimState() == EPESimUsable )
   414     else if ( !iStateMachine->SecurityMode()->IsAutolockEnabled() && SimState() == EPESimUsable )
   418         {
   415         {
   419         // Stop capturing keys
   416         // Stop capturing keys
   420         CaptureKeysDuringCallNotificationL( EFalse );
   417         CaptureKeysDuringCallNotificationL( EFalse );
   421         }
   418         }
   422 
   419 
   542         else
   539         else
   543             {
   540             {
   544             resourceId = EPhoneInCallNumberAcqCBA;
   541             resourceId = EPhoneInCallNumberAcqCBA;
   545             }
   542             }
   546         }
   543         }
   547     else if ( iDeviceLockOn || SimState() != EPESimUsable || iStartupInterrupted )
   544     else if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
       
   545     	|| SimState() != EPESimUsable
       
   546     	|| iStartupInterrupted )
   548         {
   547         {
   549         if ( TouchCallHandlingSupported() )
   548         if ( TouchCallHandlingSupported() )
   550         	{
   549         	{
   551             resourceId = EPhoneCallHandlingEmergencyInCallNoOptions;
   550             resourceId = EPhoneCallHandlingEmergencyInCallNoOptions;
   552             }
   551             }
   635             {
   634             {
   636             if ( TouchCallHandlingSupported() )
   635             if ( TouchCallHandlingSupported() )
   637                 {
   636                 {
   638                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode ); 
   637                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode ); 
   639                 }
   638                 }
   640             else if ( !iDeviceLockOn && SimState() == EPESimUsable )   
   639             else if ( !iStateMachine->SecurityMode()->IsAutolockEnabled()
       
   640             	&& SimState() == EPESimUsable )   
   641                 {
   641                 {
   642                 // do base operation
   642                 // do base operation
   643                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
   643                 CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
   644                 }
   644                 }
   645             break;
   645             break;
   773         {
   773         {
   774         CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode );
   774         CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode );
   775         }
   775         }
   776     else
   776     else
   777         {
   777         {
   778 		 if ( iDeviceLockOn && CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
   778 		 if ( iStateMachine->SecurityMode()->IsAutolockEnabled()
       
   779 			&& CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) )
   779 			{
   780 			{
   780 			// Send the key event to the phone engine
   781 			// Send the key event to the phone engine
   781 			SendKeyEventL( aKeyEvent, aEventCode );
   782 			SendKeyEventL( aKeyEvent, aEventCode );
   782 			}
   783 			}
   783 		else
   784 		else