phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp
changeset 78 baacf668fe89
parent 76 cfea66083b62
--- a/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Mon Oct 04 16:06:10 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonesingleandwaiting.cpp	Fri Oct 15 12:58:46 2010 +0300
@@ -37,12 +37,12 @@
 #include "tphonecmdparamstring.h"
 #include "tphonecmdparamcallheaderdata.h"
 #include "tphonecmdparamglobalnote.h"
-#include "tphonecmdparamcallstatedata.h"
 #include "phonestatedefinitionsgsm.h"
 #include "phonelogger.h"
 #include "cphonecenrepproxy.h"
 #include "cphonepubsubproxy.h"
 #include "mphonestorage.h"
+#include "phonecallutil.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -73,19 +73,13 @@
 void CPhoneSingleAndWaiting::ConstructL()
     {
     CPhoneGsmInCall::ConstructL();
-    
-    TPhoneCmdParamCallStateData callStateData;
-    callStateData.SetCallState( EPEStateConnected );
-    iViewCommandHandle->HandleCommandL(
-        EPhoneViewGetCallIdByState, &callStateData );
 
-    if ( callStateData.CallId() == KErrNotFound )
+    iSingleCallId = PhoneCallUtil::CallIdByState( EPEStateConnected );
+    if ( iSingleCallId == KErrNotFound )
         {
-        callStateData.SetCallState( EPEStateHeld );
-        iViewCommandHandle->HandleCommandL(
-            EPhoneViewGetCallIdByState, &callStateData );
+        iSingleCallId = PhoneCallUtil::CallIdByState( EPEStateHeld );
         }
-    iSingleCallId = callStateData.CallId();
+
     __PHONELOG1( EBasic, EPhoneUIStates,
         "CPhoneSingleAndWaiting::ConstructL()  (iSingleCallId=%d)", iSingleCallId);
     }
@@ -179,12 +173,8 @@
 
         case EPhoneCallComingCmdReject: // fall through
             {
-            // Get waiting callid
-            TPhoneCmdParamCallStateData callStateData;
-            callStateData.SetCallState( EPEStateRinging );
-            iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
-                &callStateData );
-            iStateMachine->SetCallId( callStateData.CallId() );
+            iStateMachine->SetCallId( 
+                    PhoneCallUtil::CallIdByState( EPEStateRinging ) );
             iStateMachine->SendPhoneEngineMessage(
                 MPEPhoneModel::EPEMessageReject );
             break;
@@ -252,25 +242,15 @@
 
     if ( iSingleCallId == KErrNotFound )
         {
-        TPhoneCmdParamCallStateData callStateData;
-        callStateData.SetCallState( EPEStateDisconnecting );
-        iViewCommandHandle->HandleCommandL(
-            EPhoneViewGetCallIdByState, &callStateData );
-
-        if ( callStateData.CallId() == KErrNotFound )
+        iSingleCallId = PhoneCallUtil::CallIdByState( EPEStateDisconnecting );
+        if ( iSingleCallId == KErrNotFound )
             {
-            callStateData.SetCallState( EPEStateConnected );
-            iViewCommandHandle->HandleCommandL(
-                EPhoneViewGetCallIdByState, &callStateData );
-
-            if ( callStateData.CallId() == KErrNotFound )
+            iSingleCallId = PhoneCallUtil::CallIdByState( EPEStateConnected );
+            if ( iSingleCallId == KErrNotFound )
                 {
-                callStateData.SetCallState( EPEStateHeld );
-                iViewCommandHandle->HandleCommandL(
-                    EPhoneViewGetCallIdByState, &callStateData );
+                iSingleCallId = PhoneCallUtil::CallIdByState( EPEStateHeld );
                 }
             }
-        iSingleCallId = callStateData.CallId();
         }
 
     __PHONELOG1( EBasic, EPhoneControl, 
@@ -287,26 +267,23 @@
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
 
         // Get waiting callId
-        TPhoneCmdParamCallStateData callStateData;
-        callStateData.SetCallState( EPEStateRinging );
-        iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
-            &callStateData );
+        TInt callId = PhoneCallUtil::CallIdByState( EPEStateRinging );
         
         __PHONELOG1( EBasic, EPhoneControl, 
             "CPhoneSingleAndWaiting::HandleIdleL EPEStateRinging CallId(%d)",
-            callStateData.CallId() );
+            callId );
         
         // Display ringing bubble
-        if ( callStateData.CallId() > KErrNotFound )
-            {           
-            UpdateCallHeaderAndUiCommandsL( callStateData.CallId() );
+        if ( callId > KErrNotFound )
+            {
+            SetRingingTonePlaybackL( callId );
+            UpdateCallHeaderAndUiCommandsL( callId );
 
             if ( iNumberEntryManager->IsNumberEntryVisibleL() )
                 {
                 iNumberEntryManager->SetNumberEntryVisibilityL(EFalse);
                 }
             
-            SetRingingTonePlaybackL( callStateData.CallId() );
             BringIncomingToForegroundL();
             }
         SetBackButtonActive(EFalse);
@@ -324,6 +301,11 @@
             iNumberEntryManager->SetNumberEntryVisibilityL(ETrue);
             }
         
+        if ( PhoneCallUtil::IsVideoCall( iSingleCallId ) )
+            {
+            iViewCommandHandle->ExecuteCommand( EPhoneViewSetVideoCallOnTop );
+            }
+        
         UpdateUiCommands();
         EndUiUpdate();
         iStateMachine->ChangeState( EPhoneStateSingle );