// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::AddFieldsToLandmarkL( CPosLmLocalDbAccess& aDbAccess, const RArray<TUint>& aFieldIds, const CPosLandmark& aLandmark) { if (aFieldIds.Count() > 0) { HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlSelect, &KPosLmSqlAll, &KPosLmLandmarkFieldTable); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EAddPreparation, view, *sql); for (TInt i = 0; i < aFieldIds.Count(); i++) { InsertFieldL(view, (TPositionFieldId)aFieldIds[i], aLandmark); } CleanupStack::PopAndDestroy(2, sql); //&view } }
LOCAL_C void TestTemplateFieldMatchingL() { test.Next(_L("Create template")); CreateDatabaseL(); CContactDatabase* db=CntTest->OpenDatabaseL(); CntTest->DeleteAllTemplateFieldsL(); // _LIT(KField1,"Field 1"); _LIT(KField2,"Field 2"); _LIT(KField3,"Field 3"); _LIT(KField4,"Field 4"); _LIT(KField5,"Field 5"); _LIT(KField6,"Field 6"); _LIT(KField7,"Field 7"); _LIT(KField8,"Field 8"); _LIT(KField9,"Field 9"); _LIT(KFieldX1,"Field X1"); _LIT(KFieldX2,"Field X2"); _LIT(KFieldHome,"Field Home"); _LIT(KFieldWork,"Field Work"); // CContactTemplate *contactTemplate=(CContactTemplate *)db->OpenContactLX(db->TemplateId()); CleanupStack::PushL(contactTemplate); TFieldType mapping1(TUid::Uid(1)); TFieldType mapping2(TUid::Uid(2)); TFieldType mapping3(TUid::Uid(3)); TFieldType mapping4(TUid::Uid(4)); TFieldType mappingX(KUidContactFieldVCardMapUnusedN); TFieldType fieldType1(TUid::Uid(101)); TFieldType fieldType2(TUid::Uid(102)); TFieldType fieldType3(TUid::Uid(103)); TFieldType fieldType4(TUid::Uid(104)); TFieldType fieldType5(TUid::Uid(105)); TFieldType fieldTypeHome(TUid::Uid(KIntContactFieldVCardMapHOME)); TFieldType fieldTypeWork(TUid::Uid(KIntContactFieldVCardMapWORK)); AddFieldL(contactTemplate,mapping1,KField1()); SetUserFlags(contactTemplate,1); AddFieldL(contactTemplate,mapping2,KField2(),&fieldType2); SetUserFlags(contactTemplate,2); AddFieldL(contactTemplate,mapping2,KField3(),&fieldType3); SetUserFlags(contactTemplate,3); AddFieldL(contactTemplate,mapping3,KField4(),&fieldType2); SetUserFlags(contactTemplate,0); AddFieldL(contactTemplate,mapping3,KField5(),&fieldType2,&fieldType4); SetUserFlags(contactTemplate,1); AddFieldL(contactTemplate,mapping3,KField6(),&fieldType2,&fieldType1); SetUserFlags(contactTemplate,2); AddFieldL(contactTemplate,mapping4,KField8(),&fieldType4); SetUserFlags(contactTemplate,3); InsertFieldL(contactTemplate,mapping4,6,KField7()); SetUserFlags(contactTemplate,0); AddFieldL(contactTemplate,mapping4,KField9(),&fieldType4,&fieldType2,&fieldType1); SetUserFlags(contactTemplate,1); AddFieldL(contactTemplate,mappingX,KFieldX1()); SetUserFlags(contactTemplate,2); AddFieldL(contactTemplate,mappingX,KFieldX2(),&fieldType2); SetUserFlags(contactTemplate,3); AddFieldL(contactTemplate,mapping1,KFieldHome(),&fieldType1,&fieldType5,&fieldTypeHome); SetUserFlags(contactTemplate,0); AddFieldL(contactTemplate,mapping1,KFieldWork(),&fieldType1,&fieldType5,&fieldTypeWork); SetUserFlags(contactTemplate,0); db->CommitContactL(*contactTemplate); CleanupStack::PopAndDestroy(); // contactTemplate CleanupStack::Pop(); // contactTemplate.Close() // TTemplateMapTest tmTest1(mapping1,&fieldType4,NULL,NULL,KField1(),1,EFalse); TTemplateMapTest tmTest2(mapping2,&fieldType1,NULL,NULL,KField2(),2,EFalse); TTemplateMapTest tmTest3(mapping2,&fieldType2,NULL,NULL,KField2(),2,ETrue); TTemplateMapTest tmTest4(mapping2,&fieldType3,NULL,NULL,KField3(),3,ETrue); TTemplateMapTest tmTest5(mapping3,&fieldType4,NULL,NULL,KField5(),5,EFalse); TTemplateMapTest tmTest6(mapping3,&fieldType1,NULL,NULL,KField6(),6,EFalse); TTemplateMapTest tmTest7(mapping3,&fieldType2,&fieldType4,NULL,KField5(),5,ETrue); TTemplateMapTest tmTest8(mapping4,&fieldType3,NULL,NULL,KField7(),7,EFalse); TTemplateMapTest tmTest9(mapping4,&fieldType4,NULL,NULL,KField8(),8,ETrue); TTemplateMapTest tmTest10(mapping4,&fieldType4,&fieldType2,NULL,KField9(),9,EFalse); TTemplateMapTest tmTestX1(mappingX,&fieldType4,NULL,NULL,KFieldX1(),10,EFalse,&mappingX); TTemplateMapTest tmTestX2(mappingX,&fieldType2,NULL,NULL,KFieldX2(),11,ETrue); TTemplateMapTest tmTestWork(mapping1,&fieldType1,&fieldType5,NULL,KFieldWork(),13,EFalse,NULL,&fieldTypeWork);//zzz change to work contactTemplate=(CContactTemplate *)ReadContactIncHiddenFieldsLC(db,db->TemplateId()); CheckFieldMappings(db,contactTemplate,&tmTest1); CheckFieldMappings(db,contactTemplate,&tmTest1,&tmTest3,&tmTest4); CheckFieldMappings(db,contactTemplate,&tmTest5,&tmTest2,&tmTest1,&tmTest6); CheckFieldMappings(db,contactTemplate,&tmTest7,&tmTest10,&tmTest8); CheckFieldMappings(db,contactTemplate,&tmTest9); CheckFieldMappings(db,contactTemplate,&tmTestX1); CheckFieldMappings(db,contactTemplate,&tmTestX2); CheckFieldMappings(db,contactTemplate,&tmTestWork); // CleanupStack::PopAndDestroy(); // contactTemplate CntTest->CloseDatabase(); }