diff -r 38529f706030 -r 544e34b3255a phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp --- a/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp Wed Mar 31 21:30:06 2010 +0300 +++ b/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp Wed Apr 14 15:56:42 2010 +0300 @@ -30,6 +30,7 @@ #include #include +#include "tphonecmdparamincallindicatordata.h" #include "cphonetoolbarcontroller.h" #include "phoneui.hrh" #include "phonerssbase.h" @@ -379,6 +380,61 @@ } // --------------------------------------------------------- +// CPhoneMenuController::SetWiredAccFlag +// --------------------------------------------------------- +// +void CPhoneToolbarController::SetWiredAccFlag( TPhoneCommandParam* aCommandParam ) + { + __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneMenuController::SetWiredAccAvailableFlag()" ); + // Check is the given parameter valid + if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean ) + { + TPhoneCmdParamBoolean* accFlag = + static_cast( aCommandParam ); + + iWiredAccFlag = accFlag->Boolean(); + if ( iCallInProgress ) + { + SetToolbarButtonDimmed( EPhoneInCallCmdActivateIhf, iWiredAccFlag ); + UpdateToolbar(); + } + } + } + +// --------------------------------------------------------- +// CPhoneToolbarController::SetCallInProgressFlag +// --------------------------------------------------------- +// +void CPhoneToolbarController::SetCallInProgressFlag( TPhoneCommandParam* aCommandParam ) + { + TPhoneCmdParamIncallIndicatorData* param = + static_cast( aCommandParam ); + + TInt callState = param->CallState(); + + __PHONELOG1( EBasic, EPhoneUIView, + "CPhoneToolbarController::SetCallInProgressFlag - Current CallState = (%d)", + callState ); + + switch ( callState ) + { + case EPSCTsyCallStateUninitialized: + case EPSCTsyCallStateNone: + { + // No active call in progress. + iCallInProgress = EFalse; + break; + } + default: + { + // Active call in progress. + iCallInProgress = ETrue; + break; + } + } + } + +// --------------------------------------------------------- // CPhoneToolbarController::DimToolbar // --------------------------------------------------------- // @@ -390,8 +446,12 @@ iToolbar->SetItemDimmed( EPhoneInCallCmdMute, aDimmed, ETrue ); iToolbar->SetItemDimmed( EPhoneInCallCmdUnmute, aDimmed, ETrue ); iToolbar->SetItemDimmed( EPhoneInCallCmdActivatEPhonebook, aDimmed, ETrue ); - iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, aDimmed, ETrue ); - iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue ); + iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue ); + // Don't dim/undim iHF when complete toolbar dimming is changed. + if ( !iWiredAccFlag ) + { + iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, aDimmed, ETrue ); + } } // ---------------------------------------------------------