diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpstui/inc/cvimpstuitabbedview.h --- a/uiservicetab/vimpstui/inc/cvimpstuitabbedview.h Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,709 +0,0 @@ -/* -* Copyright (c) 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: Tabbed view declaration -* -*/ - - -#ifndef __CVIMPSTUITABBEDVIEW_H__ -#define __CVIMPSTUITABBEDVIEW_H__ - -// INCLUDES -#include // CBase -#include - -#include -#include // Toolbar - -#include -#include -#include -// CBase -#include -#include -#include "tvimpstenums.h" - -//command observer -#include "mvimpstcmdobserver.h" -//auth event observer. -#include "mvimpstenginesearchextentioneventobserver.h" - -#include -// FORWARD DECLARATIONS -class CEikMenuPane; -class MVIMPSTUiTabbedViewControl; -class CPbk2UIExtensionView; -class MVIMPSTCmdHandler; -class CVIMPSTUIExtensionService; -class MVIMPSTEngine; -class MCCAParameter; -class MCCAConnection; -class MVIMPSTCmd; -class CVIMPSTUiBrandData; -class CVIMPSTUtilsWaitNote; -class CAiwServiceHandler; -class CAknToolbar; -class MVPbkStoreContact; -class CBrowserLauncher; -class MVPbkStoreContact; -class MVIMPSTSettingsStore; -class CCVIMPSTUiStatusPaneHandler; -class CVIMPSTUIMenuExtension; -class CVIMPSTUiContactSelection; -class TAiwSingleEntrySelectionDataV2; -class TAiwMultipleEntrySelectionDataV2; - -class CCoeAppUi; -// CLASS DECLARATION -/** - * Tabbed view implementation - * @lib vimpstui.lib - * @since S60 v5.0 - */ - // codescanner warnings can be ignored as CxSPBaseView derived from CBsse - -class CVIMPSTUiTabbedView : public CxSPBaseView, // CSI: 51 # - public MVIMPSTCmdObserver, - public MAknToolbarObserver, // Toolbar - public MVIMPSTEngineSearchExtentionEventObserver, - public MDownloadedContentHandler, - public MAknServerAppExitObserver, - public MAiwNotifyCallback, - public MPbk2UIExtensionView2 - - - - - { - public: // Constructor - - enum TXmppMenuValues - { - EXmppMenuValuesUseExisting = 0, - EXmppMenuValuesCreateNew = 1 - }; - - enum TMenuSelection - { - EInvitAcceptCreateNew = 0, - EInvitAcceptUpdateExisting = 1, - EContactCreateNew, - EContactAddFromContacts, - ECreateXSPCall - }; - - /** - * Creates a new CVIMPSTUiTabbedView. - * - * @param aMapper Reference to view mapper object - * @param aContactManager Reference to contact manager object - * @param aTabbedViewId, view i. - * @param aServiceId, service id. - * @param aView, reference to the view. - * @param aId, uid - * @param aServiceData, service info. - * @param aEngine, reference to engine. - * @param aCommandHandler, reference to commandhandler. - * @return New instance of this class - */ - static CVIMPSTUiTabbedView* NewL( MxSPViewMapper& aMapper, - MxSPContactManager& aContactManager, - TUint aTabbedViewId, - TUint aServiceId, - CPbk2UIExtensionView& aView, - TUid aId, - CVIMPSTUIExtensionService& aServiceData, - MVIMPSTEngine& aEngine, - MVIMPSTCmdHandler& aCommandHandler, - CVIMPSTUIMenuExtension& aMenuExtension); - - public: // From MDownloadedContentHandler - - /** - * Handle downloaded content that has been saved to a file, - * and return ETrue if it was handled successfully. - * @param aFileName File name with path. - * @param aParamList Generic parameter list. - * @param aContinue Output parameter: It must be ETrue if the caller wants - * Browser not to terminate after the content is handled. - * @return ETrue if the implementer has processed the content. If it is - * EFalse, BrowserLauncher opens that content in an - * appropriate viewer application. - */ - TBool HandleContentL( const TDesC& aFileName, - const CAiwGenericParamList& aParamList, - TBool& aContinue ); - - /** - * Reserved for future use. - */ - TAny* DownloadedContentHandlerReserved1( TAny* aAnyParam ); - public: // from MApaServerAppExitObserver - /** - * Handle the exit of a connected server app. - * This implementation provides Series 60 default behavior - * for handling of the EAknCmdExit exit code. Derived classes - * should base-call this implementation if they override this - * function. - * @param aReason The reason that the server application exited. - * This will either be an error code, or the command id that caused - * the server app to exit. - */ - void HandleServerAppExit(TInt aReason); - - - public: // From MPbk2UIExtensionView through CxSPBaseView - - /** - * @see MPbk2UIExtensionView - */ - TBool HandleCommandKeyL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * @see MPbk2UIExtensionView - */ - void DoDeactivate(); - - /** - * @see MPbk2UIExtensionView - */ - void HandleCommandL( TInt aCommand ); - - /** - * @see MPbk2UIExtensionView - */ - void DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ); - - /** - * @see MPbk2UIExtensionView - */ - void HandleStatusPaneSizeChange(); - - /** - * @see MPbk2UIExtensionView - */ - TAny* UIExtensionViewExtension( TUid aExtensionUid ); - - /** - * @see MPbk2UIExtensionView2 - */ - void HandleForegroundEventL(TBool aForeground); - - - public: // new functions - - /** - * Changes current status message - * @param aStatus Status which message is needed. - * @param aUpdateToNetwork ETrue update, EFalse do not update. - * @return KErrCancel if canceled. - */ - TInt AskStatusMessageL( TVIMPSTEnums::TOnlineStatus aStatus, - TBool aUpdateToNetwork ); - - /** - * Get status old status messages from file. - * @param aArray. Array of messages. Don't clear before filling. - * @param aStatus Status which message is needed. - */ - void ReadStatusMessagesL( CDesCArray& aArray, TVIMPSTEnums::TOnlineStatus aStatus ); - - /** - * Write status messages to file. - * @param aArray. Array of messages to write. Newest in top. Do not write duplicates. - * @param aStatus Status which message is needed. - */ - void WriteStatusMessagesL( MDesCArray& aArray, TVIMPSTEnums::TOnlineStatus aStatus ); - - /** - * Loads status icons for own status. - * @returns iconarray,ownership is transfered. - **/ - CAknIconArray* LoadOwnStatusIconsL(); - - /** - * Changes ownstatus - **/ - void ChangeStatusProcessL(); - - /** - * Adds a contact. - * @param aUserId id of contact to be added. - * @param aResourceId resource for query. - **/ - void AddContactL( const TInt aResouceId, const TDesC& aUserId = KNullDesC ); - - /** - * Deletes a contact. - **/ - void DeleteContactL(); - - /** - * @retunrs currentitemindex. - **/ - TInt CurrentItemIndex(); - - /** - * @retunrs current state. - **/ - TVIMPSTEnums::TVIMPSTRegistrationState GetServiceState(); - - - - /** - * Makes a internet call form send key and toolbar butotn - * if applicable. - **/ - void MakeVoipCallL(); - - - /** - * close conversation from service tab. - **/ - void CloseConversationL(); - - /* - *handles the completion of create new/update existing selection dialog - */ - void HandleContactSelectionCompleteL(); - - - - - public: //Toolbar - /** - * From MAknToolbarObserver - */ - void DynInitToolbarL( TInt aResourceId, CAknToolbar* aToolbar ); - - /** - * From MAknToolbarObserver - */ - void OfferToolbarEventL( TInt aCommand ); - - /** - * Create Fixed Toolbar - * Since 5.0 - */ - void CreateToolBarL(); - - /** - * Handle Fixed Toolbar command updating - * Since 5.0 - */ - void UpdateToolbarL(); - - - - /** - * Show or hide the toolbar - * Since 5.0 - * @aShow if ETrue, show toolbar, otherwise, Don't show the toolbar. - */ - void ShowHideFixedToolbarL(TBool aShow); - - /** - * Function to launch help - */ - void LaunchHelpL( const TDesC& aContext); - - /** - * returns the MVIMPSTSettingsStore pointer. - * Its created at the ConstructL of the view, so it stays till view is destructed - * - * @return MVIMPSTSettingsStore pointer : no ownership is transferred - **/ - MVIMPSTSettingsStore* SettingsStore(); - - /** - * returns whether the cancel login is supported or not - * - * @return TBool, ETrue if cancel login is supported else EFasle - */ - TBool CancelLoginSupportedL(); - - - private: // Functions from MVIMPSTEngineSearchExtentionEventObserver - - /** - * @see MVIMPSTEngineSearchExtentionEventObserver - */ - void HandleSearchResultL(RArray aSerachData) ; - - /** - * @see MVIMPSTEngineSearchExtentionEventObserver - */ - void HandleSearchFinishedL(TInt aError); - - - /** - * @see MVIMPSTEngineSearchExtentionEventObserver - */ - void HandleSearchKeysEventL( RArray& aEnumKeysArray, RPointerArray& aLebelKeysArray ) ; - - - private: // From CxSPBaseView - - /** - * @see CxSPBaseView - **/ - void DoActivateViewL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - - - private : //From MImCommandObserver - - /** - * @see MImCommandObserver - **/ - void CommandFinishedL( - const MVIMPSTCmd& aCommand ); - - /** - * @see MImCommandObserver - **/ - void HandleCommandEventL(TVIMPSTEnums::TVIMPSTRegistrationState aState, TInt aServiceError) ; - - - /** - * BlockContactL - * @param Block if ETrue then call block else call unblock - */ - void BlockContactL(TBool aBlock = EFalse ); - - /** - * Show error note - * @param aError, error type - */ - void ShowErrorNoteL(TInt aError ); - - private: // Implementation - /** - * Standard C++ constructor - * @param aMapper Reference to view mapper object - * @param aContactManager Reference to contact manager object - * @param aTabbedViewId, view i. - * @param aServiceId, service id. - * @param aView, reference to the view. - * @param aId, uid - * @param aServiceData, service info. - * @param aEngine, reference to engine. - * @param aCommandHandler, reference to commandhandler. - */ - CVIMPSTUiTabbedView( MxSPViewMapper& aMapper, - MxSPContactManager& aContactManager, - TUint aTabbedViewId, - TUint aServiceId, - CPbk2UIExtensionView& aView, - TUid aId, - CVIMPSTUIExtensionService& aServiceData, - MVIMPSTEngine& aEngine, - MVIMPSTCmdHandler& aCommandHandler, - CVIMPSTUIMenuExtension& aMenuExtension); - - /** - * Performs the 2nd phase of construction. - */ - void ConstructL(); - - /** - * Standard C++ destructor. - */ - ~CVIMPSTUiTabbedView(); - - - /** - * Gets the reference to commandhandler. - * @returns MVIMPSTCmdHandler&, reference to CommandHandlerL. - */ - MVIMPSTCmdHandler& CommandHandlerL(); - - /** - * change own status message - */ - void ChangeOwnStatusMessageL(); - - /** - * change own avatar - * @param aFileName - a file name - * @param aMimeType - a mime type - */ - void ChangeOwnAvatarL(const TDesC& aFileName, const TDesC8& aMimeType ); - - /** - * search a given string - */ - void SearchContactsL() ; - - /** - * Used to launch search view - * @param aViewId - id of view to be launched - */ - void LaunchViewL( TInt aViewId ) ; - - /** - * processes friend request,when user opens friend request item - */ - void ProcessFriendRequestL(); - /** - * do login realted operations, tou, url - */ - void LoginL(); - /** - * shows URL to register for the First time users. - */ - void ShowURLQueryL(); - - /** - * opens broswer - * @param TDesC& aUrl - url to be opened - */ - void OpenWebBrowserL( const TDesC& aUrl ); - - /** - * shows poplist with Create New account, login with the existing userid. - * - * @since S60 5.0 - * @param aMenuChoise, will return the selected poplist item - */ - void ShowUseExistingOrCreateNewMenuL( TInt& aMenuChoise ); - - /** - * shows poplist with Create New account, login with the existing userid. - * - * @since S60 5.0 - * @return, will return the selected poplist item - */ - TInt ShowNewUpdateQueryL(); - - /** - * shows user name and password query dialog - * - * @since S60 5.0 - * @param aUserName, user name - * @param aPassword, password - */ - void ShowLoginDialogL( TDes& aUserName, TDes& aPassword ); - - /** - * Adds a phonebook contact. - **/ - void LaunchPhoneBookAddContactL(); - - /** - * launches selection dialog. - **/ - void LaunchPbkSelectionDlgL(); - - /** - * Adds all selected contact in aContacts. - **/ - void AddContactL(RPointerArray aContacts); - - - /** - * copies selected contact to phone book. - **/ - void CopyToPhoneBookL(); - - /** - * shows terms of use and logs in if userid and password is provided. - * - * @since S60 5.0 - * @return TInt, error if any. - */ - TInt ShowTermsofuseL(); - - - - /** - * returns whether the Change Connection is supported or not - * - * @return TBool, ETrue if Change Connection is supported else EFasle - */ - TBool ChangeConnectionSupportedL(); - - /* - *Shows the list of blocked contacts. - */ - void ShowBlockedContactListL(); - - /* - *Launches the setting view - */ - void LaunchSettingsViewL(); - - /* - *helper method for add or link to contacts - */ - void CreateOrLinkToPhoneBookL(TInt aCommand ); - - /* - *Launches the setting view - */ - void EditContactL(); - /* - *return true if URL query to be shown at login time, - * other wise false. - */ - TBool IsURLQueryToBeShownL(); - - - /* - * helper method for executing the call - */ - void ExecuteAiwCallL( const TDesC& aSelectedAddress ); - - /* - * helper method for checking and setting if user id is changed - */ - void ReadAndSetOwnUserIdL(); - /* - * launch the phonebook dialog for add from contacts depending on - * whether it is localstore or not - */ - void LaunchFetchDialogL(); - - /* - * Launch single contact selection dialog in case of local contacts for - * add from phonebook - */ - void ExecuteSingleItemFetchL( TAiwSingleEntrySelectionDataV2 aData ); - - /* - * Launch multiple contact selection dialog in case of server contacts for - * add from phonebook - */ - void ExecuteMultipleItemFetchL( TAiwMultipleEntrySelectionDataV2 aData ); - - /* - * Check and Create the servicehandler if it is NULL - */ - void ReInitializeServiceHandlerL(); - - public://from MAiwNotifyCallback. - TInt HandleNotifyL( - TInt aCmdId, - TInt aEventId, - CAiwGenericParamList& aEventParamList, - const CAiwGenericParamList& aInParamList); - - private: - enum TAssignmentState - { - EInvalid = 0, - EXSPAssign, - EDefaultAssign - }; - - private: // Data - - // Stores view id - TUint iViewId; - - //service id - TInt iServiceId; - - //Doesnt own - reference to engine for this service - MVIMPSTEngine& iEngine; - - //doesnt own - CVIMPSTUiBrandData* iBrandHandler; - - // Own: This view's control container - MVIMPSTUiTabbedViewControl* iContainer; - - // previous state. - TVIMPSTEnums::TVIMPSTRegistrationState iPreviousState; - - //CCA Param - Owns - MCCAParameter* iParameter; - - // Own: to connect CCA - //it is member variable because it is needed during the HideInBackground event - MCCAConnection* iConnection; - - //Owns. status message. - HBufC* iStatusMessage; - - //owns. object of aiwservicehandler. - CAiwServiceHandler *iServiceHandler; - - // not owned, reference to extension service - CVIMPSTUIExtensionService& iExtensionService; - - //Owns command Handler for this view - MVIMPSTCmdHandler& iCommandHandler; - - //doew not own, reference to menu extension - CVIMPSTUIMenuExtension& iMenuExtension; - - // owned, wait note. - CVIMPSTUtilsWaitNote* iWaitNote; - - //owned. Pointer to toolbar object. - CAknToolbar* iFixedToolbar; - - - //owns. object of MVPbkStoreContact - MVPbkStoreContact* iContact; - //Owns: Stores the focused contact ID from iContainer before it gets destroyed - HBufC* iFocussedIDHistory; - //handle to customize status pane - CCVIMPSTUiStatusPaneHandler* iStatusPaneHandler; - - //Owns Browser launcher - CBrowserLauncher* iBrLauncher; - - //Owns, username - HBufC* iUserId; - - // owns, retrive settings from cenrep store - MVIMPSTSettingsStore* iSettingsStore; - //in param list for aiw generic options, owns - CAiwGenericParamList* iAiwParamList; - // selected data - TVPbkSelectedData iSelectedData; - // Friend request accept,method index - TInt iSelectedAction; - // Owns : selected friendrequest id - HBufC* iFriendRequestId; - // owns : contact selection - CVIMPSTUiContactSelection* iContactSelection; - //to know whether to hide the add contact button on the toolbar - TBool iAddContact; - // owns : selected result from aiw call query - HBufC* iQueryResult; - - //iIsToolBarHidden, if ETrue: tool bar is already hidded - // no need to call again hidetoolbar. - TBool iIsToolBarHidden; - // NOT OWNS - CCoeAppUi* iAppUi; - - //Keep track, if iServiceHandler has been reset or not. - TBool iIsServiceHandleReSet; - - TBool iContainerCreationStarted; - - }; - -#endif // __CVIMPSTUITABBEDVIEW_H__ - -// End of File