creator/engine/src/creator_phonebookwrapper.cpp
author hgs
Fri, 03 Sep 2010 17:11:21 +0300
changeset 51 b048e15729d6
parent 31 e7a04a6385be
permissions -rw-r--r--
201035
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
#include "engine.h"
hgs
parents:
diff changeset
    20
#include "enginewrapper.h"
hgs
parents:
diff changeset
    21
#include "creator_contactsetcache.h"
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "creator_phonebookwrapper.h" 
hgs
parents:
diff changeset
    24
#include "creator_traces.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include <bautils.h> 
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
typedef struct {
hgs
parents:
diff changeset
    29
TInt iFieldCode;
hgs
parents:
diff changeset
    30
QString iDetail;
hgs
parents:
diff changeset
    31
QString iFieldContext;
hgs
parents:
diff changeset
    32
QString iFieldString;
hgs
parents:
diff changeset
    33
} QDetailFieldInfo;
hgs
parents:
diff changeset
    34
//static const TInt RND_TYPE_UNDEF = -99;
hgs
parents:
diff changeset
    35
QDetailFieldInfo CreatorPbkTextFields[] = {        
hgs
parents:
diff changeset
    36
        { (TInt)CCreatorPhonebookWrapper::EFirstName,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactName::FieldFirstName).operator QString()},
hgs
parents:
diff changeset
    37
        { (TInt)CCreatorPhonebookWrapper::ELastName,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactName::FieldLastName).operator QString()},
hgs
parents:
diff changeset
    38
        { (TInt)CCreatorPhonebookWrapper::ECompanyName,(QContactOrganization::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactOrganization::FieldName).operator QString()},
hgs
parents:
diff changeset
    39
        { (TInt)CCreatorPhonebookWrapper::EJobTitle,(QContactOrganization::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactOrganization::FieldTitle).operator QString()},
hgs
parents:
diff changeset
    40
        { (TInt)CCreatorPhonebookWrapper::EPrefix,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactName::FieldPrefix).operator QString()},
hgs
parents:
diff changeset
    41
        { (TInt)CCreatorPhonebookWrapper::ESuffix,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactName::FieldSuffix).operator QString()},
hgs
parents:
diff changeset
    42
        { (TInt)CCreatorPhonebookWrapper::EMiddleName,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactName::FieldMiddleName).operator QString()},
hgs
parents:
diff changeset
    43
        { (TInt)CCreatorPhonebookWrapper::EAddrStreetHome,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactAddress::FieldStreet).operator QString()},
hgs
parents:
diff changeset
    44
        { (TInt)CCreatorPhonebookWrapper::EAddrLocalHome,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactAddress::FieldLocality).operator QString()},
hgs
parents:
diff changeset
    45
        { (TInt)CCreatorPhonebookWrapper::EAddrRegionHome,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactAddress::FieldRegion).operator QString()},
hgs
parents:
diff changeset
    46
        { (TInt)CCreatorPhonebookWrapper::EAddrPostCodeHome,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactAddress::FieldPostcode).operator QString()},
hgs
parents:
diff changeset
    47
        { (TInt)CCreatorPhonebookWrapper::EAddrCountryHome,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactAddress::FieldCountry).operator QString()},
hgs
parents:
diff changeset
    48
        { (TInt)CCreatorPhonebookWrapper::EAddrStreetGen,(QContactAddress::DefinitionName).operator QString(), "", (QContactAddress::FieldStreet).operator QString()},
hgs
parents:
diff changeset
    49
        { (TInt)CCreatorPhonebookWrapper::EAddrLocalGen,(QContactAddress::DefinitionName).operator QString(), "", (QContactAddress::FieldLocality).operator QString()},
hgs
parents:
diff changeset
    50
        { (TInt)CCreatorPhonebookWrapper::EAddrRegionGen,(QContactAddress::DefinitionName).operator QString(), "", (QContactAddress::FieldRegion).operator QString()},
hgs
parents:
diff changeset
    51
        { (TInt)CCreatorPhonebookWrapper::EAddrPostCodeGen,(QContactAddress::DefinitionName).operator QString(), "", (QContactAddress::FieldPostcode).operator QString()},
hgs
parents:
diff changeset
    52
        { (TInt)CCreatorPhonebookWrapper::EAddrCountryGen,(QContactAddress::DefinitionName).operator QString(), "", (QContactAddress::FieldCountry).operator QString()},
hgs
parents:
diff changeset
    53
        { (TInt)CCreatorPhonebookWrapper::EAddrStreetWork,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactAddress::FieldStreet).operator QString()},
hgs
parents:
diff changeset
    54
        { (TInt)CCreatorPhonebookWrapper::EAddrLocalWork,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactAddress::FieldLocality).operator QString()},
hgs
parents:
diff changeset
    55
        { (TInt)CCreatorPhonebookWrapper::EAddrRegionWork,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactAddress::FieldRegion).operator QString()},
hgs
parents:
diff changeset
    56
        { (TInt)CCreatorPhonebookWrapper::EAddrPostCodeWork,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactAddress::FieldPostcode).operator QString()},
hgs
parents:
diff changeset
    57
        { (TInt)CCreatorPhonebookWrapper::EAddrCountryWork,(QContactAddress::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactAddress::FieldCountry).operator QString()},
hgs
parents:
diff changeset
    58
        { (TInt)CCreatorPhonebookWrapper::EMobilePhoneWork,(QContactPhoneNumber::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactPhoneNumber::SubTypeMobile).operator QString()},
hgs
parents:
diff changeset
    59
        { (TInt)CCreatorPhonebookWrapper::ELandPhoneWork,(QContactPhoneNumber::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactPhoneNumber::SubTypeLandline).operator QString()},
hgs
parents:
diff changeset
    60
        { (TInt)CCreatorPhonebookWrapper::ENote,(QContactNote::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactNote::FieldNote).operator QString()},
hgs
parents:
diff changeset
    61
        { (TInt)CCreatorPhonebookWrapper::EDepartment,(QContactOrganization::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactOrganization::FieldDepartment).operator QString()},
hgs
parents:
diff changeset
    62
        { (TInt)CCreatorPhonebookWrapper::EAsstName,(QContactOrganization::DefinitionName).operator QString(), (QContactDetail::ContextWork).operator QString(), (QContactOrganization::FieldAssistantName).operator QString()},
hgs
parents:
diff changeset
    63
        { (TInt)CCreatorPhonebookWrapper::ESpouse,(QContactFamily::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactFamily::FieldSpouse).operator QString()},
hgs
parents:
diff changeset
    64
        { (TInt)CCreatorPhonebookWrapper::EChildren,(QContactFamily::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(), (QContactFamily::FieldChildren).operator QString()},
hgs
parents:
diff changeset
    65
        { (TInt)CCreatorPhonebookWrapper::EGenLabel,(QContactName::DefinitionName).operator QString(), (QContactDetail::ContextHome).operator QString(),  (QContactName::FieldCustomLabel).operator QString()}
hgs
parents:
diff changeset
    66
        };
hgs
parents:
diff changeset
    67
                  
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
typedef struct{
hgs
parents:
diff changeset
    70
TInt iFieldCode;
hgs
parents:
diff changeset
    71
QString iFieldContext;
hgs
parents:
diff changeset
    72
QString iFieldString;
hgs
parents:
diff changeset
    73
}PhoneNumInfo;
hgs
parents:
diff changeset
    74
PhoneNumInfo CreatorPhoneNumberFields[] =
hgs
parents:
diff changeset
    75
    {
hgs
parents:
diff changeset
    76
    { CCreatorPhonebookWrapper::ELandPhoneGen,"", "Landline"},
hgs
parents:
diff changeset
    77
    { CCreatorPhonebookWrapper::ELandPhoneHome,"Home", "Landline"},
hgs
parents:
diff changeset
    78
    { CCreatorPhonebookWrapper::ELandPhoneWork,"Work", "Landline"},                        
hgs
parents:
diff changeset
    79
    { CCreatorPhonebookWrapper::EMobilePhoneGen,"","Mobile"},
hgs
parents:
diff changeset
    80
    { CCreatorPhonebookWrapper::EMobilePhoneHome,"Home","Mobile"},
hgs
parents:
diff changeset
    81
    { CCreatorPhonebookWrapper::EMobilePhoneWork,"Work", "Mobile"},
hgs
parents:
diff changeset
    82
    { CCreatorPhonebookWrapper::EFaxNumberGen, "", "Facsimile"},
hgs
parents:
diff changeset
    83
    { CCreatorPhonebookWrapper::EFaxNumberHome, "Home", "Facsimile"},
hgs
parents:
diff changeset
    84
    { CCreatorPhonebookWrapper::EFaxNumberWork, "Work", "Facsimile"},
hgs
parents:
diff changeset
    85
    { CCreatorPhonebookWrapper::EPagerNumber, "Work", "Pager"},
hgs
parents:
diff changeset
    86
    { CCreatorPhonebookWrapper::EVideoNumberGen, "", "Video"},
hgs
parents:
diff changeset
    87
    { CCreatorPhonebookWrapper::EVideoNumberHome, "Home", "Video"},
hgs
parents:
diff changeset
    88
    { CCreatorPhonebookWrapper::EVideoNumberWork, "Work", "Video"},   //{ "Home", "Voice" },//{ "Work", "Voice" },
hgs
parents:
diff changeset
    89
    { CCreatorPhonebookWrapper::EAsstPhone, "Work", "Assistant" },
hgs
parents:
diff changeset
    90
    { CCreatorPhonebookWrapper::ECarPhone, "Home",  "Car" }
hgs
parents:
diff changeset
    91
    };
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
typedef struct{
hgs
parents:
diff changeset
    95
	TInt iFieldCode;
hgs
parents:
diff changeset
    96
	QString iFieldContext;
hgs
parents:
diff changeset
    97
}EmailInfo;
hgs
parents:
diff changeset
    98
EmailInfo CreatorEmailFields[] =
hgs
parents:
diff changeset
    99
	{
hgs
parents:
diff changeset
   100
    {CCreatorPhonebookWrapper::EEmailGen,""},
hgs
parents:
diff changeset
   101
    {CCreatorPhonebookWrapper::EEmailHome,(QContactDetail::ContextHome).operator QString()},
hgs
parents:
diff changeset
   102
    {CCreatorPhonebookWrapper::EEmailWork,(QContactDetail::ContextWork).operator QString()}
hgs
parents:
diff changeset
   103
    };
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
typedef struct{
hgs
parents:
diff changeset
   106
	TInt iFieldCode;
hgs
parents:
diff changeset
   107
	QString iFieldContext;
hgs
parents:
diff changeset
   108
}UrlInfo;
hgs
parents:
diff changeset
   109
UrlInfo CreatorUrlFields[] =
hgs
parents:
diff changeset
   110
    {
hgs
parents:
diff changeset
   111
    {CCreatorPhonebookWrapper::EUrlGen,""},
hgs
parents:
diff changeset
   112
    {CCreatorPhonebookWrapper::EUrlHome,(QContactDetail::ContextHome).operator QString()},
hgs
parents:
diff changeset
   113
    {CCreatorPhonebookWrapper::EUrlWork,(QContactDetail::ContextWork).operator QString()}
hgs
parents:
diff changeset
   114
    };
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
CCreatorPhonebookWrapper* CCreatorPhonebookWrapper::NewL()
hgs
parents:
diff changeset
   117
    {
hgs
parents:
diff changeset
   118
    CCreatorPhonebookWrapper* self = CCreatorPhonebookWrapper::NewLC();
hgs
parents:
diff changeset
   119
    CleanupStack::Pop(self);
hgs
parents:
diff changeset
   120
    return self;
hgs
parents:
diff changeset
   121
    }
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
CCreatorPhonebookWrapper* CCreatorPhonebookWrapper::NewLC()
hgs
parents:
diff changeset
   124
    {
hgs
parents:
diff changeset
   125
    CCreatorPhonebookWrapper* self = new (ELeave) CCreatorPhonebookWrapper();
hgs
parents:
diff changeset
   126
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
   127
    self->ConstructL();
hgs
parents:
diff changeset
   128
    return self;
hgs
parents:
diff changeset
   129
    }
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
CCreatorPhonebookWrapper::CCreatorPhonebookWrapper() 
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
    }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
void CCreatorPhonebookWrapper::ConstructL()
hgs
parents:
diff changeset
   137
    {
hgs
parents:
diff changeset
   138
    LOGSTRING("Creator: CCreatorPhonebookWrapper::ConstructL");
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
    QT_TRYCATCH_LEAVING( iPhonebookAPI = new CCreatorPhonebookAPI() );
hgs
parents:
diff changeset
   141
	
hgs
parents:
diff changeset
   142
	}
hgs
parents:
diff changeset
   143
	
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
CCreatorPhonebookWrapper::~CCreatorPhonebookWrapper()
hgs
parents:
diff changeset
   146
    {
hgs
parents:
diff changeset
   147
    LOGSTRING("Creator: CCreatorPhonebookWrapper::~CCreatorPhonebookWrapper");
hgs
parents:
diff changeset
   148
	if( iPhonebookAPI )
hgs
parents:
diff changeset
   149
        {
hgs
parents:
diff changeset
   150
        delete iPhonebookAPI;
hgs
parents:
diff changeset
   151
        iPhonebookAPI = NULL;
hgs
parents:
diff changeset
   152
        }
hgs
parents:
diff changeset
   153
    }
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
QList<QContactDetail> CCreatorPhonebookWrapper::CreateContactDetailsFromParameters( const TCreatorContactFields& aFields )
hgs
parents:
diff changeset
   158
	{
hgs
parents:
diff changeset
   159
	QList<QContactDetail> contDetList;
hgs
parents:
diff changeset
   160
	QString content;
hgs
parents:
diff changeset
   161
	HBufC* temp;
hgs
parents:
diff changeset
   162
	TInt arraySize = sizeof(CreatorPbkTextFields)/sizeof(QDetailFieldInfo);
hgs
parents:
diff changeset
   163
	for (TInt i = 0; i < arraySize; i++)
hgs
parents:
diff changeset
   164
		{
hgs
parents:
diff changeset
   165
	    TCreatorContactFields::const_iterator it = aFields.find(CreatorPbkTextFields[i].iFieldCode);
hgs
parents:
diff changeset
   166
		if( it != aFields.end() )
hgs
parents:
diff changeset
   167
			{
hgs
parents:
diff changeset
   168
		    temp = (*it).second;
hgs
parents:
diff changeset
   169
			content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   170
			QContactDetail contactDetail =  CreateContactDetail(contDetList, CreatorPbkTextFields[i].iDetail,CreatorPbkTextFields[i].iFieldContext,CreatorPbkTextFields[i].iFieldString, content );
hgs
parents:
diff changeset
   171
			AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   172
			}
hgs
parents:
diff changeset
   173
		}
hgs
parents:
diff changeset
   174
	arraySize = sizeof(CreatorPhoneNumberFields)/sizeof(PhoneNumInfo);
hgs
parents:
diff changeset
   175
		for (TInt i = 0; i < arraySize; i++)
hgs
parents:
diff changeset
   176
			{
hgs
parents:
diff changeset
   177
			TCreatorContactFields::const_iterator it = aFields.find(CreatorPhoneNumberFields[i].iFieldCode);
hgs
parents:
diff changeset
   178
			if( it != aFields.end() )
hgs
parents:
diff changeset
   179
				{
hgs
parents:
diff changeset
   180
			    temp = (*it).second;
hgs
parents:
diff changeset
   181
				content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   182
				QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactPhoneNumber::DefinitionName ,CreatorPhoneNumberFields[i].iFieldContext,CreatorPhoneNumberFields[i].iFieldString, content );
hgs
parents:
diff changeset
   183
				AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   184
				}
hgs
parents:
diff changeset
   185
			}
hgs
parents:
diff changeset
   186
		
hgs
parents:
diff changeset
   187
	arraySize = sizeof(CreatorEmailFields)/sizeof(EmailInfo);
hgs
parents:
diff changeset
   188
		for (TInt i = 0; i < arraySize; i++)
hgs
parents:
diff changeset
   189
			{
hgs
parents:
diff changeset
   190
			TCreatorContactFields::const_iterator it = aFields.find(CreatorEmailFields[i].iFieldCode);
hgs
parents:
diff changeset
   191
			if( it != aFields.end() )
hgs
parents:
diff changeset
   192
				{
hgs
parents:
diff changeset
   193
			    temp = (*it).second;
hgs
parents:
diff changeset
   194
				content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   195
				QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactEmailAddress::DefinitionName ,CreatorEmailFields[i].iFieldContext,"", content );
hgs
parents:
diff changeset
   196
				AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   197
				}
hgs
parents:
diff changeset
   198
			}
hgs
parents:
diff changeset
   199
		
hgs
parents:
diff changeset
   200
	arraySize = sizeof(CreatorUrlFields)/sizeof(UrlInfo);
hgs
parents:
diff changeset
   201
			for (TInt i = 0; i < arraySize; i++)
hgs
parents:
diff changeset
   202
				{
hgs
parents:
diff changeset
   203
				TCreatorContactFields::const_iterator it = aFields.find(CreatorUrlFields[i].iFieldCode);
hgs
parents:
diff changeset
   204
				if( it != aFields.end() )
hgs
parents:
diff changeset
   205
					{
hgs
parents:
diff changeset
   206
				    temp = (*it).second;
hgs
parents:
diff changeset
   207
					content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   208
					QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactUrl::DefinitionName ,CreatorUrlFields[i].iFieldContext,"", content );
hgs
parents:
diff changeset
   209
					AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   210
					}
hgs
parents:
diff changeset
   211
				}	
hgs
parents:
diff changeset
   212
	arraySize = sizeof(CreatorUrlFields)/sizeof(UrlInfo);
hgs
parents:
diff changeset
   213
			for (TInt i = 0; i < arraySize; i++)
hgs
parents:
diff changeset
   214
				{
hgs
parents:
diff changeset
   215
				TCreatorContactFields::const_iterator it = aFields.find(CreatorUrlFields[i].iFieldCode);
hgs
parents:
diff changeset
   216
				if( it != aFields.end() )
hgs
parents:
diff changeset
   217
					{
hgs
parents:
diff changeset
   218
					temp = (*it).second;
hgs
parents:
diff changeset
   219
					content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   220
					QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactUrl::DefinitionName ,CreatorUrlFields[i].iFieldContext,"", content );
hgs
parents:
diff changeset
   221
					AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   222
					}
hgs
parents:
diff changeset
   223
				}
hgs
parents:
diff changeset
   224
			
hgs
parents:
diff changeset
   225
			TCreatorContactFields::const_iterator it = aFields.find(CCreatorPhonebookWrapper::EThumbnailPic);
hgs
parents:
diff changeset
   226
			if( it != aFields.end() )
hgs
parents:
diff changeset
   227
				{
hgs
parents:
diff changeset
   228
				temp = (*it).second;
hgs
parents:
diff changeset
   229
				if(temp)
hgs
parents:
diff changeset
   230
					{
hgs
parents:
diff changeset
   231
					content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   232
					QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactAvatar::DefinitionName ,"","", content );
hgs
parents:
diff changeset
   233
					AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   234
					}
hgs
parents:
diff changeset
   235
				}
hgs
parents:
diff changeset
   236
			it = aFields.find(CCreatorPhonebookWrapper::EAnniversary);
hgs
parents:
diff changeset
   237
				if( it != aFields.end() )
hgs
parents:
diff changeset
   238
					{
hgs
parents:
diff changeset
   239
					temp = (*it).second;
hgs
parents:
diff changeset
   240
					if(temp)
hgs
parents:
diff changeset
   241
						{
hgs
parents:
diff changeset
   242
						content = QString::fromUtf16( temp->Des().Ptr(), temp->Length() );
hgs
parents:
diff changeset
   243
						QContactDetail contactDetail =  CreateContactDetail(contDetList, QContactAnniversary::DefinitionName ,"","", content );
hgs
parents:
diff changeset
   244
						AddFieldToList( contDetList, contactDetail );
hgs
parents:
diff changeset
   245
						}
hgs
parents:
diff changeset
   246
					}
hgs
parents:
diff changeset
   247
		
hgs
parents:
diff changeset
   248
	return contDetList;
hgs
parents:
diff changeset
   249
	}
hgs
parents:
diff changeset
   250
QContactDetail CCreatorPhonebookWrapper::CreateContactDetail( QList<QContactDetail>& aContactDetailList,QString aDetail, QString aFieldContext, QString aFieldString, QString aData )
hgs
parents:
diff changeset
   251
    {
hgs
parents:
diff changeset
   252
    QContactDetail contactDetail;
hgs
parents:
diff changeset
   253
        
hgs
parents:
diff changeset
   254
        if( aDetail == QContactPhoneNumber::DefinitionName)
hgs
parents:
diff changeset
   255
            {
hgs
parents:
diff changeset
   256
            QContactPhoneNumber phoneNumber;// = contactDetail;
hgs
parents:
diff changeset
   257
            if(!aFieldContext.isEmpty())
hgs
parents:
diff changeset
   258
            	{
hgs
parents:
diff changeset
   259
				phoneNumber.setContexts(aFieldContext);
hgs
parents:
diff changeset
   260
            	}
hgs
parents:
diff changeset
   261
            phoneNumber.setSubTypes(aFieldString);
hgs
parents:
diff changeset
   262
            //QString number = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   263
            phoneNumber.setNumber(aData);
hgs
parents:
diff changeset
   264
            return phoneNumber;
hgs
parents:
diff changeset
   265
            }
hgs
parents:
diff changeset
   266
        else if( aDetail == QContactName::DefinitionName )          //--Contact NAME-----------------------------
hgs
parents:
diff changeset
   267
            {
hgs
parents:
diff changeset
   268
            QContactName contactName;
hgs
parents:
diff changeset
   269
            for(int i = 0 ; i < aContactDetailList.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details
hgs
parents:
diff changeset
   270
                {
hgs
parents:
diff changeset
   271
                if(aContactDetailList.at(i).definitionName() == QContactName::DefinitionName )
hgs
parents:
diff changeset
   272
                    {
hgs
parents:
diff changeset
   273
                    contactName = aContactDetailList.at(i);
hgs
parents:
diff changeset
   274
                    }
hgs
parents:
diff changeset
   275
                }
hgs
parents:
diff changeset
   276
            //QString name = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   277
            if(aFieldString == QContactName::FieldFirstName)
hgs
parents:
diff changeset
   278
                {
hgs
parents:
diff changeset
   279
                if(contactName.firstName().isEmpty())
hgs
parents:
diff changeset
   280
                    {
hgs
parents:
diff changeset
   281
                    contactName.setFirstName( aData );
hgs
parents:
diff changeset
   282
                    }
hgs
parents:
diff changeset
   283
                }
hgs
parents:
diff changeset
   284
            else if(aFieldString == QContactName::FieldLastName)
hgs
parents:
diff changeset
   285
                {
hgs
parents:
diff changeset
   286
                if(contactName.lastName().isEmpty())
hgs
parents:
diff changeset
   287
                    {
hgs
parents:
diff changeset
   288
                    contactName.setLastName( aData );
hgs
parents:
diff changeset
   289
                    }
hgs
parents:
diff changeset
   290
                }
hgs
parents:
diff changeset
   291
            else if(aFieldString == QContactName::FieldMiddleName)
hgs
parents:
diff changeset
   292
                {
hgs
parents:
diff changeset
   293
                if(contactName.middleName().isEmpty())
hgs
parents:
diff changeset
   294
                    {
hgs
parents:
diff changeset
   295
                    contactName.setMiddleName( aData );
hgs
parents:
diff changeset
   296
                    }
hgs
parents:
diff changeset
   297
                }
hgs
parents:
diff changeset
   298
            else if(aFieldString == QContactName::FieldPrefix)
hgs
parents:
diff changeset
   299
                {
hgs
parents:
diff changeset
   300
                if(contactName.prefix().isEmpty())
hgs
parents:
diff changeset
   301
                    {
hgs
parents:
diff changeset
   302
                    contactName.setPrefix( aData );
hgs
parents:
diff changeset
   303
                    }
hgs
parents:
diff changeset
   304
                }
hgs
parents:
diff changeset
   305
            else if(aFieldString == QContactName::FieldSuffix)
hgs
parents:
diff changeset
   306
                {
hgs
parents:
diff changeset
   307
                if(contactName.suffix().isEmpty())
hgs
parents:
diff changeset
   308
                    {
hgs
parents:
diff changeset
   309
                    contactName.setSuffix( aData );
hgs
parents:
diff changeset
   310
                    }
hgs
parents:
diff changeset
   311
                }
hgs
parents:
diff changeset
   312
            else        //QContactName::FieldCustomLabel:
hgs
parents:
diff changeset
   313
                {
hgs
parents:
diff changeset
   314
                if(contactName.customLabel().isEmpty())
hgs
parents:
diff changeset
   315
                    {
hgs
parents:
diff changeset
   316
                    contactName.setCustomLabel( aData );
hgs
parents:
diff changeset
   317
                    }
hgs
parents:
diff changeset
   318
                }
hgs
parents:
diff changeset
   319
            return contactName;
hgs
parents:
diff changeset
   320
            }
hgs
parents:
diff changeset
   321
        else if( aDetail == QContactOrganization::DefinitionName )          //--Contact Company-----------------------------
hgs
parents:
diff changeset
   322
            {
hgs
parents:
diff changeset
   323
            QContactOrganization contactCompany;
hgs
parents:
diff changeset
   324
            
hgs
parents:
diff changeset
   325
            for(int i = 0 ; i < aContactDetailList.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details
hgs
parents:
diff changeset
   326
                {
hgs
parents:
diff changeset
   327
                if(aContactDetailList.at(i).definitionName() == QContactOrganization::DefinitionName )
hgs
parents:
diff changeset
   328
                    {
hgs
parents:
diff changeset
   329
                    contactCompany = aContactDetailList.at(i);
hgs
parents:
diff changeset
   330
                    }
hgs
parents:
diff changeset
   331
                }
hgs
parents:
diff changeset
   332
            
hgs
parents:
diff changeset
   333
            //QString company = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   334
            if(aFieldString == QContactOrganization::FieldName)
hgs
parents:
diff changeset
   335
                {
hgs
parents:
diff changeset
   336
                if(contactCompany.name().isEmpty())
hgs
parents:
diff changeset
   337
                    {
hgs
parents:
diff changeset
   338
                    contactCompany.setName( aData );
hgs
parents:
diff changeset
   339
                    }
hgs
parents:
diff changeset
   340
                }
hgs
parents:
diff changeset
   341
            if(aFieldString == QContactOrganization::FieldTitle)
hgs
parents:
diff changeset
   342
                {
hgs
parents:
diff changeset
   343
                if(contactCompany.title().isEmpty())
hgs
parents:
diff changeset
   344
                    {
hgs
parents:
diff changeset
   345
                    contactCompany.setTitle( aData );
hgs
parents:
diff changeset
   346
                    }
hgs
parents:
diff changeset
   347
                }
hgs
parents:
diff changeset
   348
            if(aFieldString == QContactOrganization::FieldDepartment)
hgs
parents:
diff changeset
   349
                {
hgs
parents:
diff changeset
   350
                QStringList depList = contactCompany.department();
hgs
parents:
diff changeset
   351
                depList.append(aData);
hgs
parents:
diff changeset
   352
                contactCompany.setDepartment(depList);
hgs
parents:
diff changeset
   353
                }
hgs
parents:
diff changeset
   354
            if(aFieldString == QContactOrganization::FieldAssistantName)
hgs
parents:
diff changeset
   355
                {
hgs
parents:
diff changeset
   356
                if(contactCompany.assistantName().isEmpty())
hgs
parents:
diff changeset
   357
                    {
hgs
parents:
diff changeset
   358
                    contactCompany.setAssistantName( aData );
hgs
parents:
diff changeset
   359
                    }
hgs
parents:
diff changeset
   360
                }
hgs
parents:
diff changeset
   361
            return contactCompany;
hgs
parents:
diff changeset
   362
            }
hgs
parents:
diff changeset
   363
        else if( aDetail == QContactAddress::DefinitionName )           //--Contact Address-----------------------------
hgs
parents:
diff changeset
   364
                {
hgs
parents:
diff changeset
   365
                QContactAddress contactAddress;
hgs
parents:
diff changeset
   366
                
hgs
parents:
diff changeset
   367
                for(int i = 0 ; i < aContactDetailList.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details
hgs
parents:
diff changeset
   368
                    {
hgs
parents:
diff changeset
   369
                    if(aContactDetailList.at(i).definitionName() == QContactAddress::DefinitionName && aContactDetailList.at(i).value(QContactDetail::FieldContext) == aFieldContext )
hgs
parents:
diff changeset
   370
                        {
hgs
parents:
diff changeset
   371
                        contactAddress = aContactDetailList.at(i);
hgs
parents:
diff changeset
   372
                        }
hgs
parents:
diff changeset
   373
                    }
hgs
parents:
diff changeset
   374
                if( !aFieldContext.isEmpty() )
hgs
parents:
diff changeset
   375
                    {
hgs
parents:
diff changeset
   376
					contactAddress.setContexts( aFieldContext );
hgs
parents:
diff changeset
   377
                    }
hgs
parents:
diff changeset
   378
                //QString address = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   379
                if(aFieldString == QContactAddress::FieldStreet )
hgs
parents:
diff changeset
   380
                    {
hgs
parents:
diff changeset
   381
                    if( contactAddress.street().isEmpty() )
hgs
parents:
diff changeset
   382
                        {
hgs
parents:
diff changeset
   383
                        contactAddress.setStreet( aData );
hgs
parents:
diff changeset
   384
                        }
hgs
parents:
diff changeset
   385
                    }
hgs
parents:
diff changeset
   386
                else if(aFieldString == QContactAddress::FieldLocality )
hgs
parents:
diff changeset
   387
                    {
hgs
parents:
diff changeset
   388
                    if( contactAddress.locality().isEmpty() )
hgs
parents:
diff changeset
   389
                        {
hgs
parents:
diff changeset
   390
                        contactAddress.setLocality( aData );
hgs
parents:
diff changeset
   391
                        }
hgs
parents:
diff changeset
   392
                    }
hgs
parents:
diff changeset
   393
                else if(aFieldString == QContactAddress::FieldRegion )
hgs
parents:
diff changeset
   394
                    {
hgs
parents:
diff changeset
   395
                    if( contactAddress.region().isEmpty() )
hgs
parents:
diff changeset
   396
                        {
hgs
parents:
diff changeset
   397
                        contactAddress.setRegion( aData );
hgs
parents:
diff changeset
   398
                        }
hgs
parents:
diff changeset
   399
                    }
hgs
parents:
diff changeset
   400
                else if(aFieldString == QContactAddress::FieldPostcode )
hgs
parents:
diff changeset
   401
                    {
hgs
parents:
diff changeset
   402
                    if( contactAddress.postcode().isEmpty() )
hgs
parents:
diff changeset
   403
                        {
hgs
parents:
diff changeset
   404
                        contactAddress.setPostcode( aData );
hgs
parents:
diff changeset
   405
                        }
hgs
parents:
diff changeset
   406
                    }
hgs
parents:
diff changeset
   407
                else if(aFieldString == QContactAddress::FieldCountry )
hgs
parents:
diff changeset
   408
                    {
hgs
parents:
diff changeset
   409
                    if( contactAddress.country().isEmpty() )
hgs
parents:
diff changeset
   410
                        {
hgs
parents:
diff changeset
   411
                        contactAddress.setCountry( aData );
hgs
parents:
diff changeset
   412
                        }
hgs
parents:
diff changeset
   413
                    }
hgs
parents:
diff changeset
   414
                else 
hgs
parents:
diff changeset
   415
                    {
hgs
parents:
diff changeset
   416
                    return contactDetail;
hgs
parents:
diff changeset
   417
                    }
hgs
parents:
diff changeset
   418
                return contactAddress;
hgs
parents:
diff changeset
   419
                }
hgs
parents:
diff changeset
   420
        else if( aDetail == QContactNote::DefinitionName )          //--Contact Note-----------------------------
hgs
parents:
diff changeset
   421
                    {
hgs
parents:
diff changeset
   422
                    QContactNote contactNote;
hgs
parents:
diff changeset
   423
                    //QString note = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   424
                    contactNote.setNote(aData);
hgs
parents:
diff changeset
   425
                    return contactNote;
hgs
parents:
diff changeset
   426
                    }
hgs
parents:
diff changeset
   427
        else if( aDetail == QContactFamily::DefinitionName )            //--Contact Family-----------------------------
hgs
parents:
diff changeset
   428
                    {
hgs
parents:
diff changeset
   429
                    QContactFamily contactFamily;
hgs
parents:
diff changeset
   430
                    
hgs
parents:
diff changeset
   431
                    for(int i = 0 ; i < aContactDetailList.count() ; i++ ) //go through all contact details to check if there is already Contact Name to set other details
hgs
parents:
diff changeset
   432
                        {
hgs
parents:
diff changeset
   433
                        if(aContactDetailList.at(i).definitionName() == QContactFamily::DefinitionName && aContactDetailList.at(i).value(QContactDetail::FieldContext) == aFieldContext )
hgs
parents:
diff changeset
   434
                            {
hgs
parents:
diff changeset
   435
                            contactFamily = aContactDetailList.at(i);
hgs
parents:
diff changeset
   436
                            }
hgs
parents:
diff changeset
   437
                        }
hgs
parents:
diff changeset
   438
                   
hgs
parents:
diff changeset
   439
                    //QString familyData = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   440
                    if(aFieldString == QContactFamily::FieldSpouse )
hgs
parents:
diff changeset
   441
                        {
hgs
parents:
diff changeset
   442
                        if( contactFamily.spouse().isEmpty() )
hgs
parents:
diff changeset
   443
                            {
hgs
parents:
diff changeset
   444
                            contactFamily.setSpouse( aData );
hgs
parents:
diff changeset
   445
                            }
hgs
parents:
diff changeset
   446
                        }
hgs
parents:
diff changeset
   447
                    if(aFieldString == QContactFamily::FieldChildren )
hgs
parents:
diff changeset
   448
                        {
hgs
parents:
diff changeset
   449
                            QStringList children = contactFamily.children();
hgs
parents:
diff changeset
   450
                            children.append( aData );
hgs
parents:
diff changeset
   451
                            contactFamily.setChildren( children );
hgs
parents:
diff changeset
   452
                        }
hgs
parents:
diff changeset
   453
                    
hgs
parents:
diff changeset
   454
                    return contactFamily;
hgs
parents:
diff changeset
   455
                    }
hgs
parents:
diff changeset
   456
        
hgs
parents:
diff changeset
   457
        if( aDetail == QContactAvatar::DefinitionName)                      //--Contact Picture-----------------------------
hgs
parents:
diff changeset
   458
                {
hgs
parents:
diff changeset
   459
                QContactAvatar contactAvatar;
hgs
parents:
diff changeset
   460
                QUrl imageUrl;
hgs
parents:
diff changeset
   461
                imageUrl.setUrl(aData);
hgs
parents:
diff changeset
   462
                contactAvatar.setImageUrl(imageUrl);
hgs
parents:
diff changeset
   463
hgs
parents:
diff changeset
   464
                return contactAvatar;
hgs
parents:
diff changeset
   465
                }
hgs
parents:
diff changeset
   466
        if( aDetail == QContactAnniversary::DefinitionName) //--Anniversary------------------------------
hgs
parents:
diff changeset
   467
                {
hgs
parents:
diff changeset
   468
                QContactAnniversary contactAnniversary;
hgs
parents:
diff changeset
   469
                aData.replace(QChar('/'), QChar('-'));
hgs
parents:
diff changeset
   470
       		    QDate date = QDate::fromString(aData, "dd-MM-yyyy");
hgs
parents:
diff changeset
   471
                //TTime datetime = aEngine->RandomDate( CCreatorEngine::EDateFuture );
hgs
parents:
diff changeset
   472
                //date.setDate( datetime.DateTime().Year(),(int) (datetime.DateTime().Month()+1), datetime.DateTime().Day() );
hgs
parents:
diff changeset
   473
                contactAnniversary.setOriginalDate( date );
hgs
parents:
diff changeset
   474
                return contactAnniversary;
hgs
parents:
diff changeset
   475
                }
hgs
parents:
diff changeset
   476
        if( aDetail == QContactEmailAddress::DefinitionName) //--Email------------------------------------
hgs
parents:
diff changeset
   477
            {
hgs
parents:
diff changeset
   478
            QContactEmailAddress email;
hgs
parents:
diff changeset
   479
            //QString emailAddr = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   480
            if( !aFieldContext.isEmpty() )
hgs
parents:
diff changeset
   481
            	{
hgs
parents:
diff changeset
   482
				email.setContexts( aFieldContext );
hgs
parents:
diff changeset
   483
            	}
hgs
parents:
diff changeset
   484
            email.setEmailAddress( aData );
hgs
parents:
diff changeset
   485
            return email;
hgs
parents:
diff changeset
   486
            }
hgs
parents:
diff changeset
   487
        if( aDetail == QContactUrl::DefinitionName )    //--Url-------------------------------------------
hgs
parents:
diff changeset
   488
            {
hgs
parents:
diff changeset
   489
            QContactUrl url;
hgs
parents:
diff changeset
   490
            //QString urlStr = QString::fromUtf16(aData.Ptr(),aData.Length());
hgs
parents:
diff changeset
   491
            if( !aFieldContext.isEmpty() )
hgs
parents:
diff changeset
   492
                {
hgs
parents:
diff changeset
   493
				url.setContexts( aFieldContext );
hgs
parents:
diff changeset
   494
                }
hgs
parents:
diff changeset
   495
            url.setUrl(aData);
hgs
parents:
diff changeset
   496
            return url;
hgs
parents:
diff changeset
   497
            }
hgs
parents:
diff changeset
   498
        if( aDetail == QContactBirthday::DefinitionName )   //--Birthday-----------------------------------
hgs
parents:
diff changeset
   499
            {
hgs
parents:
diff changeset
   500
            QContactBirthday birthday;
hgs
parents:
diff changeset
   501
            QDate date = QDate::fromString(aData);
hgs
parents:
diff changeset
   502
            //TTime datetime = aEngine->RandomDate( CCreatorEngine::EDatePast );
hgs
parents:
diff changeset
   503
            //date.setDate( datetime.DateTime().Year(),(int) (datetime.DateTime().Month()+1), datetime.DateTime().Day() );
hgs
parents:
diff changeset
   504
            birthday.setDate( date );
hgs
parents:
diff changeset
   505
            return birthday;
hgs
parents:
diff changeset
   506
            }
hgs
parents:
diff changeset
   507
                
hgs
parents:
diff changeset
   508
        return contactDetail;
hgs
parents:
diff changeset
   509
    }
hgs
parents:
diff changeset
   510
hgs
parents:
diff changeset
   511
void CCreatorPhonebookWrapper::AddFieldToList( QList<QContactDetail>& aDetailList, QContactDetail aDetail)
hgs
parents:
diff changeset
   512
    {
hgs
parents:
diff changeset
   513
     bool replace = false;
hgs
parents:
diff changeset
   514
     for(int i = 0 ; i< aDetailList.count() ; i++) //go through
hgs
parents:
diff changeset
   515
          {
hgs
parents:
diff changeset
   516
           if( !aDetail.isEmpty() && aDetail.definitionName() == aDetailList.at(i).definitionName() 
hgs
parents:
diff changeset
   517
        		   && aDetail.definitionName() != QContactPhoneNumber::DefinitionName 
hgs
parents:
diff changeset
   518
        		   && aDetail.definitionName() != QContactEmailAddress::DefinitionName
hgs
parents:
diff changeset
   519
        		   && aDetail.definitionName() != QContactUrl::DefinitionName )
hgs
parents:
diff changeset
   520
               {
hgs
parents:
diff changeset
   521
               QString context = aDetail.value(QContactDetail::FieldContext);
hgs
parents:
diff changeset
   522
               bool isContextEmpty = context.isEmpty();
hgs
parents:
diff changeset
   523
               if( isContextEmpty ||  ( aDetail.value(QContactDetail::FieldContext) == aDetailList.at(i).value(QContactDetail::FieldContext)) )
hgs
parents:
diff changeset
   524
                   {
hgs
parents:
diff changeset
   525
                   //replace
hgs
parents:
diff changeset
   526
                   aDetailList.replace(i,aDetail);
hgs
parents:
diff changeset
   527
                   replace = true;
hgs
parents:
diff changeset
   528
                   }
hgs
parents:
diff changeset
   529
               }
hgs
parents:
diff changeset
   530
          }
hgs
parents:
diff changeset
   531
          if(!replace)
hgs
parents:
diff changeset
   532
             {
hgs
parents:
diff changeset
   533
             if(!aDetail.isEmpty())
hgs
parents:
diff changeset
   534
                {
hgs
parents:
diff changeset
   535
                aDetailList.append(aDetail);
hgs
parents:
diff changeset
   536
                }
hgs
parents:
diff changeset
   537
             }
hgs
parents:
diff changeset
   538
      
hgs
parents:
diff changeset
   539
    }
hgs
parents:
diff changeset
   540
hgs
parents:
diff changeset
   541
TUint32 CCreatorPhonebookWrapper::CreateContactEntryL(const TCreatorContactFields& aFields)
hgs
parents:
diff changeset
   542
    {
hgs
parents:
diff changeset
   543
	QList<QContactDetail> list = CreateContactDetailsFromParameters( aFields );
hgs
parents:
diff changeset
   544
	
hgs
parents:
diff changeset
   545
	return iPhonebookAPI->saveContact( list );
hgs
parents:
diff changeset
   546
    }
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
hgs
parents:
diff changeset
   549
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   550
hgs
parents:
diff changeset
   551
hgs
parents:
diff changeset
   552
hgs
parents:
diff changeset
   553
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   554
hgs
parents:
diff changeset
   555
void CCreatorPhonebookWrapper::DeleteAllL()
hgs
parents:
diff changeset
   556
    {
hgs
parents:
diff changeset
   557
	iPhonebookAPI->deleteAllContacts();
hgs
parents:
diff changeset
   558
    }
hgs
parents:
diff changeset
   559
hgs
parents:
diff changeset
   560
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   561
void CCreatorPhonebookWrapper::DeleteAllGroupsL()
hgs
parents:
diff changeset
   562
    {
hgs
parents:
diff changeset
   563
    LOGSTRING("Creator: CCreatorPhonebookWrapper::DeleteAllGroupsL");
hgs
parents:
diff changeset
   564
    
hgs
parents:
diff changeset
   565
    iPhonebookAPI->deleteAllContacts( QContactType::TypeGroup );
hgs
parents:
diff changeset
   566
hgs
parents:
diff changeset
   567
    }
hgs
parents:
diff changeset
   568
hgs
parents:
diff changeset
   569
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   570
void CCreatorPhonebookWrapper::DeleteContactsL( RArray<TUint32>& aContactsToDelete, TUid aStoreUid )
hgs
parents:
diff changeset
   571
    {
hgs
parents:
diff changeset
   572
	QList<QContactLocalId> contacts; 
hgs
parents:
diff changeset
   573
	for( TInt i = 0; i < aContactsToDelete.Count(); ++i )
hgs
parents:
diff changeset
   574
	    {
hgs
parents:
diff changeset
   575
	    QContact contact = iPhonebookAPI->contact( QContactLocalId( aContactsToDelete[i] ) );
hgs
parents:
diff changeset
   576
	    if( (contact.type() == QContactType::TypeGroup && aStoreUid == KUidDictionaryUidContactGroups ) ||  (contact.type() != QContactType::TypeGroup && aStoreUid != KUidDictionaryUidContactGroups) )
hgs
parents:
diff changeset
   577
            {
hgs
parents:
diff changeset
   578
            contacts.append( QContactLocalId( aContactsToDelete[i] ) );
hgs
parents:
diff changeset
   579
            }
hgs
parents:
diff changeset
   580
	    }
hgs
parents:
diff changeset
   581
    QMap<int, QContactManager::Error> errorMap;
hgs
parents:
diff changeset
   582
	iPhonebookAPI->deleteContacts( contacts );
hgs
parents:
diff changeset
   583
    }
hgs
parents:
diff changeset
   584
hgs
parents:
diff changeset
   585
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   586
TBool CCreatorPhonebookWrapper::HasOtherThanGroupsL()
hgs
parents:
diff changeset
   587
    {
hgs
parents:
diff changeset
   588
    LOGSTRING("Creator: CCreatorPhonebookWrapper::HasOtherThanGroupsL");
hgs
parents:
diff changeset
   589
    TBool result( EFalse );
hgs
parents:
diff changeset
   590
    return result;
hgs
parents:
diff changeset
   591
    }
hgs
parents:
diff changeset
   592
hgs
parents:
diff changeset
   593
hgs
parents:
diff changeset
   594
TUint32 CCreatorPhonebookWrapper::CreateGroupEntryL( HBufC* aGroupName )
hgs
parents:
diff changeset
   595
    {
hgs
parents:
diff changeset
   596
	TUint32 id = 0;
hgs
parents:
diff changeset
   597
	QString groupName = QString::fromUtf16( aGroupName->Des().Ptr(), aGroupName->Length() );
hgs
parents:
diff changeset
   598
	
hgs
parents:
diff changeset
   599
	id = iPhonebookAPI->createGroup( groupName );
hgs
parents:
diff changeset
   600
	
hgs
parents:
diff changeset
   601
	return id; 
hgs
parents:
diff changeset
   602
    }
hgs
parents:
diff changeset
   603
TInt CCreatorPhonebookWrapper::NumberOfContacts()
hgs
parents:
diff changeset
   604
	{
hgs
parents:
diff changeset
   605
	//return all stored contacts
hgs
parents:
diff changeset
   606
	return iPhonebookAPI->numberOfContacts();
hgs
parents:
diff changeset
   607
	}
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
TInt CCreatorPhonebookWrapper::AddContactToGroup( TUint32 aGroupId, TUint32 aContact )
hgs
parents:
diff changeset
   610
	{
hgs
parents:
diff changeset
   611
	QContactLocalId group = QContactLocalId(aGroupId);
hgs
parents:
diff changeset
   612
	QContactLocalId contact = QContactLocalId(aContact);
hgs
parents:
diff changeset
   613
	
hgs
parents:
diff changeset
   614
	TInt ret = iPhonebookAPI->addContactToGroup(group, contact);
hgs
parents:
diff changeset
   615
hgs
parents:
diff changeset
   616
	return ret;
hgs
parents:
diff changeset
   617
	}
hgs
parents:
diff changeset
   618
TInt CCreatorPhonebookWrapper::AddToGroup( TUint32 aGroupId, TInt aAmount )
hgs
parents:
diff changeset
   619
	{
hgs
parents:
diff changeset
   620
	QContactLocalId group = QContactLocalId(aGroupId);
hgs
parents:
diff changeset
   621
	TInt ret = iPhonebookAPI->addToGroup( group, (int) aAmount );
hgs
parents:
diff changeset
   622
	return ret;
hgs
parents:
diff changeset
   623
	}
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
hgs
parents:
diff changeset
   626
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
TInt CCreatorPhonebookWrapper::CreateSubscribedContactEntryL()
hgs
parents:
diff changeset
   629
    {
hgs
parents:
diff changeset
   630
    LOGSTRING("Creator: CCreatorPhonebookWrapper::CreateSubscribedContactEntryL");
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
    return KErrNotSupported;
hgs
parents:
diff changeset
   633
    }
hgs
parents:
diff changeset
   634
51
hgs
parents: 31
diff changeset
   635
hgs
parents: 31
diff changeset
   636
HBufC* CCreatorPhonebookWrapper::GetPhoneNumberL( TUint32 aContactId )
hgs
parents: 31
diff changeset
   637
    {
hgs
parents: 31
diff changeset
   638
    QContactLocalId contact = QContactLocalId(aContactId);
hgs
parents: 31
diff changeset
   639
    QString phoneNumber = iPhonebookAPI->phoneNumber(contact);
hgs
parents: 31
diff changeset
   640
    HBufC *buf = HBufC::NewLC( phoneNumber.length() );
hgs
parents: 31
diff changeset
   641
    buf->Des().Copy( phoneNumber.utf16() );
hgs
parents: 31
diff changeset
   642
    CleanupStack::Pop( buf );
hgs
parents: 31
diff changeset
   643
    return buf;
hgs
parents: 31
diff changeset
   644
    }
hgs
parents: 31
diff changeset
   645
hgs
parents: 31
diff changeset
   646
TBool CCreatorPhonebookWrapper::GetContactDetailsL( TUint32 aContactId, TDes& aName, TDes& aPhoneNumber, TDes& aEmail )
hgs
parents: 31
diff changeset
   647
    {
hgs
parents: 31
diff changeset
   648
    QString name;
hgs
parents: 31
diff changeset
   649
    QString phoneNumber;
hgs
parents: 31
diff changeset
   650
    QString email;
hgs
parents: 31
diff changeset
   651
    
hgs
parents: 31
diff changeset
   652
    QContactLocalId contact = QContactLocalId(aContactId);
hgs
parents: 31
diff changeset
   653
    bool success = iPhonebookAPI->contactDetails( contact, name, phoneNumber, email);
hgs
parents: 31
diff changeset
   654
    if( success )
hgs
parents: 31
diff changeset
   655
        {
hgs
parents: 31
diff changeset
   656
        aName.Copy( name.utf16() );
hgs
parents: 31
diff changeset
   657
        aPhoneNumber.Copy( phoneNumber.utf16() );
hgs
parents: 31
diff changeset
   658
        aEmail.Copy( email.utf16() );
hgs
parents: 31
diff changeset
   659
        }
hgs
parents: 31
diff changeset
   660
    return success ? ETrue : EFalse ;
hgs
parents: 31
diff changeset
   661
    }