phonebookui/Phonebook2/UIControls/src/Pbk2AddressTools.cpp
branchRCL_3
changeset 7 b3431bff8c19
parent 3 04ab22b956c2
--- 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<TVPbkFieldVersitProperty> 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<TInt, TPtrC> 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;
+	}