diff -r 8bda91a87a00 -r 8ee96d21d9bf gssettingsuis/Gs/GSCallDivertPlugin/Inc/GSCallDivertView.h --- a/gssettingsuis/Gs/GSCallDivertPlugin/Inc/GSCallDivertView.h Thu Aug 19 10:12:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* -* Copyright (c) 2002-2008 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: View handling for Call Divert. -* -*/ - - -#ifndef CFCALLDIVERTVIEW_H -#define CFCALLDIVERTVIEW_H - -// INCLUDES -#include "GSLocalBaseView.h" -#include "CallDivertPlugin.hrh" - -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CAiwServiceHandler; -class CGSCallDivertModel; -class CGSCallDivertPluginContainer; -class CGSCallDivertQuery; -class CVPbkContactLinkArray; -class CVPbkContactManager; -class MVPbkContactLink; - - -// CLASS DECLARATION - -/** -* CGSCallDivertView view class. -*/ -class CGSCallDivertView : public CGSLocalBaseView, - public MAiwNotifyCallback, - public MVPbkSingleContactOperationObserver, - public MVPbkContactStoreListObserver - { - public: // Constructors and destructor - - /** - * Symbian OS default constructor - */ - void ConstructL(); - - /** - * Destructor - */ - ~CGSCallDivertView(); - - - /** - * Symbian OS two-phase Constructor - * @return pointer to CGSCallDivertView object - */ - static CGSCallDivertView* NewLC( CGSCallDivertModel* aModel ); - - - - public: // Functions from base class CAknView - - /* C++ Constructor */ - CGSCallDivertView( CGSCallDivertModel* aModel ); - - /** - * From CAknView, gives the id of the view. - * - * @return Returns the TUid of the view. - */ - TUid Id() const; - - /** - * From MEikCommandObserver, handles the commands. - * - * @param aCommand identifies the command given. - */ - void HandleCommandL( TInt aCommand ); - /** - * From MEikCommandObserver, handles the commands. - * - * @param aCommand identifies the command given. - */ - void ProcessCommandL( TInt aCommand ); - - public: // MAiwNotifyCallback - - /** - * From MAiwNotifyCallback. Handles notifications caused by an - * asynchronous Execute*CmdL call or an event. - * - * @param aCmdId The service command associated to the event. - * @param aEventId Occured event, see AiwCommon.hrh. - * @param aEventParamList Event parameters, if any, as defined per - * each event. - * @param aInParamList Input parameters, if any, given in the - * related HandleCommmandL. - * @return Error code for the callback. - */ - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CAiwGenericParamList& aEventParamList, - const CAiwGenericParamList& aInParamList); - - public: // From MVPbkSingleContactOperationObserver - - /** - * This is called when user has selected a contact from pbk2 - * contacts-dialog. - * @param aOperation pbk2 related operation. Not used here. - * @param aContact Selected contact data. - */ - void VPbkSingleContactOperationComplete( - MVPbkContactOperationBase& aOperation, - MVPbkStoreContact* aContact ); - /** - * See MVPbkSingleContactOperationObserver. - */ - void VPbkSingleContactOperationFailed( - MVPbkContactOperationBase& aOperation, - TInt aError ); - - public: // From MVPbkContactStoreListObserver - - /** - * See MVPbkContactStoreListObserver. - */ - void OpenComplete(); - - /** - * See MVPbkContactStoreListObserver. - */ - void StoreReady( MVPbkContactStore& aContactStore ); - - /** - * See MVPbkContactStoreListObserver. - */ - void StoreUnavailable( MVPbkContactStore& aContactStore, - TInt aReason ); - - /** - * See MVPbkContactStoreListObserver. - */ - void HandleStoreEventL( MVPbkContactStore& aContactStore, - TVPbkContactStoreEvent aStoreEvent ); - - public: // New - - /** - * Creates time list to be used in "not available" cf service. - * @return Returns user keypress of the list - */ - TInt CreateTimeListL(); - - private: // From base class CGSBaseView - - /** - * See CGSBaseView. - */ - void NewContainerL(); - - /** - * See CGSBaseView. - */ - void HandleListBoxSelectionL(); - - private: //new - - /** - * Executes divert query dialog. - * --> voice calls -> all voice calls -> activate -> this popup. - * OR - * --> data calls -> all data calls -> activate -> this popup. - * - * @param aTelNumber user selected existing divert-to number - * @param aTitle gives title to the list - * @param aVmbxValidNumber divert is to a voicemail box number - * @return Returns TTelnumber to be the target for operation. - */ - void ExecuteDivertQueryL( TTelNumber& aTelNumber, - const TPtrC& aTitle, - TBool& aVmbxValidNumber ); - - /** - * Displays a query for divert number. Used for all divert types: - * - voice - * - data - * - fax - * diverts. - * - * @param aValue text in the editor - * @param aType Dataquery resource ID text - * @return Returns the number. - */ - void ExecuteDivertNumberQueryL( TDes& aValue, TInt aType ); - - /** - * Single item fetch from the phonebook - * @param aNumber fetched phonenumber - */ - void StartAsyncPhoneNumberFetchL( /*TDes& aNumber*/ ); - - - /** - * Checks if the user given telephone number contain - * illegal ('#', 'p', 'w', ...) characters - * - * @param aDivertTo user given telephone number - */ - static TInt ValidatePhoneNumberL( const TDesC& aDivertTo ); - - /** - * Appends to array a delay time in steps of five (5,10,15,...). - * Delay time is figured out by multiplying index by five. - * - * @param aArrayToAppend - * @param aIndex - */ - void AppendDelayItemL( CDesCArrayFlat& aArrayToAppend, TInt aIndex ); - - - /** - * Seeks '+' from given number. - * @param aDivertTo the number checked for - * @return Either KErrNone (no plus) or KCFErrIllegalNumber. - */ - static TInt FindPlus( const TDesC& aDivertTo ); - - /** - * Sets prompt text to a query. - */ - void SetPromptToQueryL( CGSCallDivertQuery& aQuery, - const TInt& aType ); - - /** - * Creates items for Delay time list - */ - void CreateDelayTimeItemsL( CDesCArrayFlat& aItems ); - - /** - * Creates items for Delay time list for restricted call divert - */ - void CreateRestrictedCallDivertDelayTimeItemsL( CDesCArrayFlat& aItems ); - - /** - * Displays invalid number note. - */ - static void ShowErrorNoteL(); - - /** - * Updates most recently used voice divert numbers to cenrep - * - * @param aItems array in which all items are - * @param aNumber telNumber to be updated - */ - void UpdateDefaultVoiceDivertNumbersL( TDes& aNumber ); - - /** - * Reads 3 previously used voice divert numbers. - * - * @param aItems array in which the items are put into - * @param aDefaultNumbers array from which default items are read - */ - void ReadDefaultVoiceDivertNumbersL( CDesCArray& aItems, - CDesC16ArrayFlat& aDefaultNumbers ); - - /** - * Creates items for the target list ('To voicemailbox', ...) - * - * @param aItems array in which the items are put into - * @param aDefaultNumbers array from which default items are read - */ - void CreateVoiceDivertItemsL( CDesCArray& aItems, - CDesC16ArrayFlat& aDefaultNumbers ); - - /** - * Creates items for the target list ('To voicemailbox', ...) - * - * @param aItems array in which the items are put into - */ - void CreateVideoDivertItemsL( CDesCArray& aItems ); - - /** - * Handles users selection from Target menu - */ - TTelNumber HandleVoiceDivertSelectionL( - CAknSinglePopupMenuStyleListBox& aList, - CDesC16ArrayFlat& aDefNumbers, - TBool& aVmbxDivert ); - - /** - * Handles users selection from Target menu - */ - TTelNumber HandleVideoDivertSelectionL( - CAknSinglePopupMenuStyleListBox& aList ); - - /** - * Displays data call number query and activates data divert - * @param aTelNumber Phone number for call divert - */ - void DisplayDataCallDivertNumberQueryL( TTelNumber& aTelNumber ); - - /** - * Remove invalid " ", "()" which were sync with PC suite. - * Make sure the call divert behavior is the same as user making a phone call. - * Illegal ('#', 'p', 'w', ...) characters are handled in ValidatePhoneNumberL(). - * @param aNumber Phone number for call divert - * @param aInvalidChars the invalid chars to remove - */ - void RemoveInvalidChars( TDes& aNumber ); - - private: - - void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); - - private: - // Has selection key been pressed - TBool iRockerPress; - - // Array of setting item titles - CDesCArray* iTitles; - - /** - * Member variables related to AIW service handler used by pbk2 contact - * selection functionality. Former functionality was synchronous dialog - * based but pbk2 framework required refactoring this to asynchronous. - * As a result a bucket load of observers and functionality otherwise - * unused is needed here. Basically the call divert plugin is now - * changed into a state machine because of pbk2 requirement. - */ - // AIW service for pbk2. - CAiwServiceHandler* iServiceHandler; - // Handles contact stores. - CVPbkContactManager* iContactManager; - // Pointer to both a contact and a contact field - CVPbkContactLinkArray* iContactLinks; - // Pbk stores are opened. - TBool iStoresOpened; - // Stores pbk2 operations. - MVPbkContactOperationBase* iRetrieveOperation; - // Used pbk2 number query which is asynchronously. - TBool iNumberFetchedAsynchronously; - - - // Call divert request is for voice mailbox. - TBool iVoiceMailboxDivert; - - //Context menu items for call forwarding - CDesCArrayFlat* iContextMenuItems; - - // Reference to call divert model. NOT owned. - CGSCallDivertModel* iModel; - TBool iVideoMailboxSupported; - - }; - - - -#endif //CFCALLDIVERTVIEW_H -// End of File