phoneapp/phoneuicontrol/src/cphonestate.cpp
branchRCL_3
changeset 17 38529f706030
parent 15 2a26698d78ba
child 19 544e34b3255a
--- 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 );
         }