--- a/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp Mon Mar 08 21:43:24 2010 +0000
+++ b/phoneapp/phoneuistates/src/cphoneconferenceandsingle.cpp Sun Mar 14 13:09:36 2010 +0000
@@ -57,13 +57,15 @@
//
CPhoneConferenceAndSingle::~CPhoneConferenceAndSingle()
{
- // Reset flag
+ // Need to check iViewCommandHandle validity here to not
+ // trigger a high/can panic error in a Codescanner run.
+ // coverity[var_compare_op]
if ( iViewCommandHandle )
{
TPhoneCmdParamBoolean dtmfSendFlag;
dtmfSendFlag.SetBoolean( EFalse );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfOptionsFlag,
- &dtmfSendFlag );
+ TRAP_IGNORE( iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfOptionsFlag,
+ &dtmfSendFlag ) );
}
}
@@ -461,6 +463,12 @@
BeginUiUpdateLC();
+ // Hide the number entry if it exists
+ if ( IsNumberEntryUsedL() )
+ {
+ SetNumberEntryVisibilityL( EFalse );
+ }
+
TPhoneCmdParamBoolean dialerParam;
dialerParam.SetBoolean( ETrue );
@@ -653,4 +661,28 @@
CleanupStack::PopAndDestroy( phoneNumber );
}
+// -----------------------------------------------------------
+// CPhoneConferenceAndSingle::DisconnectCallL
+// -----------------------------------------------------------
+//
+void CPhoneConferenceAndSingle::DisconnectCallL()
+ {
+ __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingle::DisconnectCallL( ) ");
+ // Fetch active call's id from view
+ TPhoneCmdParamCallStateData callStateData;
+ callStateData.SetCallState( EPEStateConnected );
+ iViewCommandHandle->HandleCommandL(
+ EPhoneViewGetCallIdByState, &callStateData );
+
+ if( callStateData.CallId() > KErrNotFound && callStateData.CallId() == KConferenceCallId )
+ {
+ iStateMachine->SendPhoneEngineMessage(
+ CPEPhoneModelIF::EPEMessageHangUpConference );
+ }
+ else
+ {
+ CPhoneState::DisconnectCallL();
+ }
+ }
+
// End of File