// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // EXPORT_C void PosLmLandmarkHandler::UpdateLandmarkL( CPosLmLocalDbAccess& aDbAccess, const CPosLandmark& aLandmark) { CPosLandmark* oldLandmark = CPosLandmark::NewLC(); PosLmImplExtension::SetLandmarkIdL(*oldLandmark, aLandmark.LandmarkId()); ReadLandmarkL(aDbAccess, *oldLandmark); UpdateCategoriesL(aDbAccess, aLandmark, *oldLandmark); UpdateFieldsL(aDbAccess, aLandmark, *oldLandmark); UpdateIconAndBasicLandmarkInfoL(aDbAccess, aLandmark, *oldLandmark); CleanupStack::PopAndDestroy(oldLandmark); }
/* In this section, we edit the desired number of groups in the database * Set label for them and associate them with contacts @ param aGroupSection - Desired Group Name @ param aContact - Contact to be updated */ void CTestContactViewCRUDOperationsStep::UpdateContactsInGroupL(const TInt aNumberOfContactsToBeUpdated, const TPtrC& aGroupSection) { RArray<TPtrC> listOfGroupsSections; CleanupClosePushL(listOfGroupsSections); ViewUtilityReference().TokenizeStringL(aGroupSection, listOfGroupsSections); for ( TInt i = 0; i < listOfGroupsSections.Count(); ++i ) { CCntFilter* filter = CCntFilter::NewL(); CleanupStack::PushL(filter); filter->SetContactFilterTypeGroup(ETrue); DatabaseReference().FilterDatabaseL(*filter); for ( TInt i = 0; i < filter->iIds->Count(); ++i ) { TContactItemId groupId = (*filter->iIds)[i]; CContactItem* group = DatabaseReference().OpenContactL(groupId); CContactGroup* newGroup = static_cast<CContactGroup*>(group); if(aGroupSection.Compare(newGroup->GetGroupLabelL()) == 0) { const CContactIdArray* listOfContacts = newGroup->ItemsContained(); for(TInt i(0); i < aNumberOfContactsToBeUpdated; i++) { TContactItemId contactItemId = (*listOfContacts)[i]; CContactItem* contactItem = DatabaseReference().ReadContactL(contactItemId); CleanupStack::PushL(contactItem); UpdateFieldsL(*contactItem); CContactItem* updatedContactItem = DatabaseReference().UpdateContactLC(contactItemId, contactItem); CleanupStack::PopAndDestroy(updatedContactItem); CleanupStack::PopAndDestroy(contactItem); } delete listOfContacts; DatabaseReference().CloseContactL(groupId); break; } DatabaseReference().CloseContactL(groupId); } CleanupStack::PopAndDestroy(filter); } CleanupStack::PopAndDestroy(&listOfGroupsSections); }
/** * Updates the specified number of contact items from the database */ void CTestContactViewCRUDOperationsStep::UpdateContactEntriesL() { _LIT(KNumOfContactsToBeUpdated, "NumOfContactsToBeUpdated"); TInt numOfContactToBeUpdated; GetIntFromConfig(ConfigSection(), KNumOfContactsToBeUpdated, numOfContactToBeUpdated); TPtrC deleteContactInGroups; _LIT(KDeleteContactInGroups, "grouplist"); GetStringFromConfig(ConfigSection(), KDeleteContactInGroups, deleteContactInGroups); if(deleteContactInGroups != KNullDesC) { UpdateContactsInGroupL(numOfContactToBeUpdated, deleteContactInGroups); } else { CCntFilter* filter = CCntFilter::NewL(); CleanupStack::PushL(filter); filter->SetContactFilterTypeCard(ETrue); DatabaseReference().FilterDatabaseL(*filter); for(TInt i = 0; i < numOfContactToBeUpdated; ++i) { TContactItemId contactItemId = (*filter->iIds)[i]; CContactItem* contactItem = DatabaseReference().ReadContactL(contactItemId); CleanupStack::PushL(contactItem); UpdateFieldsL(*contactItem); CContactItem* updatedContactItem = DatabaseReference().UpdateContactLC(contactItemId, contactItem); CleanupStack::PopAndDestroy(updatedContactItem); CleanupStack::PopAndDestroy(contactItem); } CleanupStack::PopAndDestroy(filter); } }
TVerdict CTestUpdateFieldsStep::doTestStepL() /** * @return - TVerdict code * Override of base class pure virtual */ { TPtrC fieldName, fieldVal, fieldTemplate; _LIT(KTemplate, "template"); if (!GetStringFromConfig(ConfigSection(), KIniFieldName, fieldName)) { ERR_PRINTF1(_L("Unable to read fieldname from ini file")); SetTestStepResult(EFail); } else { if(KErrNone == fieldName.Compare(KAssistance)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[0],iFieldUid[0], iVcardUid[0]); } else { UpdateFieldsL(fieldVal, iStorage[0],iFieldUid[0], iVcardUid[0]); } } else if(KErrNone == fieldName.Compare(KAssistanceTel)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[1],iFieldUid[1], iVcardUid[1]); } else { UpdateFieldsL(fieldVal, iStorage[1],iFieldUid[1], iVcardUid[1]); } } else if(KErrNone == fieldName.Compare(KAnniversary)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[2],iFieldUid[2], iVcardUid[2]); } else { UpdateFieldsL(fieldVal, iStorage[2],iFieldUid[2], iVcardUid[2]); } } else if(KErrNone == fieldName.Compare(KSpouse)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[3],iFieldUid[3], iVcardUid[3]); } else { UpdateFieldsL(fieldVal, iStorage[3],iFieldUid[3], iVcardUid[3]); } } else if(KErrNone == fieldName.Compare(KChildren)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[4],iFieldUid[4], iVcardUid[4]); } else { UpdateFieldsL(fieldVal, iStorage[4],iFieldUid[4], iVcardUid[4]); } } else if(KErrNone == fieldName.Compare(KClass)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[5],iFieldUid[5], iVcardUid[5]); } else { UpdateFieldsL(fieldVal, iStorage[5],iFieldUid[5], iVcardUid[5]); } } else if(KErrNone == fieldName.Compare(KDepartment)) { //Get the field value GetStringFromConfig(ConfigSection(), KIniFieldVal, fieldVal); GetStringFromConfig(ConfigSection(), KIniFlagvalue, fieldTemplate); if(KErrNone == fieldTemplate.Compare(KTemplate)) { UpdateFieldsNewTemplateL(fieldVal, iStorage[6],iFieldUid[6], iVcardUid[6]); } else { UpdateFieldsL(fieldVal, iStorage[6],iFieldUid[6], iVcardUid[6]); } } else { ERR_PRINTF1(_L("Invalid fieldname")); SetTestStepResult(EFail); } } return TestStepResult(); }