phoneapp/phoneuistates/src/cphoneconference.cpp
branchRCL_3
changeset 3 8871b09be73b
parent 0 5f000ab63145
child 4 24062c24fe38
--- a/phoneapp/phoneuistates/src/cphoneconference.cpp	Tue Feb 02 00:10:04 2010 +0200
+++ b/phoneapp/phoneuistates/src/cphoneconference.cpp	Fri Feb 19 22:50:26 2010 +0200
@@ -924,6 +924,12 @@
         "CPhoneConference::HandleIncomingL()");
     
     BeginUiUpdateLC();
+    
+    // Hide the number entry if it exists
+    if ( IsNumberEntryUsedL() )
+        {
+        SetNumberEntryVisibilityL( EFalse );    
+        }
  
     TPhoneCmdParamBoolean dialerParam;
     dialerParam.SetBoolean( ETrue );
@@ -1126,4 +1132,35 @@
         }
     }
 
+// -----------------------------------------------------------
+// CPhoneConference::DisconnectCallL
+// -----------------------------------------------------------
+//
+void CPhoneConference::DisconnectCallL()
+    {
+    __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConference::DisconnectCallL( ) ");
+    // Fetch active call's id from view
+    TPhoneCmdParamCallStateData callStateData;
+    callStateData.SetCallState( EPEStateConnected );
+    iViewCommandHandle->HandleCommandL(
+        EPhoneViewGetCallIdByState, &callStateData );
+
+    if( callStateData.CallId() == KErrNotFound )
+        {
+        // No connected call, find the hold call
+        callStateData.SetCallState( EPEStateHeld );
+        iViewCommandHandle->HandleCommandL(
+            EPhoneViewGetCallIdByState, &callStateData );
+        }
+  
+    if( callStateData.CallId() > KErrNotFound  )
+        {
+        iStateMachine->SendPhoneEngineMessage(
+                      CPEPhoneModelIF::EPEMessageHangUpConference );  
+        }
+    else
+        {
+        CPhoneState::DisconnectCallL();
+        }
+    }
 // End of File