phoneapp/phoneuistates/src/cphoneincoming.cpp
branchRCL_3
changeset 62 5266b1f337bd
parent 61 41a7f70b3818
child 69 8baf28733c3d
--- a/phoneapp/phoneuistates/src/cphoneincoming.cpp	Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneincoming.cpp	Wed Sep 01 12:30:10 2010 +0100
@@ -18,7 +18,6 @@
 
 // INCLUDES
 #include <featmgr.h>
-#include <telephonyvariant.hrh>
 #include "cphoneincoming.h"
 #include "phonerssbase.h"
 #include "phonelogger.h"
@@ -28,8 +27,7 @@
 #include "tphonecmdparamboolean.h"
 #include "phoneui.hrh"
 #include "mphonestatemachine.h"
-#include "mphonestorage.h"
-#include "cphonecenrepproxy.h"
+#include "mphonesecuritymodeobserver.h"
 #include "tphonecmdparamcallstatedata.h"
 
 // ================= MEMBER FUNCTIONS =======================
@@ -119,12 +117,22 @@
             break;
             
         case MEngineMonitor::EPEMessageRemoteHeld:
-                SendGlobalInfoNoteL( EPhoneInformationRemotePutOnHoldNote, ETrue );
+                SendGlobalInfoNoteL( EPhoneInformationRemotePutOnHoldNote );
             break;
         
         case MEngineMonitor::EPEMessageRemoteResumed:
-                SendGlobalInfoNoteL( EPhoneInformationConnectedNote, ETrue );
+                SendGlobalInfoNoteL( EPhoneInformationConnectedNote );
             break;
+		
+		case MEngineMonitor::EPEMessageShowVersion:
+			{
+			if ( iStateMachine->SecurityMode()->IsSecurityMode() )
+				{
+				// Do nothing if security mode is enabled.
+				return;
+				}
+			}
+		// Fall through
 
         // fall through.
         case MEngineMonitor::EPEMessageIssuingSSRequest:
@@ -191,15 +199,24 @@
     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallIdByState, &callState );
     TInt connectedCall = callState.CallId(); 
     
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiAppear ) :
+        BeginTransEffectLC( ENumberEntryOpen );
     BeginUiUpdateLC();
     
+    // Hide the number entry if it exists
+    if ( IsNumberEntryUsedL() )
+        {
+        SetNumberEntryVisibilityL( EFalse );    
+        }
+    
     TPhoneCmdParamBoolean dialerParam;
     dialerParam.SetBoolean( ETrue );
     
     AllowShowingOfWaitingCallHeaderL( dialerParam );
       
     // Close fast swap window if it's displayed
-    CEikonEnv::Static()->DismissTaskList();
+    EikonEnv()->DismissTaskList();
     
     // If the 1st incoming call became Connected, this is waiting call
     // If the 1st incoming call went just Idle, this is a normal call
@@ -217,39 +234,15 @@
         dialerParam.SetBoolean( EFalse );
         }
     
+    SetToolbarDimming( EFalse );
     // Display incoming call
     DisplayIncomingCallL( aCallId, dialerParam );
-    
-    SetTouchPaneButtons( EPhoneWaitingCallButtons );
 
-    if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) 
-            && !CPhoneCenRepProxy::Instance()->
-            IsTelephonyFeatureSupported( KTelephonyLVFlagAllowUnlockOnIncoming ) 
-            && ( IsKeyLockOn() || IsAutoLockOn() ) )
-        {
-        DisableCallUIL();
-        }
-    else
-        {
-        // if keys have been locked, disable keylock without information note
-        if ( IsKeyLockOn() )
-            {
-            iViewCommandHandle->ExecuteCommandL( EPhoneViewDisableKeyLockWithoutNote );
-            }
-        }
-        
-    if( CPhoneCenRepProxy::Instance()->
-            IsTelephonyFeatureSupported( KTelephonyLVFlagDisableCallControlHardKeysWhileLocked ) 
-            && ( IsKeyLockOn() || IsAutoLockOn() ) )
-        {
-        DisableHWKeysL();
-        }
-        
     EndUiUpdate();
+    EndTransEffect();
 
     if ( connectedCall > KErrNotFound )
         {
-        // Go to incoming state
         iCbaManager->UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
         iStateMachine->ChangeState( EPhoneStateWaitingInSingle );   
         }
@@ -265,28 +258,23 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneIncoming::DisplayIncomingCallL()");
+ 
+    // Close menu bar, if it is displayed
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
 
-    // Cannot delete active note, e.g. New call query, 
-    // but show waiting note with or without caller name
-    if ( IsAnyQueryActiveL() || 
-        ( aCommandParam.Boolean() && iOnScreenDialer ) )
+    // Remove any phone dialogs if they are displayed
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
+
+    // if keys have been locked, disable keylock without information note
+    if ( IsKeyLockOn() )
         {
-        CallWaitingNoteL( aCallId );        
-        }
-    else
-        {
-        // Remove any phone dialogs if they are displayed
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewDisableKeyLockWithoutNote );
         }
     
     // Indicate that the Phone needs to be sent to the background if
     // an application other than the top application is in the foreground
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( !TopAppIsDisplayedL() );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToSendToBackgroundStatus,
-        &booleanParam );
-
+    SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+    
     // Bring Phone app in the foreground
     TPhoneCmdParamInteger uidParam;
     uidParam.SetInteger( KUidPhoneApplication.iUid );
@@ -297,7 +285,7 @@
     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
         &uidParam );
 
-    DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call 
+    DisplayHeaderForCallComingInL( aCallId, aCommandParam.Boolean() ); //waiting call 
     }    
 
 // -----------------------------------------------------------
@@ -309,7 +297,20 @@
     {
     __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneIncoming::AllowShowingOfWaitingCallHeaderL() ");
 
-    if ( aCommandParam.Boolean() && IsNumberEntryUsedL() )
+    iViewCommandHandle->ExecuteCommandL( 
+        EPhoneViewAllowWaitingCallHeader, 
+        &aCommandParam );
+    
+    // Non-touch :Hide number entry if it exists on 
+    // Touch : an internal operation ongoing 
+    // -> do not hide dialer
+    if ( !iOnScreenDialer )
+        {   
+        SetNumberEntryVisibilityL(EFalse);
+        }
+    // If param is true and number entry is open only then
+    // hide number entry.
+    else if ( aCommandParam.Boolean() && IsNumberEntryUsedL() )
         {
         SetNumberEntryVisibilityL(EFalse);
         }