utilityapps/creator/engine/inc/creator_phonebookwrapper.h
author hgs
Mon, 18 Oct 2010 16:30:05 +0300
changeset 55 2d9cac8919d3
parent 51 creator/engine/inc/creator_phonebookwrapper.h@b048e15729d6
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __CREATORPHONEBOOKWRAPPER_H__
hgs
parents:
diff changeset
    21
#define __CREATORPHONEBOOKWRAPPER_H__
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "creator_phonebookbase.h"
hgs
parents:
diff changeset
    24
#include "creator_randomdatafield.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include <map>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include "creator_phonebookapi.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
class CCreatorEngine;
hgs
parents:
diff changeset
    31
class CCreatorModuleBaseParameters;
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
class CContactDatabase;	
hgs
parents:
diff changeset
    34
//class CPhonebookWrapperParameters;	
hgs
parents:
diff changeset
    35
class CPhonebookParameters;
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
typedef typename std::map<const TInt, HBufC*> TCreatorContactFields;
hgs
parents:
diff changeset
    38
typedef typename std::pair<const TInt, HBufC*> TCreatorContactField;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
class CCreatorPhonebookWrapper : public CBase 
hgs
parents:
diff changeset
    41
    {
hgs
parents:
diff changeset
    42
public:
hgs
parents:
diff changeset
    43
	enum ContactDetailType{
hgs
parents:
diff changeset
    44
	ELastName,					//0
hgs
parents:
diff changeset
    45
	ELastNameReading,			//1
hgs
parents:
diff changeset
    46
	EFirstName,
hgs
parents:
diff changeset
    47
	EFirstNameReading,
hgs
parents:
diff changeset
    48
	EPrefix,
hgs
parents:
diff changeset
    49
	ESuffix,					//5
hgs
parents:
diff changeset
    50
	ESecondName,
hgs
parents:
diff changeset
    51
	ELandPhoneHome,
hgs
parents:
diff changeset
    52
	EMobilePhoneHome,
hgs
parents:
diff changeset
    53
	EVideoNumberHome,
hgs
parents:
diff changeset
    54
	EFaxNumberHome,				//10
hgs
parents:
diff changeset
    55
	EVoipHome,
hgs
parents:
diff changeset
    56
	EEmailHome,
hgs
parents:
diff changeset
    57
	EUrlHome,
hgs
parents:
diff changeset
    58
	EAddrLabelHome,
hgs
parents:
diff changeset
    59
	EAddrPoHome,				//15
hgs
parents:
diff changeset
    60
	EAddrExtHome,
hgs
parents:
diff changeset
    61
	EAddrStreetHome,
hgs
parents:
diff changeset
    62
	EAddrLocalHome,
hgs
parents:
diff changeset
    63
	EAddrRegionHome,
hgs
parents:
diff changeset
    64
	EAddrPostCodeHome,			//20
hgs
parents:
diff changeset
    65
	EAddrCountryHome,
hgs
parents:
diff changeset
    66
	EJobTitle,
hgs
parents:
diff changeset
    67
	ECompanyName,
hgs
parents:
diff changeset
    68
	ELandPhoneWork,
hgs
parents:
diff changeset
    69
	EMobilePhoneWork,			//25
hgs
parents:
diff changeset
    70
	EVideoNumberWork,
hgs
parents:
diff changeset
    71
	EFaxNumberWork,
hgs
parents:
diff changeset
    72
	EVoipWork,
hgs
parents:
diff changeset
    73
	EEmailWork,
hgs
parents:
diff changeset
    74
	EUrlWork,					//30
hgs
parents:
diff changeset
    75
	EAddrLabelWork,
hgs
parents:
diff changeset
    76
	EAddrPoWork,
hgs
parents:
diff changeset
    77
	EAddrExtWork,
hgs
parents:
diff changeset
    78
	EAddrStreetWork,
hgs
parents:
diff changeset
    79
	EAddrLocalWork,				//35
hgs
parents:
diff changeset
    80
	EAddrRegionWork,
hgs
parents:
diff changeset
    81
	EAddrPostCodeWork,
hgs
parents:
diff changeset
    82
	EAddrCountryWork,
hgs
parents:
diff changeset
    83
	ELandPhoneGen,
hgs
parents:
diff changeset
    84
	EMobilePhoneGen,			//40
hgs
parents:
diff changeset
    85
	EVideoNumberGen,
hgs
parents:
diff changeset
    86
	EFaxNumberGen,
hgs
parents:
diff changeset
    87
	EVoipGen,
hgs
parents:
diff changeset
    88
	EPoc,
hgs
parents:
diff changeset
    89
	ESwis,						//45
hgs
parents:
diff changeset
    90
	ESip,
hgs
parents:
diff changeset
    91
	EEmailGen,
hgs
parents:
diff changeset
    92
	EUrlGen,
hgs
parents:
diff changeset
    93
	EAddrLabelGen,
hgs
parents:
diff changeset
    94
	EAddrPoGen,					//50
hgs
parents:
diff changeset
    95
	EAddrExtGen,
hgs
parents:
diff changeset
    96
	EAddrStreetGen,
hgs
parents:
diff changeset
    97
	EAddrLocalGen,
hgs
parents:
diff changeset
    98
	EAddrRegionGen,
hgs
parents:
diff changeset
    99
	EAddrPostCodeGen,			//55
hgs
parents:
diff changeset
   100
	EAddrCountryGen,
hgs
parents:
diff changeset
   101
	EPagerNumber,
hgs
parents:
diff changeset
   102
	EDtmfString,
hgs
parents:
diff changeset
   103
	EWVAddress,
hgs
parents:
diff changeset
   104
	EDate,						//60
hgs
parents:
diff changeset
   105
	ENote,
hgs
parents:
diff changeset
   106
	EThumbnailPic,
hgs
parents:
diff changeset
   107
	ERingTone,
hgs
parents:
diff changeset
   108
	ECallerObjImg,
hgs
parents:
diff changeset
   109
	ECallerObjText,				//65
hgs
parents:
diff changeset
   110
	EMiddleName,
hgs
parents:
diff changeset
   111
	EDepartment,
hgs
parents:
diff changeset
   112
	EAsstName,
hgs
parents:
diff changeset
   113
	ESpouse,
hgs
parents:
diff changeset
   114
	EChildren,					//70
hgs
parents:
diff changeset
   115
	EAsstPhone,
hgs
parents:
diff changeset
   116
	ECarPhone,
hgs
parents:
diff changeset
   117
	EAnniversary,
hgs
parents:
diff changeset
   118
	ESyncClass,
hgs
parents:
diff changeset
   119
	ELocPrivacy,				//75
hgs
parents:
diff changeset
   120
	EGenLabel,
hgs
parents:
diff changeset
   121
	ETopContact,
hgs
parents:
diff changeset
   122
	EIMPP,
hgs
parents:
diff changeset
   123
	};
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
	
hgs
parents:
diff changeset
   126
public: 
hgs
parents:
diff changeset
   127
    static CCreatorPhonebookWrapper* NewL();
hgs
parents:
diff changeset
   128
    static CCreatorPhonebookWrapper* NewLC();
hgs
parents:
diff changeset
   129
    ~CCreatorPhonebookWrapper();
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
private:
hgs
parents:
diff changeset
   132
    CCreatorPhonebookWrapper();
hgs
parents:
diff changeset
   133
    void ConstructL();
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
public:  
hgs
parents:
diff changeset
   136
    TUint32 CreateContactEntryL(const TCreatorContactFields& Map);    
hgs
parents:
diff changeset
   137
    TUint32 CreateGroupEntryL( HBufC* aGroupName );
hgs
parents:
diff changeset
   138
    TInt CreateSubscribedContactEntryL(); 
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
    /**
hgs
parents:
diff changeset
   141
     * NumberOfContacts() will return all contacts from Contact API
hgs
parents:
diff changeset
   142
     */
hgs
parents:
diff changeset
   143
    TInt NumberOfContacts();
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    TInt AddContactToGroup( TUint32 aGroupId, TUint32 aContact );
hgs
parents:
diff changeset
   146
    TInt AddToGroup( TUint32 aGroupId, TInt aAmount );
hgs
parents:
diff changeset
   147
    
hgs
parents:
diff changeset
   148
    
hgs
parents:
diff changeset
   149
    void DeleteAllL();
hgs
parents:
diff changeset
   150
    void DeleteAllGroupsL();
hgs
parents:
diff changeset
   151
    void DeleteContactsL( RArray<TUint32>& aContactsToDelete, TUid aStoreUid );
hgs
parents:
diff changeset
   152
    
51
hgs
parents: 31
diff changeset
   153
    HBufC* GetPhoneNumberL( TUint32 aContactId );
hgs
parents: 31
diff changeset
   154
    TBool GetContactDetailsL( TUint32 aContactId, TDes& aName, TDes& aPhoneNumber, TDes& aEmail );
hgs
parents: 31
diff changeset
   155
    
31
hgs
parents:
diff changeset
   156
private:
hgs
parents:
diff changeset
   157
    QList<QContactDetail> CreateContactDetailsFromParameters( const TCreatorContactFields& Map );
hgs
parents:
diff changeset
   158
    QContactDetail CreateContactDetail( QList<QContactDetail>& aContactDetailList,QString aDetail, QString aFieldContext, QString aFieldString, QString aData );
hgs
parents:
diff changeset
   159
    void AddFieldToList( QList<QContactDetail>& aDetailList, QContactDetail aDetail);
hgs
parents:
diff changeset
   160
    
hgs
parents:
diff changeset
   161
    TBool IsContactGroupL( TUint32& aLink );
hgs
parents:
diff changeset
   162
    
hgs
parents:
diff changeset
   163
    void DeleteItemsCreatedWithCreatorL( TUid aStoreUid );
hgs
parents:
diff changeset
   164
    void DoDeleteItemsCreatedWithCreatorL( TUid aStoreUid, CDictionaryFileStore* aStore );
hgs
parents:
diff changeset
   165
    TBool HasOtherThanGroupsL();
hgs
parents:
diff changeset
   166
    
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
private:
hgs
parents:
diff changeset
   169
	
hgs
parents:
diff changeset
   170
    TInt iOpCounter;
hgs
parents:
diff changeset
   171
    
hgs
parents:
diff changeset
   172
    static QString iPhoneNumberFields[];
hgs
parents:
diff changeset
   173
    static TInt iUrlFields[];
hgs
parents:
diff changeset
   174
    static TInt iEmailFields[];
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    RArray<TUint32> iContactLinkArray;
hgs
parents:
diff changeset
   177
    RArray<TUint32>  iContactsToDelete;	
hgs
parents:
diff changeset
   178
    RArray<TUint32>  iContactGroupsToDelete;	
hgs
parents:
diff changeset
   179
    
hgs
parents:
diff changeset
   180
    RArray<TUint32> iPreviousDeleteLinks;
hgs
parents:
diff changeset
   181
    //RPointerArray<MVPbkContactLinkArray> iPreviousDeleteLinks;  //modify
hgs
parents:
diff changeset
   182
    
hgs
parents:
diff changeset
   183
private:
hgs
parents:
diff changeset
   184
	//new variables
hgs
parents:
diff changeset
   185
	/// Ref: the target of the copy
hgs
parents:
diff changeset
   186
	QContact* iStore;       
hgs
parents:
diff changeset
   187
    
hgs
parents:
diff changeset
   188
    /// Own: Contact database for this store
hgs
parents:
diff changeset
   189
    CContactDatabase* iContactDb;    
hgs
parents:
diff changeset
   190
    
hgs
parents:
diff changeset
   191
    //Contacts found in contacts db.
hgs
parents:
diff changeset
   192
    QList<QContactId>* iContactResults;
hgs
parents:
diff changeset
   193
    // Contact groups that are found in the store. These are used in filtering
hgs
parents:
diff changeset
   194
    // the groups from the find results.
hgs
parents:
diff changeset
   195
    QList<QContactId>* iContactGroupsInStore;
hgs
parents:
diff changeset
   196
    
hgs
parents:
diff changeset
   197
    CCreatorPhonebookAPI* iPhonebookAPI;
hgs
parents:
diff changeset
   198
    };
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
#endif // __CREATORPHONEBOOKWRAPPER_H__