phoneapp/phoneuicontrol/src/cphonestateincall.cpp
branchRCL_3
changeset 81 c26cc2a7c548
parent 69 8baf28733c3d
--- a/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Wed Sep 15 12:12:21 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestateincall.cpp	Wed Oct 13 14:31:22 2010 +0300
@@ -309,30 +309,42 @@
     __LOGMETHODSTARTEND(EPhoneControl,  
         "CPhoneStateInCall::HandleIdleL()" );
     __ASSERT_DEBUG( aCallId >= 0, Panic( EPhoneCtrlParameterNotInitialized ) );
-    TransitionHandlerL().IdleCallUiUpdateLC();
-    
+    IsNumberEntryUsedL() ? 
+        BeginTransEffectLC( ECallUiDisappear ) :
+        BeginTransEffectLC( ENumberEntryClose );
+    BeginUiUpdateLC();
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
     SetDefaultFlagsL();
         
     if ( IsNumberEntryUsedL() )
         {
-        // Show the number entry if it exists and update cba's.
-        SetNumberEntryVisibilityL( ETrue );
-        // Close dtmf dialer when call is disconnected.
-        if ( IsDTMFEditorVisibleL() )
-            {      
-            CloseDTMFEditorL();
-            // Display idle screen and update CBA's
-            DisplayIdleScreenL();
+        if ( NeedToReturnToForegroundAppL() )
+            {
+            // Return phone to the background if menu application is needed to foreground.
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
+            iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
             }
-        else if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
-            {            
-            CloseCustomizedDialerL();
-            // Display idle screen and update CBA's
-            DisplayIdleScreenL();
-            } 
-        }            
+        else
+            {
+            // Show the number entry if it exists and update cba's.
+            SetNumberEntryVisibilityL( ETrue );
+            // Close dtmf dialer when call is disconnected.
+            if ( IsDTMFEditorVisibleL() )
+                {      
+                CloseDTMFEditorL();
+                // Display idle screen and update CBA's
+                DisplayIdleScreenL();
+                }
+            else if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
+                {            
+                CloseCustomizedDialerL();
+                // Display idle screen and update CBA's
+                DisplayIdleScreenL();
+                } 
+            }
+        }
     else
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
@@ -350,7 +362,8 @@
         }
         
     DeleteTouchPaneButtons();
-    TransitionHandlerL().EndUiUpdateAndEffect();
+    EndUiUpdate();
+    EndTransEffect();
     DisplayCallTerminationNoteL();
     iStateMachine->ChangeState( EPhoneStateIdle );
     iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
@@ -404,26 +417,6 @@
         // Go to current state implementation
         UpdateInCallCbaL();
         }
-	TBool audioMute = iStateMachine->PhoneEngineInfo()->AudioMute();
-    TPhoneCmdParamCallStateData callStateData;
-    callStateData.SetCallState( EPEStateConnected );
-    iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, &callStateData );
-    TInt call = callStateData.CallId();
-    if ( call != KErrNotFound  && iStateMachine->PhoneEngineInfo()->CallType( call ) == EPECallTypeVoIP
-            && audioMute )
-		{
-			  TPhoneCmdParamBoolean dtmfSendFlag;
-			  dtmfSendFlag.SetBoolean( ETrue );
-			  iViewCommandHandle->ExecuteCommandL( EPhoneViewSetVoipCallDTMFVisibilityFlag,
-																							   &dtmfSendFlag );
-		}
-    else
-		{           
-		 TPhoneCmdParamBoolean dtmfSendFlag;
-		  dtmfSendFlag.SetBoolean( EFalse );
-		  iViewCommandHandle->ExecuteCommandL( EPhoneViewSetVoipCallDTMFVisibilityFlag,
-																						   &dtmfSendFlag );
-		} 
     }
 
 // -----------------------------------------------------------
@@ -606,14 +599,13 @@
     switch( aCommand )
         {
         case EPhoneInCallCmdDialer:
-            TransitionHandlerL().
-                BeginTransEffectLC( EPhoneTransEffectCallUiDisappear );
+            BeginTransEffectLC( ECallUiDisappear );
             if ( !IsNumberEntryUsedL() )
                 {
                 CreateNumberEntryL();
                 }
             SetNumberEntryVisibilityL( ETrue ); 
-            TransitionHandlerL().EndTransEffect();
+            EndTransEffect();
           break;
           
         case EPhoneCmdOptions:
@@ -847,11 +839,10 @@
        case EPhoneViewOpenCallHandling:
             if ( iOnScreenDialer && IsNumberEntryUsedL() )
                 {
-                TransitionHandlerL().
-                        BeginTransEffectLC( EPhoneTransEffectCallUiAppear );
+                BeginTransEffectLC( ECallUiAppear );
                 // Remove number entry from screen
                 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-                TransitionHandlerL().EndTransEffect();
+                EndTransEffect();
                 HandleNumberEntryClearedL();
                 }
             commandStatus = CPhoneState::HandleCommandL( aCommand );        
@@ -926,8 +917,7 @@
     if ( iOnScreenDialer )
         {
         //In touch, just activate dialer
-        TransitionHandlerL().
-                BeginTransEffectLC( EPhoneTransEffectCallUiDisappear );
+        BeginTransEffectLC( ECallUiDisappear );
         if ( IsNumberEntryUsedL() )
             {
             SetNumberEntryVisibilityL(ETrue);   
@@ -937,7 +927,7 @@
             CreateNumberEntryL();
             SetNumberEntryVisibilityL(ETrue); 
             }
-        TransitionHandlerL().EndTransEffect();
+        EndTransEffect();
         }
     else
         {
@@ -1556,7 +1546,7 @@
                 }
             else
                 {    
-                CloseClearNumberEntryAndLoadEffectL( EPhoneTransEffectPhoneUiClose );
+                CloseClearNumberEntryAndLoadEffectL( ENumberEntryClose );
                 }
             }