diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlaunchersetdefault.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/inc/ccappcommlaunchersetdefault.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,237 @@ +/* +* Copyright (c) 2007-2007 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: Implementation of comm launcher view plugin +* +*/ + +#ifndef CCAPPCOMMLAUNCHERSETDEFAULT_H_ +#define CCAPPCOMMLAUNCHERSETDEFAULT_H_ + +#include +#include "ccalogger.h" +#include +#include +#include +#include +#include +#include +#include + +class CCCAppCmsContactFetcherWrapper; +class CPbk2ApplicationServices; + +class CCCAppCommLauncherLSetDefault: + public CBase, + public MVPbkSingleContactOperationObserver, + public MVPbkSetAttributeObserver, + public MVPbkContactStoreObserver, + public MVPbkContactObserver +{ +public: + /** + * Two phased constructor. + */ + static CCCAppCommLauncherLSetDefault* NewL( CCCAppCommLauncherPlugin& aPlugin ); + + /** + * Destructor. + */ + ~CCCAppCommLauncherLSetDefault(); + + void ExecuteAssignDefaultL(); + +public: // From MVPbkSingleContactOperationObserver + + void VPbkSingleContactOperationComplete( + MVPbkContactOperationBase& aOperation, + MVPbkStoreContact* aContact); + + void VPbkSingleContactOperationFailed( + MVPbkContactOperationBase& aOperation, + TInt aError); + +private: // From MVPbkSetAttributeObserver + + void AttributeOperationComplete( + MVPbkContactOperationBase& aOperation ); + void AttributeOperationFailed( + MVPbkContactOperationBase& aOperation, + TInt aError ); + +public: // From MVPbkContactStoreObserver + + void StoreReady( + MVPbkContactStore& aContactStore); + + void StoreUnavailable( + MVPbkContactStore& aContactStore, + TInt aReason); + + void HandleStoreEventL( + MVPbkContactStore& aContactStore, + TVPbkContactStoreEvent aStoreEvent ); + +private: // From MVPbkContactObserver + + void ContactOperationCompleted( + TContactOpResult aResult ); + + void ContactOperationFailed( + TContactOp aOpCode, + TInt aErrorCode, + TBool aErrorNotified ); + +private: + + /** + * Private constructor + */ + CCCAppCommLauncherLSetDefault(CCCAppCommLauncherPlugin& aPlugin ); + + /** + * ConstructL + */ + void ConstructL(); + +private: // New implemetations + + /* Wait to finish + * @param - none + * @return - none + */ + void WaitFinish(); + + /* Stop wait + * @param - none + * @return - none + */ + void StopWait(); + + /* Lock contact before setting default + * @param - none + * @return - none + */ + void LockContactL(); + + /* Loop through all fields to find if have field for this default type + * @param:aDefaultType - default type + * @return - ETrue if find, EFalse if not find + */ + TBool FindContactFieldWithAttributeL( TVPbkDefaultType aDefaultType ); + + /* Do set default atrribut + * @param: aDefaultType - default type + * @return: aIndex - the field index which will be set default + */ + void DoSetDefaultL( TVPbkDefaultType aDefaultType, TInt aIndex ); + + /* Set next + * @param - none + * @return - none + */ + void SetNextL(); + + /* Check if has field for this selector + * @param:aContactAction - contact action + * @param:aIndex - the field index + * @return - true for have, false for not have + */ + TBool IsContactActionHasField( + VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aContactAction, TInt& aIndex); + + /* Map selector id to default type + * @param:aSelectorID - selector id + * @return - default type + */ + TVPbkDefaultType MapSelectorIdToDefaultType( + const VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector aSelectorID ); + + /* Get next selector id + * @param - none + * @return - next selector id + */ + VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector NextAttribute(); + + /* Default setting complete + * @param - none + * @return - none + */ + void DefaultSettingCompleteL(); + + /* Process finished + * @param:aError - error id + * @return - none + */ + void ProcessFinished( TInt aError ); + + /* Handle error + * @param:aError - error id + * @return - none + */ + void HandleError( TInt aError ); + + /* Check if the contact is phone memory contact + * @param:aContact - the contact + * @return - true for phone memory contact, otherwise return false + */ + TBool IsPhoneMemoryContact( + const MVPbkStoreContact& aContact) const; + +private: // Member variables + + // Own: array for action id + CArrayFixFlat* iDefaultActions; + + // Own: Scheduler wait + CActiveSchedulerWait* iWaitFinish; + + // Own: store contact + MVPbkStoreContact* iStoreContact; + + // Own: retrieve operation + MVPbkContactOperationBase* iRetrieveOperation; + + // Own: links + MVPbkContactLinkArray* iLinks; + + // Own: attribut operation + MVPbkContactOperationBase* iSetAttributeOperation; + + // Own: contact store + MVPbkContactStore* iContactStore; + + // referenct to plugin + CCCAppCommLauncherPlugin& iPlugin; + + // wrapper + CCCAppCmsContactFetcherWrapper* iCmsWrapper; + + // link array des + HBufC8* iContactLinkArrayDes; + + // Application service + CPbk2ApplicationServices* iAppServices; + + /// Own: Phonebook 2 commands dll resource file + RPbk2LocalizedResourceFile iCommandsResourceFile; + + /// Own: Phonebook 2 UI controls dll resource file + RPbk2LocalizedResourceFile iUiControlsResourceFile; + + /// Own: Phonebook 2 common UI dll resource file + RPbk2LocalizedResourceFile iCommonUiResourceFile; + + }; + +#endif /* CCAPPCOMMLAUNCHERSETDEFAULT_H_ */