/** * Unsuccessful edit. Fail the write validation request * @param aDb Contact database * @param aId Item Id to edit */ void FailWriteValidationL(CContactDatabase& aDb, TContactItemId aId) { syncChecker->SetValidateResponseL(MContactSynchroniser::ERead,KErrNone); syncChecker->SetValidateResponseL(MContactSynchroniser::EEdit, KErrNone); syncChecker->SetValidateWriteResponseL(KErrAccessDenied); syncChecker->ResetMethodCallCountsL(); CContactItem* item = aDb.OpenContactLX(aId); CleanupStack::PushL(item); CContactItemFieldSet& fieldset = item->CardFields(); const TInt pos = fieldset.Find(KUidContactFieldFamilyName); CContactItemField& field = fieldset[pos]; CContactTextField* textfield = field.TextStorage(); textfield->SetTextL(KGivenEditName); TRAPD(err, aDb.CommitContactL(*item)); test(syncChecker->ValidateMethodCallCountL() == 4); test(err==KErrAccessDenied); CleanupStack::PopAndDestroy(2); //item, lock record }
/** * Create template card for ICC contact items * @param aDb Contact database */ TContactItemId CreateICCTemplateL(CContactDatabase& aDb) { CContactItem* temp = aDb.CreateContactCardTemplateLC(KTemplateName); TContactItemId templateId = temp->Id(); CleanupStack::PopAndDestroy(temp); temp=NULL; //Remove all the unnecessary fields temp = aDb.OpenContactLX(templateId); CleanupStack::PushL(temp); const TInt fieldCount = temp->CardFields().Count(); for(TInt i=fieldCount-1;i>=0;i--) temp->RemoveField(i); CContactItemField* name = CContactItemField::NewLC(KStorageTypeText,KUidContactFieldFamilyName); name->SetMapping(KUidContactFieldVCardMapUnusedN); temp->AddFieldL(*name); CleanupStack::Pop(name); CContactItemField* number = CContactItemField::NewLC(KStorageTypeText,KUidContactFieldPhoneNumber); number->SetMapping(KUidContactFieldVCardMapTEL); temp->AddFieldL(*number); CleanupStack::Pop(number); CContactItemField* slotnum = CContactItemField::NewLC(KStorageTypeText,KUidContactFieldICCSlot); temp->AddFieldL(*slotnum); CleanupStack::Pop(slotnum); CContactItemField* phonebook = CContactItemField::NewLC(KStorageTypeText,KUidContactFieldICCPhonebook); temp->AddFieldL(*phonebook); CleanupStack::Pop(phonebook); aDb.CommitContactL(*temp); CleanupStack::PopAndDestroy(2); // temp, close template return templateId; }