diff -r e8e3147d53eb -r b3431bff8c19 phonebookui/Phonebook2/UIControls/src/Pbk2AddressTools.cpp --- a/phonebookui/Phonebook2/UIControls/src/Pbk2AddressTools.cpp Mon Mar 15 12:39:26 2010 +0200 +++ b/phonebookui/Phonebook2/UIControls/src/Pbk2AddressTools.cpp Wed Mar 31 21:13:53 2010 +0300 @@ -412,6 +412,72 @@ } } +// -------------------------------------------------------------------------- +// Pbk2AddressTools::MapVPbkFieldTypeToAddressGroupId +// -------------------------------------------------------------------------- +// +EXPORT_C TPbk2FieldGroupId Pbk2AddressTools::MapVPbkFieldTypeToAddressGroupId( + const MVPbkFieldType* aVPbkFieldType ) + { + TPbk2FieldGroupId groupId = EPbk2FieldGroupIdNone; + TArray versitArr = aVPbkFieldType->VersitProperties(); + if (versitArr.Count()) + { + const TVPbkFieldVersitProperty& prop = versitArr[0]; + if (prop.Name() == EVPbkVersitNameADR) + { + if (versitArr[0].Parameters().Contains(EVPbkVersitParamHOME)) + { + groupId = EPbk2FieldGroupIdHomeAddress; + } + else if (versitArr[0].Parameters().Contains(EVPbkVersitParamWORK)) + { + groupId = EPbk2FieldGroupIdCompanyAddress; + } + else + { + groupId = EPbk2FieldGroupIdPostalAddress; + } + } + } + return groupId; + } +// -------------------------------------------------------------------------- +// Pbk2AddressTools::IsAddressPreviewEmptyL +// -------------------------------------------------------------------------- +// +EXPORT_C TBool Pbk2AddressTools::IsAddressPreviewEmptyL( + MVPbkStoreContact& aContact, + TPbk2FieldGroupId aAddressGroup ) + { + if( aAddressGroup != EPbk2FieldGroupIdPostalAddress && + aAddressGroup != EPbk2FieldGroupIdCompanyAddress && + aAddressGroup != EPbk2FieldGroupIdHomeAddress ) + { + User::Leave(KErrArgument); + } + TBool isEmpty = ETrue; + RHashMap fieldsMap; + GetAddressFieldsLC( aContact, aAddressGroup, fieldsMap ); + if( fieldsMap.Find( EVPbkVersitSubFieldStreet ) ) + { + isEmpty = EFalse; + } + else if( fieldsMap.Find( EVPbkVersitSubFieldLocality ) ) + { + isEmpty = EFalse; + } + else if( fieldsMap.Find( EVPbkVersitSubFieldRegion ) ) + { + isEmpty = EFalse; + } + else if( fieldsMap.Find( EVPbkVersitSubFieldCountry ) ) + { + isEmpty = EFalse; + } + CleanupStack::PopAndDestroy( &fieldsMap ); + return isEmpty; + }