diff -r 989d2f495d90 -r fc9cf246af83 serviceproviders/sapi_contacts_vpbk/contactservice/src/singlecontactfield.cpp --- a/serviceproviders/sapi_contacts_vpbk/contactservice/src/singlecontactfield.cpp Fri Jul 03 15:51:24 2009 +0100 +++ b/serviceproviders/sapi_contacts_vpbk/contactservice/src/singlecontactfield.cpp Thu Aug 27 07:43:07 2009 +0300 @@ -59,7 +59,15 @@ TPtrC& aLabel, TPtrC& aValue) { - if(iFieldKey && iLabel && iValue) + if(iFieldKey->Compare(KXspid) == 0) + { + if(iFieldKey && iLabel) + { + aFieldKey.Set(*iFieldKey); + aLabel.Set(*iLabel); + } + } + else if(iFieldKey && iLabel && iValue) { aFieldKey.Set(*iFieldKey); aLabel.Set(*iLabel); @@ -106,6 +114,50 @@ iValue = aValue.AllocL(); } + +EXPORT_C void CSingleContactField:: + SetUriFieldParamsL(const TDesC8& aFieldKey, + const TDesC& aLabel, + const RPointerArray aValue) + { + if(iFieldKey) + { + delete iFieldKey; + iFieldKey = NULL; + } + if( iLabel ) + { + delete iLabel; + iLabel = NULL; + } + if( iValue ) + { + delete iValue; + iValue = NULL; + } + iFieldKey= aFieldKey.AllocL(); + iLabel = aLabel.AllocL(); + iidArray.ResetAndDestroy(); + iidArray = aValue; + } + +EXPORT_C void CSingleContactField::GetUriFieldParamL(RPointerArray& axspidArray) + { + TInt count = iidArray.Count(); + if(count != 0) + { + + for(TInt i=0;i& axspidArray) + { + if(iFieldKey) + { + delete iFieldKey; + iFieldKey = NULL; + } + if( iLabel ) + { + delete iLabel; + iLabel = NULL; + } + iFieldKey= aFieldKey.AllocL(); + iLabel = aLabel.AllocL(); + iArrayValue = axspidArray; + } + + +EXPORT_C void CSingleContactField::GetXspidDataL(RPointerArray& axspidArray) + { + TInt count = iArrayValue.Count(); + if(count != 0) + { + + for(TInt i=0;i