serviceproviders/sapi_contacts_vpbk/src/contactiterator.cpp
changeset 22 fc9cf246af83
parent 19 989d2f495d90
--- a/serviceproviders/sapi_contacts_vpbk/src/contactiterator.cpp	Fri Jul 03 15:51:24 2009 +0100
+++ b/serviceproviders/sapi_contacts_vpbk/src/contactiterator.cpp	Thu Aug 27 07:43:07 2009 +0300
@@ -101,7 +101,9 @@
 
 	CLiwMap* pContactMap = NULL;
 	TBool retVal = EFalse;
-	
+	RPointerArray<HBufC> xspidArray;
+	CLiwList* IdList = NULL;
+	TLiwVariant outputVal;
 	//If iterator is iterating over contacts
 	if(iContactIter->iIndicator == EContacts)
 		{
@@ -120,6 +122,7 @@
         	TPtrC  fieldValue;
         	TTime  fieldTime;
         	TBool date = EFalse;
+        	TBool xspid = EFalse;
         	
         	CleanupStack :: PushL(contact);        	        	
         							    		    		    			    	        	
@@ -148,7 +151,29 @@
 				
 				//Get field data and populate the map structure
 				field->GetFieldDataL(fieldName, fieldLabel, fieldValue);
-				if((fieldName.Compare(KDate) == 0) || (fieldName.Compare(KAnniversary) == 0))
+				if(fieldName.Compare(KXspid) == 0)
+				    {
+				    xspid = ETrue;
+				    fieldLabel.Set(KXspidLabel);
+				    field->GetUriFieldParamL(xspidArray);
+				    if(xspidArray.Count() > 0)
+				           {
+				           
+				           TInt count = xspidArray.Count();
+				           TInt i;
+				           IdList = CLiwDefaultList::NewL();
+				           for(i=0; i<count; i++)
+				               {
+				               TDesC* idVal = xspidArray[i];
+				               outputVal.Set(*idVal);
+				               IdList->AppendL(outputVal);
+				               }
+				           
+				           }
+				    xspidArray.ResetAndDestroy();
+				    
+				    }
+				if((fieldName.Compare(KDate) == 0) || (fieldName.Compare(KAnniversary) == 0)) // || fieldName.Compare(KBirthDay) == 0)
 					{
 					date = ETrue;
 					fieldTime = field->GetDateTime();
@@ -163,6 +188,12 @@
 						{
 						pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(fieldTime));				
 						}
+					else if(xspid)
+					    {
+					  //  CLiwMap* pFieldLinkedMap = CLiwDefaultMap::NewL();
+                       // CleanupClosePushL(*pFieldLinkedMap);
+                        pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(IdList));
+						}
 					else
 						{
 						pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(fieldValue));				
@@ -178,6 +209,11 @@
 						date = EFalse;
 						pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(fieldTime));				
 						}
+					else if(xspid)
+                        {
+                        xspid = EFalse;
+                        pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(IdList));
+						}
 					else
 						{
 						pFieldLinkedMap->InsertL(KFieldValue,TLiwVariant(fieldValue));