diff -r c84cf270c54f -r 8871b09be73b phoneapp/phoneuistates/src/cphoneconference.cpp --- 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