diff -r 000000000000 -r 5f000ab63145 phoneapp/phoneuivoipextension/inc/cphonecallforwardqueryhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuivoipextension/inc/cphonecallforwardqueryhandler.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,181 @@ +/* +* 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: Handles queries related to call forwarding. +* +*/ + + +#ifndef C_CPHONECALLFORWARDQUERYHANDLER_H +#define C_CPHONECALLFORWARDQUERYHANDLER_H + +#include +#include +#include "mphonequerycommandobserver.h" + +class MPhoneStateMachine; +class MPhoneViewCommandHandle; +class CPhoneStateUtilsVoip; + +/** + * Handles queries related to call forwarding. + * + * @lib PhoneUIVoIPExtension.dll + * @since S60 v5.1 + */ +NONSHARABLE_CLASS( CPhoneCallForwardQueryHandler ) : + public CBase, + public MPhoneQueryCommandObserver + { + +public: + + /** + * Enum for query types. + */ + enum TQueryType + { + EPhoneQueryNotSet, + EPhoneQueryAddToContacts, + EPhoneMovedPermanently, + EPhoneMultipleChoices + }; + + /** + * Two-phased constructor. + * @param aStateMachine Handle to the state machine. + * @param aViewCommandHandle Handle to the PhoneUIView. + */ + static CPhoneCallForwardQueryHandler* NewL( + MPhoneStateMachine& aStateMachine, + MPhoneViewCommandHandle& aViewCommandHandle ); + + /** + * Two-phased constructor. + * @param aStateMachine Handle to the state machine. + * @param aViewCommandHandle Handle to the PhoneUIView. + */ + static CPhoneCallForwardQueryHandler* NewLC( + MPhoneStateMachine& aStateMachine, + MPhoneViewCommandHandle& aViewCommandHandle ); + + /** + * Destructor. + */ + virtual ~CPhoneCallForwardQueryHandler(); + + /** + * Shows moved permanently query. + * @param aCallId Id of the call + */ + void ShowMovedPermanentlyQueryL( TInt aCallId ); + + /** + * Shows multiple choices query. + * @param aCallId Id of the call + */ + void ShowMultipleChoicesQueryL( TInt aCallId ); + +protected: + +// From MPhoneQueryCommandObserver + /** + * Processes query commands + * @param aCommandId A command id. + */ + void ProcessCommandL( TInt aCommandId ); + +private: + + CPhoneCallForwardQueryHandler( + MPhoneStateMachine& aStateMachine, + MPhoneViewCommandHandle& aViewCommandHandle ); + + void ConstructL(); + + /** + * Adds string to contacts. + * @param aCreateNew ETrue creates new contact, + * EFalse updates exiting contact. + */ + void AddToContacsL( TBool aCreateNew ); + + /** + * Saves address to contacts. + */ + void SaveAddressToContactsL(); + + /** + * Shows call is being forwarded information note. + */ + void ShowCallForwardedNoteL(); + + /** + * Resets multiple choices item text array. + * @param aAddressArray New items for array. + */ + void ResetMultipleChoicesArrayL( + const MDesC8Array& aAddressArray ); + + /** + * Shows info note "Call is being forwarded" and starts + * call forward to selected address. + * @param aIndex Array index for address where call is being + * forwarded. + */ + void ForwardCallToAddressL( TInt aIndex ); + +private: // data + + /** + * Interface to the state machine. + * Not own. + */ + MPhoneStateMachine& iStateMachine; + + /** + * Interface to the phone ui view. + * Not own. + */ + MPhoneViewCommandHandle& iViewCommandHandle; + + /** + * Address array. + * Not own. + */ + const CDesC8Array* iAddressArray; + + /** + * Address array. + * Own. + */ + CDesC16ArrayFlat* iMultipleChoicesArray; + + /** + * Call id + */ + TInt iCallId; + + /** + * Query type + */ + TInt iQueryType; + + /** + * Flag to check is command already processed. + */ + TBool iCommandProcessed; + }; + + +#endif // C_CPHONECALLFORWARDQUERYHANDLER_H