diff -r abbe9afab2af -r 2411cd0e2ad6 phoneapp/phoneuistates/src/cphoneconference.cpp --- a/phoneapp/phoneuistates/src/cphoneconference.cpp Mon Mar 08 21:43:24 2010 +0000 +++ b/phoneapp/phoneuistates/src/cphoneconference.cpp Sun Mar 14 13:09:36 2010 +0000 @@ -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