phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp
branchRCL_3
changeset 25 5266b1f337bd
parent 24 41a7f70b3818
child 26 8baf28733c3d
--- a/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Wed Sep 01 12:30:10 2010 +0100
@@ -36,7 +36,6 @@
 #include "phonerssbase.h"
 #include "phonestatedefinitionsgsm.h"
 #include "phonelogger.h"
-#include "mphonestorage.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -114,20 +113,20 @@
         {
         // send-key
         case EKeyYes:
-            {
+			{
             if( IsNumberEntryVisibleL() )
                 {
-                CallFromNumberEntryL();                         
+                CallFromNumberEntryL();    	 					
                 }
             else
                 {
                 // Waiting call bubble is over number entry
                 // so display not allowed note because we
                 // can't answer the call
-                SendGlobalWarningNoteL( EPhoneNoteTextCallNotAllowed, ETrue );                     
+                SendGlobalWarningNoteL( EPhoneNoteTextCallNotAllowed );		 				
                 }
             break;
-            }
+			}
 
         default:
             CPhoneTwoSingles::HandleKeyMessageL( aMessage, aCode );   
@@ -136,22 +135,6 @@
     }
 
 // -----------------------------------------------------------
-// CPhoneTwoSinglesAndWaiting::HandleKeyEventL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSinglesAndWaiting::HandleKeyEventL(
-    const TKeyEvent& aKeyEvent,
-    TEventCode /*aEventCode*/ )
-    {
-    if( EKeyDeviceF == aKeyEvent.iCode )
-        {
-        __PHONELOG( EBasic, EPhoneUIStates,
-            "CPhoneTwoSinglesAndWaiting::HandleKeyMessageL-deviceF" );
-        HandleHoldSwitchL();
-        }
-    }
-
-// -----------------------------------------------------------
 // CPhoneTwoSinglesAndWaiting::HandlePhoneEngineMessageL
 // -----------------------------------------------------------
 //
@@ -166,10 +149,7 @@
         case MEngineMonitor::EPEMessageIdle:
             HandleIdleL( aCallId );
             break;
-        case MEngineMonitor::EPEMessageConnected:
-            UpdateInCallCbaL();
-            CPhoneTwoSingles::HandlePhoneEngineMessageL( aMessage, aCallId );
-            break;           
+            
         default:
             CPhoneTwoSingles::HandlePhoneEngineMessageL( aMessage, aCallId );
             break;
@@ -199,6 +179,37 @@
     }
 
 // -----------------------------------------------------------
+// CPhoneTwoSinglesAndWaiting::OpenMenuBarL
+// -----------------------------------------------------------
+//
+void CPhoneTwoSinglesAndWaiting::OpenMenuBarL()
+    {
+    __LOGMETHODSTARTEND( EPhoneUIStates, 
+        "CPhoneTwoSinglesAndWaiting::OpenMenuBarL()");
+
+    TInt resourceId ( EPhoneCallTwoSinglesWaitingLockMenubar );
+    
+    if ( !IsAutoLockOn() )
+        {
+        if ( IsNumberEntryVisibleL() )
+            {
+            resourceId = EPhoneCallActiveHeldAndWaitingMenubarWithNumberEntry;
+            }
+        else
+            {
+            resourceId = EPhoneCallActiveHeldAndWaitingMenubar;
+            }
+        }   
+
+    TPhoneCmdParamInteger integerParam;
+    integerParam.SetInteger( 
+        CPhoneMainResourceResolver::Instance()->
+        ResolveResourceID( resourceId ) );
+    iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, 
+        &integerParam );
+    }
+
+// -----------------------------------------------------------
 // CPhoneTwoSinglesAndWaiting::HandleIdleL
 // -----------------------------------------------------------
 //
@@ -206,21 +217,21 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneTwoSinglesAndWaiting::HandleIdleL()");
- 
-    BeginUiUpdateLC();    
-    
-    // Remove call 
+    BeginUiUpdateLC();
+    if ( !IsNumberEntryUsedL() )
+        {
+        iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); 
+        }
     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
     
     if ( iRingingCallId == aCallId )
         {
-        StateTransitionToTwoSinglesL();    
+        StateTransitionToTwoSinglesL();
         }
     else
         {
         StateTransitionToSingleAndWaitingL();
         }
-
     EndUiUpdate();
     }
 
@@ -235,11 +246,13 @@
     if ( IsNumberEntryUsedL() )
         {
         // Go to background if necessary
-        if ( NeedToSendToBackgroundL() )
+        if ( NeedToReturnToForegroundAppL() )
             {
-            // Return phone to the background if send to background is needed.
+            // Return phone to the background if menu application is needed to foreground.
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
 
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
+            
             UpdateCbaL( EPhoneCallHandlingInCallCBA );
             }
         else
@@ -252,29 +265,21 @@
         {
         // Set Two singles softkeys
         UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
-        
-        // If numberentry is not open just check NeedToSendToBackgroundL and 
+	    
+        // If numberentry is not open just check NeedToReturnToForegroundAppL and 
         // sendbackround if needed.
-        if ( NeedToSendToBackgroundL() )
+        if ( NeedToReturnToForegroundAppL() )
             {
             // Return phone to the background if send to background is needed.
             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
             }
         }
 
-    if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) 
-        && iStateMachine->PhoneStorage()->IsScreenLocked() )
-        {
-        EnableCallUIL();
-        }
-    
-    // Reset blocked keys list
-    iStateMachine->PhoneStorage()->ResetBlockedKeysList();
-
     // Go to two singles state
+    SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
     SetTouchPaneButtons( EPhoneTwoSinglesButtons );
     // CBA updates in above if-else conditions
-    iStateMachine->ChangeState( EPhoneStateTwoSingles );                     
+    iStateMachine->ChangeState( EPhoneStateTwoSingles );
     }
 
 // -----------------------------------------------------------
@@ -286,21 +291,10 @@
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneTwoSinglesAndWaiting::StateTransitionToSingleAndWaitingL()");
     // Go to two singles state
-    TPhoneCmdParamInteger callIdParam;
-    iViewCommandHandle->ExecuteCommandL( 
-            EPhoneViewGetExpandedBubbleCallId, &callIdParam );
-    
-    if ( callIdParam.Integer()!=iRingingCallId )
-        {
-        CPhoneGsmInCall::UpdateInCallCbaL();
-        } 
-    else 
-        {
-        iCbaManager->SetCbaL( EPhoneCallHandlingCallWaitingCBA );
-        }
-    
-    // Check if HW Keys or Call UI should be disabled
-    CheckDisableHWKeysAndCallUIL();
+    UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
+  
+    // Set touch controls
+    SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
     
     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   
@@ -328,9 +322,7 @@
         conferenceText, 
         callLabelId, 
         CCoeEnv::Static() );        
-    callHeaderParam.SetCLIText( conferenceText, TPhoneCmdParamCallHeaderData::ERight );
-    
-    callHeaderParam.SetCallState(EPEStateConnectedConference);
+    callHeaderParam.SetCLIText( conferenceText, CBubbleManager::ERight );
     
     callHeaderParam.SetCiphering(
         iStateMachine->PhoneEngineInfo()->IsSecureCall( aCallId ) );
@@ -342,25 +334,17 @@
     // can be taken into account at phoneuiview.
     callHeaderParam.SetServiceId( 
         iStateMachine->PhoneEngineInfo()->ServiceId( aCallId ) );
-        
-    // Check if HW Keys or Call UI should be disabled
-    CheckDisableHWKeysAndCallUIL();
+    
+    // Set touch controls
+    SetTouchPaneButtonEnabled( EPhoneCallComingCmdAnswer );
 
+    SetTouchPaneButtons( EPhoneWaitingCallButtons );
 
     iViewCommandHandle->ExecuteCommandL( EPhoneViewCreateConference, aCallId,
         &callHeaderParam );
         
-    // Clear the flag
-    TPhoneCmdParamBoolean booleanParam;
-    booleanParam.SetBoolean( EFalse );
-    iViewCommandHandle->ExecuteCommandL( 
-        EPhoneViewSetNeedToSendToBackgroundStatus, &booleanParam );
-    
-    // Set touch controls
-    SetTouchPaneButtons( EPhoneWaitingCallButtons );
-    
-    UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
-    
+    SetNeedToReturnToForegroundAppStatusL( EFalse );
+        
     EndUiUpdate();
     // Go to Conference And Waiting state
     // No need for CBA update
@@ -375,19 +359,7 @@
     {
     __LOGMETHODSTARTEND( EPhoneUIStates, 
         "CPhoneTwoSinglesAndWaiting::UpdateInCallCbaL()");
-
-    TPhoneCmdParamInteger callIdParam;
-    iViewCommandHandle->ExecuteCommandL( 
-            EPhoneViewGetExpandedBubbleCallId, &callIdParam );
-    
-    if ( callIdParam.Integer()!=iRingingCallId )
-        {
-        CPhoneGsmInCall::UpdateInCallCbaL();
-        } 
-    else 
-        {
-        iCbaManager->SetCbaL( EPhoneCallHandlingIncomingRejectCBA );
-        }
+	UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA );   
     }
 
 // -----------------------------------------------------------
@@ -400,39 +372,5 @@
         "CPhoneTwoSinglesAndWaiting::HandleNumberEntryClearedL()");
     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
     }
-
-// -----------------------------------------------------------
-// CPhoneTwoSinglesAndWaiting::HandleCommandL
-// -----------------------------------------------------------
-//
-TBool CPhoneTwoSinglesAndWaiting::HandleCommandL( TInt aCommand )
-    {
-    __LOGMETHODSTARTEND( EPhoneUIStates,
-        "CPhoneTwoSinglesAndWaiting::HandleCommandL() ");
-    TBool commandStatus = ETrue;
-
-    switch( aCommand )
-        {
-        case EPhoneCmdUpdateUiControls:
-            UpdateUiControlsL();
-            break;
-
-        default:
-            commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand );
-            break;
-        }
-
-    return commandStatus;
-    }
-
-// -----------------------------------------------------------
-// CPhoneTwoSinglesAndWaiting::UpdateUiControlsL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSinglesAndWaiting::UpdateUiControlsL()
-    {
-    __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleAndWaiting::UpdateUiControlsL( ) ");
-    UpdateInCallCbaL();
-    }
-
+    
 // End of File