diff -r 2a5d4ab426d3 -r d1c62c765e48 phoneapp/phoneuistates/tsrc/common/CPhoneViewControllerStub.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuistates/tsrc/common/CPhoneViewControllerStub.h Fri Sep 17 17:09:12 2010 +0300 @@ -0,0 +1,402 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include "MPhoneViewCommandHandle.h" +#include "TPhoneCommandParam.h" +#include "TPhoneCmdParamBoolean.h" +#include "TPhoneCmdParamInteger.h" +#include "TPhoneCmdParamEmergencyCallHeaderData.h" +#include "TPhoneCmdParamCallStateData.h" + +#include "TPhoneCmdParamCallHeaderData.h" + +struct TCmds + { +public: + TInt iCmd; + TPhoneUICommandParam* iP; + }; + +class CPhoneViewController : public MPhoneViewCommandHandle, public CBase + { + + + public: // Constructors and destructor + + CPhoneViewController(){} + + static CPhoneViewController* NewL() + { + CPhoneViewController* self = new (ELeave) CPhoneViewController(); + return self; + } + + + /** + * Destructor. + */ + ~CPhoneViewController() + { + if(iCmds) + { + for(TInt i = 0; iCount(); i++) + { + TCmds t = iCmds->At(i); + delete t.iP; + + } + + iCmds->Reset(); + } + + delete iCmds; + }; + + public: // New functions + + /** + * Execute Command with given Command Id + * @param aCmdId Command Id + * @return None + */ + void ExecuteCommandL( + TPhoneViewCommandId aCmdId ) + { + if(iCmds == NULL) + iCmds = new (ELeave) CArrayFixFlat (10); + TCmds cmd; + cmd.iCmd = aCmdId; + cmd.iP = NULL; + iCmds->AppendL( cmd ); + } + + /** + * Execute Command with given Command Id and Call Id + * @param aCmdId Command Id + * @param aCallId Call Id + * @return None + */ + void ExecuteCommandL( + TPhoneViewCommandId aCmdId, + TInt /*aCallId*/ ) + { + ExecuteCommandL( aCmdId ); + + } + + /** + * Execute Command with given command id, call id and command parameter. + * @param aCmdId Command Id + * @param aCommandParam Command parameter + * @return None + */ + void ExecuteCommandL( + TPhoneViewCommandId aCmdId, + TPhoneCommandParam* aCommandParam ) + { + if( iCmds == NULL ) + iCmds = new (ELeave) CArrayFixFlat (10); + TCmds cmd; + cmd.iCmd = aCmdId; + + switch ( aCmdId ) + { + case EPhoneViewGetCountOfActiveCalls: + { + if ( aCommandParam->ParamId() == + TPhoneCommandParam::EPhoneParamIdInteger ) + { + TPhoneCmdParamInteger* intParam = + static_cast( aCommandParam ); + + intParam->SetInteger( iActiveCallCount ); + } + } + break; + + case EPhoneViewGetCallExistsInConference: + { + if ( aCommandParam->ParamId() == + TPhoneCommandParam::EPhoneParamIdBoolean ) + { + static_cast(aCommandParam)->SetBoolean( iCallExistsInConference ); + } + } + break; + } + + if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean ) + { + TPhoneCmdParamBoolean* value = + static_cast( aCommandParam ); + TPhoneCmdParamBoolean* value2 = new (ELeave) TPhoneCmdParamBoolean (*value); + cmd.iP = value2; + } + else if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdInteger ) + { + TPhoneCmdParamInteger* value = + static_cast( aCommandParam ); + TPhoneCmdParamInteger* value2 = new (ELeave) TPhoneCmdParamInteger (*value); + cmd.iP = value2; + } + else if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdCallHeaderData ) + { + TPhoneCmdParamCallHeaderData* value = + static_cast( aCommandParam ); + TPhoneCmdParamCallHeaderData* value2 = new (ELeave) TPhoneCmdParamCallHeaderData( *value); + cmd.iP = value2; + } + else if( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdEmergencyCallHeaderData) + { + TPhoneCmdParamEmergencyCallHeaderData* value = + static_cast( aCommandParam ); + TPhoneCmdParamEmergencyCallHeaderData* value2 = new (ELeave) TPhoneCmdParamEmergencyCallHeaderData( *value); + cmd.iP = value2; + } + else + { + cmd.iP = NULL; + } + + iCmds->AppendL( cmd ); + } + + /** + * Execute Command with given command id, call id and command parameter. + * @param aCmdId Command Id + * @param aCallId Call Id + * @param aCommandParam Command parameter + * @return None + */ + void ExecuteCommandL( + TPhoneViewCommandId aCmdId, + TInt /*aCallId*/, + TPhoneCommandParam* aCommandParam ) + { + ExecuteCommandL( aCmdId, aCommandParam ); + } + + /** + * Execute Command with given command id, call id and message. + * @param aCmdId Command Id + * @param aCallId Call Id + * @param aMessage Command message + */ + void ExecuteCommandL( + TPhoneViewCommandId /*aCmdId*/, + TInt /*aCallId*/, + TDesC& /*aMessage*/ ){} + + /** + * From MPhoneViewCommandHandle + */ + void ExecuteCommand( + TPhoneViewCommandId /*aCmdId*/ ){} + + /** + * From MPhoneViewCommandHandle + */ + void ExecuteCommand( + TPhoneViewCommandId aCmdId, + TPhoneCommandParam* /*aCommandParam*/ ) + { + ExecuteCommandL( aCmdId ); + } + + /** + * Handle Command with given Command Id + * @param aCmdId Command Id + * @return TPhoneViewResponseId + */ + TPhoneViewResponseId HandleCommandL( + TPhoneViewCommandId /*aCmdId*/ ) { return iViewResponseId; } + + /** + * Handle Command with given command id and command parameter. + * @param aCmdId Command Id + * @param aCommandParam Command parameter + * @return TPhoneViewResponseId + */ + TPhoneViewResponseId HandleCommandL( + TPhoneViewCommandId /*aCmdId*/, + TPhoneCommandParam* aCommandParam ) + { + + if ( aCommandParam->ParamId() == + TPhoneCommandParam::EPhoneParamIdCallStateData ) + { + TPhoneCmdParamCallStateData* stateParam = + static_cast( aCommandParam ); + stateParam->SetCallId( iCallId ); + } + + return iViewResponseId; } + + /** + * Execute Command with given Command Id + */ + const TDesC& FetchContent() { return KNullDesC();} + + //helper functions: + + TInt VerifyViewCommand( const TInt& aCmd ) + { + _LIT(KDesC, "Checking command id = %d "); + EUNIT_PRINT( KDesC(), aCmd ); + + TInt count = iCmds->Count(); + TBool cmdFound = EFalse; + TInt i = 0; + for ( ; i < count; i++ ) + { + TCmds cmd = iCmds->At(i); + if( cmd.iCmd == aCmd ) + { + cmdFound = ETrue; + break; + } + } + + EUNIT_ASSERT_DESC( cmdFound, "View Command not ok" ); + return i; + } + + void VerifyViewCommandBoolean( const TInt& aCmd, const TBool& aValue ) + { + TBool paramOk = EFalse; + + for( TInt j = 0 ; jCount(); j++) + { + TCmds cmd = iCmds->At(j); + if( cmd.iCmd == aCmd ) + { + _LIT(KDesC, "Checking command id = %d "); + EUNIT_PRINT( KDesC(), aCmd ); + + TPhoneUICommandParam* p = cmd.iP; + TPhoneCmdParamBoolean* booleanValue = + static_cast( p ); + TBool val = booleanValue->Boolean(); + if( val == aValue ) + { + paramOk = ETrue; + break; + } + } + } + + EUNIT_ASSERT_DESC( paramOk, "View Boolean param not ok" ); + } + + void VerifyViewCommandInteger( const TInt& aCmd, const TInt& aValue ) + { + TBool paramOk = EFalse; + + for( TInt j = 0 ; j< iCmds->Count(); j++) + { + TCmds cmd = iCmds->At(j); + if( cmd.iCmd == aCmd ) + { + _LIT(KDesC, "Checking command id = %d "); + EUNIT_PRINT( KDesC(), aCmd ); + TPhoneCmdParamInteger* value = static_cast( cmd.iP ); + + if( value->Integer() == aValue ) + { + paramOk = ETrue; + break; + } + } + } + + EUNIT_ASSERT_DESC( paramOk, "View Integer param not ok" ); + } + + void VerifyViewCommandCallHeader( const TInt& aCmd, const TPhoneCmdParamCallHeaderData& aValue ) + { + TBool paramOk = EFalse; + + for( TInt j = 0 ; j< iCmds->Count(); j++) + { + TCmds cmd = iCmds->At(j); + if( cmd.iCmd == aCmd ) + { + _LIT(KDesC, "Checking command id = %d "); + EUNIT_PRINT( KDesC(), aCmd ); + TPhoneCmdParamCallHeaderData* value = static_cast( cmd.iP ); + if( CheckCallheaderValues( *value, aValue) == KErrNone ) + { + paramOk = ETrue; + break; + } + } + } + + EUNIT_ASSERT_DESC( paramOk, "View Call Header param not ok" ); + } + + TInt CheckCallheaderValues(const TPhoneCmdParamCallHeaderData& aActual, + const TPhoneCmdParamCallHeaderData& aExpected ) + { + EUNIT_PRINT(_L("Checking CallHeaderData")); + if( aActual.CallState() != aExpected.CallState()) + { + EUNIT_PRINT(_L("CallState does not match.")); + return KErrNotFound; + } + + if(aActual.Line2() != aExpected.Line2() ) + { + EUNIT_PRINT(_L("Line2 does not match.")); + return KErrNotFound; + } + + return KErrNone; + } + + void SetViewGetCountOfActiveCalls( TInt aValue ) + { + iActiveCallCount = aValue; + } + + + void SetViewGetCallExistsInConference( TInt aValue ) + { + iCallExistsInConference = aValue; + } + + void ResetCommands() + { + if(iCmds) + { + for(TInt i = 0; iCount(); i++) + { + TCmds t = iCmds->At(i); + delete t.iP; + + } + iCmds->Reset(); + } + } + public: // members + TPhoneViewResponseId iViewResponseId; + CArrayFixFlat* iCmds; + TInt iCallId; + TInt iActiveCallCount; + TBool iCallExistsInConference; + TBool iHoldFlag; + }; +