diff -r 41a7f70b3818 -r 5266b1f337bd phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactdataselectionimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/PhoneCntFinder/ContactService/inc/cphcntcontactdataselectionimpl.h Wed Sep 01 12:30:10 2010 +0100 @@ -0,0 +1,226 @@ +/* +* Copyright (c) 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: Service to show dialogs for user to select contact data. +* +*/ + + +#ifndef CPHCNTCONTACTDATASELECTIONIMPL_H +#define CPHCNTCONTACTDATASELECTIONIMPL_H + +#include + +#include "cphcntcontactdataselection.h" +#include "tphcntcontactlinkresult.h" +#include "mphcntaiwservice.h" +#include "MPhCntContactFetchObserver.h" +#include "mphcntmatch.h" + +class MPhCntServiceRequestParamFactory; +class MPhCntServiceRequestParam; +class MPhCntContactStores; + +/** + * User selected data from phonebook services. + * + * @lib PhoneCntFinder + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CPhCntSelectedDataImpl ) : public CPhCntSelectedData + { +public: + + /** + * Static constructor. + * + * @param aContact Selected contact. Note that aContact needs to + * be valid as long NewL is executed. So CPhCntContact can be + * deleted after call to this NewL + */ + static CPhCntSelectedDataImpl* NewL( CPhCntContact& aContact ); + + ~CPhCntSelectedDataImpl(); + +// from base class CPhCntSelectedData + + const TDesC& Data() const; + + /** + * Phonebook's link, which points to the selected + * data. + */ + const TDesC8& FieldLink() const; + + /** + * Number type + */ + MPhCntMatch::TNumberType NumberType() const; + + +private: + CPhCntSelectedDataImpl(); + + void ConstructL( CPhCntContact& aContact ); + +private: // Data + + /** + * Own. + */ + HBufC8* iFieldLink; + + /** + * Own + */ + HBufC* iSelectedData; + + /** + * Specifies number type for selection + */ + MPhCntMatch::TNumberType iNumberType; + + }; + +/** + * Implements the CPhCntContactDataSelection interface + * + * @lib PhoneCntFinder.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CPhCntContactDataSelectionImpl ) : + public CPhCntContactDataSelection, + private MPhCntAiwServiceObserver, + private MPhCntContactFetchObserver + { + +public: + + static CPhCntContactDataSelectionImpl* NewL( + MPhCntAiwService* aService, + MPhCntServiceRequestParamFactory* aParamFactory, + MPhCntContactStores* iContactStores ); + + virtual ~CPhCntContactDataSelectionImpl(); + +// from base class CPhCntContactDataSelection + + /** + * From CPhCntContactDataSelection + * + * @see CPhCntContactDataSelection + * @since S60 v3.2 + */ + TBool IsActive() const; + + /** + * From CPhCntContactDataSelection + * ?description + * + * @see CPhCntContactDataSelection + * @since S60 v3.2 + */ + void Cancel(); + + /** + * From CPhCntContactDataSelection + * + * @see CPhCntContactDataSelection + * @since S60 v3.2 + */ + void SelectPhoneNumberForCallL( + const TDesC8& aContactLink, + const TCallType& aCallType, + MPhCntSelectionObserver& aObserver ); + +private: + +// from base class MPhCntAiwServiceObserver + + /** + * From MPhCntAiwServiceObserver + * Indication that service has completed. + * + * @since S60 v3.2 + * @param aError Error code + */ + void RequestComplete( TInt aError ); + +// from base class MPhCntContactFetchObserver + + /** + * From MPhCntContactFetchObserver + * Indication that contact is fetched. + * + * @since S60 v3.2 + * @param aError Error code + */ + void ContactReceived( CPhCntContact* aContact, TInt aError ); + +private: + + CPhCntContactDataSelectionImpl( + MPhCntAiwService* aService, + MPhCntServiceRequestParamFactory* aParamFactory, + MPhCntContactStores* aContactStores ); + + void ConstructL(); + +private: // data + + /** + * Service interface for accessing phonebook services. + * Own. + */ + MPhCntAiwService* iService; + + /** + * Factory to create service request parameters. + * Own. + */ + MPhCntServiceRequestParamFactory* iParamFactory; + + /** + * Parameters used with service. + * Own. + */ + MPhCntServiceRequestParam* iServiceParameter; + + /** + * Result from service. + * Own. + */ + TPhCntContactLinkResult iServiceResult; + + /** + * Field link from service. + * Own. + */ + HBufC8* iFieldLink; + + + /** + * Observer for the request. + * Not own. + */ + MPhCntSelectionObserver* iObserver; + + /** + * Store to fetch contact. + * Own. + */ + MPhCntContactStores* iContactStores; + + }; + +#endif // CPHCNTCONTACTDATASELECTIONIMPL_H