diff -r 78df25012fda -r 12bc758d6a02 phoneclientserver/callui/inc/cauiengine/cauiengine.h --- a/phoneclientserver/callui/inc/cauiengine/cauiengine.h Fri Sep 17 17:09:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,511 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides engine implementation for CallUI. -* -*/ - - -#ifndef CAUIENGINE_H -#define CAUIENGINE_H - -// INCLUDES -#include -#include // RconeResourceLoader. -#include // MPhCltExtPhoneObserver. -#include "cauieng.h" -#include "cauidialresultobserver.h" -#include "cauiqueryobserver.h" -#include -#include -#include // MPhCntSelectionObserver -#include // CPhCltEmergencyCall -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CPhCltExtPhoneBase; -class CAknGlobalListQuery; -class CAknGlobalConfirmationQuery; -class CAknGlobalNote; -class CCaUiReConQueryInformation; -class CAiwInternalDialData; -class CPhCltExtPhoneDialData; -class CPhCntSingleItemFetch; -class CPhCntFactory; -class CCaUiVoIPExtension; -class MPhCntStoreLoader; -class MVPbkContactStore; - -class CCaUiDialogs; - -// CONSTANTS - -// Owned and used resource file. -_LIT( KCallUIResFile, "z:\\resource\\CallUI.rsc" ); - - - /** - * Indicates state of long press key - * Default value: 0 - * Default value for iMode variant: 1 - */ -enum TCaUiLongPressKey - { - ECaUiLongPressKeyNotSet = 0, // Long press key is not set - ECaUiLongPressKeyNotInUse = 1, // Long press key is not in use - ECaUiLongPressKeyInUse = 2, // Long press key is in use - }; - -// CLASS DECLARATION - -/** -* CaUIEngine implementation. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CCaUiEngine ) -: public CCaUiEngApi, - public MPhCltExtPhoneObserver, - public MCaUiReconnectQueryObserver, - public MPhCntSelectionObserver, - public MPhCltEmergencyCallObserver, - public MPhCntStoreLoaderObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @return an instance of CallUI. - */ - static CCaUiEngine* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiEngine(); - - - public: // New functions - - /** - * Make the dial operation. - * - * @see CCaUiEngApi::DialL(). - */ - void DialL( - MCaUiDialResultObserver& aObserver, - const TDesC8& aDialData, - const TCaUiCallType aCallType ); - - /** - * Launch the qtn.tel.no.video.network information note. - * - * @see CCaUiEngApi::LaunchNoNetSupNoteL(). - */ - void LaunchNoNetSupNoteL(); - - - /** - * Launch reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchReconConfQueryL(). - */ - void LaunchReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption ); - - /** - * Cancel reconnect query. - * - * @see CCaUiEngApi::CancelReconConfQuery(). - */ - void CancelReconConfQuery(); - - - /** - * Launch note and reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL(). - */ - void LaunchNoteAndReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption, - const TPtrC aNoteText ); - - /** - * Cancel note and reconnect query. - * - * @see CCaUiEngApi::CancelNoteAndReconConfQuery(). - */ - void CancelNoteAndReconConfQuery(); - - /** - * Launch address selection. - * @since 3.0 - * - * @see CCaUiEngApi::LaunchAddressSelectL(). - */ - TBool LaunchAddressSelectL( - TDes& aTelNum, - const TInt aContactId, - const TBool aVoIPAddressSelect ); - - /** - * Cancel address select launched with LaunchAddressSelectL. - * @since 3.0 - * - * @see CCaUiEngApi::CancelAddressSelect(). - */ - void CancelAddressSelect(); - - public: // from MPhCntStoreLoaderObserver - - /** - * From MPhCntStoreLoaderObserver; - * @since S60 v9.1 - * @see MPhCntStoreLoaderObserver. - */ - void ContactStoreLoadingCompleted( - MVPbkContactStore* aStore, TInt aErrorCode ); - - private: // Functions from base classes - - /** - * Handle dial request completion. - * - * @see MPhCltExtPhoneObserver::HandleDialL(). - */ - void HandleDialL( const TInt aStatus ); - - /** - * Called when CCaUiReconnectQuery has got a key press. - * - * @see MCaUiReconnectQueryObserver::OptionSelectedL(). - */ - void OptionSelected( MCaUiReconnectQueryObserver::TCaUiReconType aReconType ); - - - private: - - /** - * C++ default constructor. - */ - CCaUiEngine(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Convert the AIW dialdata to PhoneClient format. - * - * @param aAiwDialData AIW DialData format. - */ - void ConvertDialDataL( - const CAiwInternalDialData& aAiwDialData ); - - - /** - * Clear the Dial related contents if they exist. - */ - void ClearDialContents(); - - - - public: - - /** - * Check is there VoIP profiles in phone. - * - * @since 3.0 - * @return ETrue if found, EFalse otherwise. - */ - TBool IsVoIPProfiles(); - - /** - * @see CCaUiEngApi::GetVoIPServiceIdsL - */ - void GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const; - - /** - * @see CCaUiEngApi::GetVoipServiceNameL - */ - void GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const; - - private: - - /** - * Launch address selection. If contact contains default number or - * only one number, number will be returned directly. - * Otherwise address selection list displayed. - * @since 3.0 - * - * @param aTelNum Contains selected number after execution. - * @param aContactId The contact id from PhoneBook. - * @param aCallType If calltype is ECaUiCallTypeInternet VoIP address - * select is used. - * @param aRemoveInvalidChars Removes invalid chars from selected number - * if set ETrue. - * @param aFocusedField Focused field from PhoneBook - * @return TBool, ETrue if number selected, EFalse otherwice - * (E.g. list canceled) - */ - void LaunchAddressSelectL( - const TDesC8& aContactLink, - const TCaUiCallType aCallType - ); - - - /** - * Looks for tel URI parameters from a specified phone number. - * @param aNumber The phone number that might contain URI parameters - * @return HBufC containing URI parameters, if parameters couldn't - * be found the HBufC with zero length is returned - * NOTE: The parameters will be ripped off from the given phone - * number (aNumber) if found. - */ - HBufC* FindAndRipURIParametersL( TDes& aNumber ) const; - - /** - * Looks call-type parameter from, URI params and converts the - * possible found hint as a return value. - * @param aUriParams The descriptor containing URI part of the tel URI. - * Parameters can be extracted from URI by using - * FindAndRipURIParametersL method. - * @return The hinted call type defined in URI parameters. - * If call-type parameter couldn't be found the EPhCltVoice is returned. - */ - TPhCltCallType CallTypeFromUriParams( const TDesC& aUriParams ) const; - - /** - * Utility method to search value of named parameter from tel URI. - * @param aName The name of parameter what is searched - * @param aUri The URI from from which parameter is searched - * @return The descriptor containing the valud of named parameter. - * If named parameter couldn't be found, KNullDesC is returned - */ - TPtrC ParamValue( const TDesC& aName, const TDesC& aUri ) const; - - /** - * Utility method to loop through all parameters in Tel URI. - * @param aUri Tel URI from which the parameters are searched. - * @param aStartIndex Offset from which searching is started. - * NOTE: method modifies aStartIndex parameter, always when - * it returns. So - * @return The descriptor containing the next parameter name=value pair. - */ - TPtrC FindNextParamValuePair( const TDesC& aUri, - TInt& aStartIndex ) const; - - /** - * Handle first long press of send key - * @since 3.2 - * Leaves if cenrep data can't be read. - * @return User decision about the VT setting - */ - TBool HandleFirstLongPressOfSendKeyL(); - - /** - * General handling of long press of send key - * @since 3.2 - * Leaves if cenrep data can't be read. - */ - void HandleLongPressOfSendKeyL(); - - /** - * from MPhCntSelectionObserver class - * @since 3.2 - * Leaves if aContactData data can't be read. - */ - void SelectionDone( CPhCntSelectedData* aContactData, TInt aErrorCode ); - - /** - * Makes phoneclient dial request - * @since 3.2 - * @param fieldLink link to phonenumber in contacts. If NULL call is - * not created from Phonebook. - */ - void PhoneClientDialL( const TDesC8* fieldLink ); - - /** - * Sets call type to phoneclient dial data struct. - * @since 3.2 - * @param aCallType Call type to set in dialdata struct. - */ - void SetDialDataCallType( const TCaUiCallType aCallType ); - - /** - * Checks if number is emergency number using - * Emergency call API - * @since 3.2 - * returns ETrue if number is emergency number. Default EFalse. - */ - TBool IsEmergencyNumber(); - - /** - * Handling of emergency dial result. - * @since 3.2 - * @see MPhCltEmergencyCallObserver::HandleEmergencyDialL(). - */ - void HandleEmergencyDialL( const TInt aStatus ); - - /** - * Checks if Video Call can be made - * @since 3.2 - * Leaves if cenrep data can't be read. - * returns ETrue if call can be made. - */ - TBool IsVideoCallAllowedL(); - - /** - * Gets Central repository value - * @since 3.2 - * @param aUid Central repository uid. - * @param aId, Central repository key Id. - * @param aValue Cen Rep key value. - * Leaves if cenrep data can't be read. - */ - void GetCenRepValueL( const TUid& aUid, - const TUint aId, - TInt& aValue ) const; - - /** - * Converts given TCaUiCallType to CPhCntContactDataSelection::TCallType - * @since 3.2 - * @param aCallType CallType to convert - * @param aResultCallType converted type - * - */ - void ConvertCaUiCallType( const TCaUiCallType aCallType, - CPhCntContactDataSelection::TCallType& aResultCallType ); - - /** - * Converts CPhCltExtPhoneDialData callType - * to CPhCntContactDataSelection::TCallType - * @since 3.2 - * @param aResultCallType converted type - * - */ - void ConvertDialDataCallType( - CPhCntContactDataSelection::TCallType& aResultCallType ); - - /** - * Converts TPhCltCallType callType to TCaUiCallType. - * @since S60 v9.1 - * @param aCallType Source type - * @param aResultCallType Converted type - */ - void ConvertPhCltCallType( const TPhCltCallType aCallType, - TCaUiCallType& aResultCallType ) const; - - /** - * Returns Service Selectors calltype by dial data calltype. - * @since 5.0 - * @param Selector calltype. - */ - CConvergedServiceSelector::TSsCallType ServiceSelectorCallType() const; - - /** - * Converts CCConvergedServiceSelector results - * to CPhCltExtPhoneDialData (calltype and service id) - * @since 5.0 - * @param aResults Service selectors results. - */ - void SetSelectorResults( - CConvergedServiceSelector::TSsResult& aResults ); - - /** - * Starts to load specified contact store if not yet loaded. - * If loading is needed, MPhCntStoreLoaderObserver::ContactStoreLoaded - * is called when store is ready for use. - * - * @since S60 v9.1 - * @param aContactLink Contact link specifying store to load. - * @return ETrue if store is already loaded. - */ - TBool LaunchContactStoreLoadingL( const TDesC8& aContactLink ); - - /** - * Resolves with a help of call type values whether call is initiated - * with a send command or through the explicit menu option. - * - * @since S60 v9.1 - * @param aCallType Call UI call type. - * @param aAiwCallType AIW call type. - * @return ETrue if send key pressed, EFalse otherwise. - */ - TBool IsSendKeyPressed( TCaUiCallType aCallType, - CAiwDialData::TCallType aAiwCallType ) const; - - private: // Data - - // Owned resource loader. - RConeResourceLoader iResourceLoader; - - // Buffer for returned localized texts. - HBufC* iBuf; - - // PhoneClient for call creation. - CPhCltExtPhoneBase* iPhCltDialer; - - // Handler class for PhoneClient Dial data. - CPhCltExtPhoneDialData* iDialData; - // Emergency call API - CPhCltEmergencyCall* iEmergencyCall; - - // The observer to handle CallUI dial results. - MCaUiDialResultObserver* iObserver; - - // VoIP extension. - CCaUiVoIPExtension* iVoIPProfileHandler; - - // Long press of Send key setting state, NOT SET/ON/OFF - TInt iLongPressSet; - - // The qtn.tel.xxx note shown to the user. - CAknGlobalConfirmationQuery* iVTSettingQuery; - - // Long key press note buffer - HBufC* iVTString; - // Contact factory for PhoneCntFinder connection - CPhCntFactory* iFactory; - - // Contact selector for fetching contact information from phonebook - CPhCntContactDataSelection* iContactSelector; - - // Service selector for calling service (service id and type) - CConvergedServiceSelector* iServiceSelector; - - /** - * Contact store loader. - * Own. - */ - MPhCntStoreLoader* iContactStoreLoader; - - // Dialogs class. Own - CCaUiDialogs* iDialogs; - - }; - -#endif // CAUIENGINE_H - -// End of file