00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "ContactWrite.h"
00018
00019 CContactWrite* CContactWrite::NewL()
00020 {
00021 CContactWrite* self = new (ELeave) CContactWrite();
00022 CleanupStack::PushL(self);
00023 self->ConstructL();
00024 CleanupStack::Pop(self);
00025 return self;
00026 }
00027
00028 CContactWrite::~CContactWrite()
00029 {
00030 delete iCntDb;
00031 }
00032
00033 void CContactWrite::ConstructL()
00034 {
00035 TRAPD(error, iCntDb = CContactDatabase::OpenL());
00036 if (KErrNotFound == error)
00037 {
00038 iCntDb = CContactDatabase::CreateL();
00039 }
00040 else
00041 {
00042 User::LeaveIfError(error);
00043 }
00044 }
00045
00046 CContactDatabase& CContactWrite::CntDatabase()
00047 {
00048 return *iCntDb;
00049 }
00050
00051 void CContactWrite::AddEmployerL(TContactItemId aCntId, const TDesC& aCompany)
00052 {
00053
00054 CContactItem* item = iCntDb->OpenContactLX(aCntId );
00055 CleanupStack::PushL(item);
00056
00057
00058 CContactItemField* field = CContactItemField::NewLC(KStorageTypeText);
00059 field->AddFieldTypeL(KUidContactFieldCompanyName);
00060 field->TextStorage()->SetTextL(aCompany);
00061
00062 item->AddFieldL(*field);
00063
00064 CleanupStack::Pop(field);
00065
00066 iCntDb->CommitContactL(*item);
00067
00068 CleanupStack::PopAndDestroy(item);
00069 CleanupStack::PopAndDestroy();
00070 }
00071
00072
00073