diff -r 2a26698d78ba -r 38529f706030 phoneapp/phoneuicontrol/src/cphonestate.cpp --- a/phoneapp/phoneuicontrol/src/cphonestate.cpp Mon Mar 15 12:40:24 2010 +0200 +++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp Wed Mar 31 21:30:06 2010 +0300 @@ -104,6 +104,7 @@ #include "cphonecontinueemergencycallcommand.h" #include "cphonecallheadermanager.h" #include "cphonenumberentrymanager.h" +#include "mphonesecuritymodeobserver.h" #include "easydialingcommands.hrh" @@ -674,7 +675,13 @@ TBool numericMode = iViewCommandHandle->HandleCommandL( EPhoneViewIsNumberEntryNumericMode ) == EPhoneViewResponseSuccess; - if ( ( aKeyEvent.iModifiers & EModifierSpecial ) != 0 || !numericMode ) + // Key presses simulated by dialer are played even if in alphanumeric mode. + const TBool simulatedByDialer = + ( ( aKeyEvent.iModifiers & ( EModifierNumLock | EModifierKeypad ) ) + == ( EModifierNumLock | EModifierKeypad ) ); + + + if ( ( ( aKeyEvent.iModifiers & EModifierSpecial ) != 0 || !numericMode ) && !simulatedByDialer ) { return EFalse; } @@ -1339,10 +1346,7 @@ else { - TPhoneCmdParamBoolean isSecurityMode; - iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode ); - - if ( !isSecurityMode.Boolean() ) + if ( !iStateMachine->SecurityMode()->IsSecurityMode() ) { __PHONELOG( EBasic, EPhoneControl, "CPhoneState::HandlePhoneForegroundEventL - Force Idle to the foreground" ); @@ -1522,12 +1526,6 @@ switch( aCommand ) { case EPhoneEmergencyCmdExit: - { - //cancel emergency mode. - TPhoneCmdParamBoolean booleanParam; - booleanParam.SetBoolean( EFalse ); - iViewCommandHandle->ExecuteCommandL( EPhoneViewSetRestrictedDialer, &booleanParam ); - } // this should be bypasses? case EPhoneDialerCallHandling: case EPhoneCmdBack: @@ -1646,30 +1644,6 @@ } break; - case EPhoneNumberAcqSecurityDialer: - { - if ( IsOnScreenDialerSupported() && !IsNumberEntryUsedL() ) - { - iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote ); - TPhoneCmdParamBoolean visibleMode; - visibleMode.SetBoolean( ETrue ); - iViewCommandHandle->ExecuteCommandL( - EPhoneViewSetStatusPaneVisible, &visibleMode ); - - - // Set emergency CBA, empty - exit - iCbaManager->SetCbaL( EPhoneEmergencyModeNoteCBA ); - - // Set dialer to restricted mode. - TPhoneCmdParamBoolean booleanParam; - booleanParam.SetBoolean( ETrue ); - iViewCommandHandle->ExecuteCommandL( EPhoneViewSetRestrictedDialer, &booleanParam ); - - NumberEntryManagerL()->CreateNumberEntryL(); - } - } - break; - case EPhoneDialerCmdContacts: { // Launch Phonebook application @@ -3386,9 +3360,7 @@ // EXPORT_C TBool CPhoneState::IsSimStateNotPresentWithSecurityModeEnabled() { - TPhoneCmdParamBoolean isSecurityMode; - TRAP_IGNORE( iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode ) ); - if ( SimState() == EPESimNotPresent && isSecurityMode.Boolean() ) + if ( SimState() == EPESimNotPresent && iStateMachine->SecurityMode()->IsSecurityMode() ) { return ETrue; } @@ -3443,11 +3415,6 @@ { __LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::StartShowSecurityNoteL "); - // Set security mode on. - TPhoneCmdParamBoolean securityMode; - securityMode.SetBoolean( ETrue ); - iViewCommandHandle->ExecuteCommandL( EPhoneViewSetSecurityMode, &securityMode ); - // Remove number entry from screen iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); @@ -3874,10 +3841,7 @@ if( neLength == 1 ) { - TPhoneCmdParamBoolean isSecurityMode; - iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode ); - - if ( !isSecurityMode.Boolean() ) + if ( !iStateMachine->SecurityMode()->IsSecurityMode() ) { OnlyHashInNumberEntryL(); } @@ -4085,9 +4049,7 @@ &globalNotifierParam ); // uncapture App and Camera keys if not security mode - TPhoneCmdParamBoolean isSecurityMode; - iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSecurityModeStatus, &isSecurityMode ); - if ( !isSecurityMode.Boolean() ) + if ( !iStateMachine->SecurityMode()->IsSecurityMode() ) { CaptureKeysDuringCallNotificationL( EFalse ); }