serviceproviders/sapi_contacts_vpbk/tsrc/testing/tcontact_getlist/src/tcontact_getlistblocks.cpp
changeset 10 fc9cf246af83
parent 5 989d2f495d90
child 23 50974a8b132e
--- a/serviceproviders/sapi_contacts_vpbk/tsrc/testing/tcontact_getlist/src/tcontact_getlistblocks.cpp	Fri Jul 03 15:51:24 2009 +0100
+++ b/serviceproviders/sapi_contacts_vpbk/tsrc/testing/tcontact_getlist/src/tcontact_getlistblocks.cpp	Thu Aug 27 07:43:07 2009 +0300
@@ -79,7 +79,27 @@
 TInt tCount=0;
  HBufC8* contactid;
  CSingleContact* myContact=NULL;
+ TBool newFields = EFalse; 
+ _LIT8(KFirstNameKey,"FirstName");
+ _LIT(KValue,"Barbie");
  
+ void CContactCallback::HandleReturnArray(const TInt& aError,RPointerArray<HBufC8>& aArray,TInt aTransId )
+     {
+     CActiveScheduler::Stop();
+     iError = aError;
+     }
+
+ void CContactCallback:: HandleReturnId( const TInt& aError, HBufC8* acntId, TInt aTransId )
+     {
+     CActiveScheduler::Stop();
+     //HBufC8* cntId = acntId;
+     iError = aError;
+     if(aError == KErrNone)
+         {
+              delete acntId;
+              acntId = NULL;
+         }
+     }
 void CContactCallback::HandleReturnValue( TOperationEvent aEventId, const TInt& aError, TInt aTransId )
 {
   iError= aError;
@@ -92,9 +112,8 @@
  
 
     CActiveScheduler::Stop();
-
+iError = aError;
     CSingleContactField* field = NULL; 
-    HBufC8* buf = NULL;
     TPtrC8 buf1;
     TPtrC buf2;
     TPtrC buf3;
@@ -104,9 +123,14 @@
 if(aError==KErrNone)
 {
    aIter->NextL(myContact,contactid);
+   if(contactid)
+   {   
+    delete contactid;
+    contactid = NULL;
+   }
 
   while(myContact)
- { 	
+  { 	
  	tCount++;
     if(myContact)
    {
@@ -119,23 +143,44 @@
          if(field!=NULL)
              {                
              field->GetFieldDataL(buf1,buf2,buf3);                
+             if(newFields != EFalse)
+                 {
+             if(buf1.CompareF(KFirstNameKey) == 0)
+                 {
+                 if(buf3.CompareF(KValue) != 0)
+                     {
+                     iError = KErrGeneral;
+                     newFields =EFalse;
+                     break;
+                     }
+                 }
+             newFields = EFalse;
+             break;
+                 }
                  //if(buf1.CompareF(_L8("emailgen"))==0) break;                            
              }
                           
        } //for 
            
    } //if
-    
+   if(myContact)
+   {
+    delete myContact;
+    myContact = NULL;
+   }
    aIter->NextL(myContact,contactid);
-
+   
+  if(contactid)
+   {   
+    delete contactid;
+    contactid = NULL;
+   }
                     
  } //while
- delete  aIter;
+ 
 } //if
-    
- 
-
- } 
+delete  aIter;   
+} 
 
  // -----------------------------------------------------------------------------
 // Ctmanualcontacts::Delete
@@ -172,7 +217,8 @@
         ENTRY( "GetList_Test8", Ctmanualcontacts::GetList_Test8L ), 
         ENTRY( "GetList_Test9", Ctmanualcontacts::GetList_Test9L ),  
         ENTRY( "GetList_Test10", Ctmanualcontacts::GetList_Test10L ),   
-        //ENTRY( "GetList_Test11", Ctmanualcontacts::GetList_Test11L ),       
+        ENTRY( "GetList_Test11", Ctmanualcontacts::GetList_Test11L ),
+        ENTRY( "GetList_Test12", Ctmanualcontacts::GetList_Test12L ),   
 
         };
 
@@ -193,7 +239,9 @@
  /* get database lists ,manual,only contacts.cdb will be listed*/ 	   
  TInt Ctmanualcontacts::GetList_Test1L( CStifItemParser& aItem )
     {
-
+	__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
   // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
     _LIT( KExample, "In GetList_Test1L" );
@@ -213,6 +261,10 @@
           iter->NextL(buf);
   	  } 
 
+     delete iter;
+    delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
     return KErrNone ;   
   
  }
@@ -221,7 +273,9 @@
 /* get all contacts from the phonebook ie contacts.cdb,manual*/
 TInt Ctmanualcontacts::GetList_Test2L( CStifItemParser& aItem )
 {
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
   // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
     _LIT( KExample, "In GetList_Test1L" );
@@ -233,8 +287,10 @@
  icontactservice->GetListL(icallback,1,EContacts);  
   
  CActiveScheduler::Start();
+         delete icallback;
+    delete icontactservice;
      
-   
+ __UHEAP_MARKEND;
  return KErrNone ;   
   
     
@@ -256,23 +312,36 @@
    TBuf8<15> fstname(_L8("FirstName"));
     
     TBufC8<25> cid ;
-    CSearchFields *srchfield =CSearchFields :: NewL(icontactservice);
+	__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+    //CSearchFields *srchfield =CSearchFields :: NewL(icontactservice);
     TPtrC searchval(_L("Getlist_test"));  
-    srchfield->AppendL(fstname);
+   // srchfield->AppendL(fstname);
+    icallback=new(ELeave) CContactCallback;
+	
     icontactservice->GetListL(icallback,1,EGroups,KNullDesC8,searchval,NULL,EAsc,KCntDbUri);
   
    CActiveScheduler::Start();
-     
+   delete icallback;
+  // delete srchfield;
+   delete icontactservice;
+   __UHEAP_MARKEND;
    if(myContact ==NULL)
-        return KErrNone ;   
-  
+   {
+      return KErrNone ;   
+	}
+      //delete icallback;
+	//delete icontactservice;
+  //__UHEAP_MARKEND;
     return KErrGeneral;
   }
  
  /* get group list ,groups are there but no contacts in it */
    TInt Ctmanualcontacts::GetList_Test4L( CStifItemParser& aItem )
     {
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
   // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
     _LIT( KExample, "In GetList_Test1L" );
@@ -292,7 +361,13 @@
     CActiveScheduler::Start();
      
     if(tCount!=0)
+	    delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
     return KErrNone ;
+	    delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
     
     return KErrGeneral;
   
@@ -304,7 +379,10 @@
   
   TInt Ctmanualcontacts::GetList_Test5L( CStifItemParser& aItem )
 {
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
+     
   // Print to UI
   	 _LIT(KCntDbUri1, "cntdb://c:tmp.cdb");
     _LIT( Ktsapicontacts, "tsapicontacts" );
@@ -353,8 +431,18 @@
   CActiveScheduler::Start();
      
   	  if(tCount!=0)
-     return KErrNone ;
+  	      {
+	      delete icallback;
+	      delete icontactservice;
+	      delete singleContact;
+	      __UHEAP_MARKEND;
+	      return KErrNone ;
+  	      }
            
+          delete icallback;
+          delete icontactservice;
+          delete singleContact;
+  __UHEAP_MARKEND;     
   
   	 return KErrGeneral ;
   }
@@ -363,7 +451,9 @@
   
  TInt Ctmanualcontacts::GetList_Test6L( CStifItemParser& aItem )
 {
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
   // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
     _LIT(KCntDbUri, "cntdb://c:tmp.cdb");  	           
@@ -411,16 +501,29 @@
    CActiveScheduler::Start();  
      
      if(tCount ==0)
+	 {
+	     delete icallback;
+    delete icontactservice;
+    delete singleContact;
+  __UHEAP_MARKEND;
         return KErrNone ;   
-  
-    else
+  }
+	
+	    delete icallback;
+    delete icontactservice;
+    delete singleContact;
+  __UHEAP_MARKEND;
      return KErrGeneral;
      
-  }    
+   
+}  
   
  /* list contacts in descending order */ 
    TInt Ctmanualcontacts::GetList_Test7L( CStifItemParser& aItem )
 {
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
 	_LIT(KCntDbUri, "cntdb://c:tmp.cdb");  	    
      // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
@@ -434,7 +537,9 @@
   
  CActiveScheduler::Start();
      
-   
+       delete icallback;
+   delete icontactservice;
+   __UHEAP_MARKEND;
  return KErrNone ;   
 
  } 
@@ -452,12 +557,16 @@
     // Print to log file
     iLog->Log( KExample );
  
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
     icontactservice->GetListL(icallback,1,EGroups,KNullDesC8,KNullDesC,NULL,EDesc,KCntDbUri);  //,cid,KCntDbUri1,searchval,srchfield); 
   
     CActiveScheduler::Start();
      
-   
+       delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
  return KErrNone ;   
 
 }
@@ -465,7 +574,9 @@
  /* list contacts ,ENULL cannot be used in sortingorder*/
  TInt Ctmanualcontacts::GetList_Test9L( CStifItemParser& aItem )
 {
-
+__UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
 	_LIT(KCntDbUri, "cntdb://c:tmp_ENul.cdb"); 
   // Print to UI
     _LIT( Ktsapicontacts, "tsapicontacts" );
@@ -479,7 +590,9 @@
 icontactservice->GetListL(icallback,1,EContacts,KNullDesC8,KNullDesC,NULL,EAsc);  //,cid,KCntDbUri1,searchval,srchfield); 
   
  CActiveScheduler::Start();
-     
+         delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
    
  return KErrNone ;   
 
@@ -496,7 +609,9 @@
     // Print to log file
     iLog->Log( KExample );
         
- 
+ __UHEAP_MARK;
+	icontactservice=CContactService::NewL();
+     icallback=new(ELeave) CContactCallback;
   _LIT(KCntDbUri1, "cntdb://c:tmp.cdb");  	   
  icontactservice->GetListL(icallback,1,EContacts,KNullDesC8,KNullDesC,NULL,EAsc,KCntDbUri1);  //,cid,KCntDbUri1,searchval,srchfield); 
   
@@ -504,7 +619,10 @@
         
     CContactIter* iter = CContactIter::NewL();
     icontactservice->GetListL(*iter);
-    
+    delete iter;
+	    delete icallback;
+    delete icontactservice;
+  __UHEAP_MARKEND;
     TPtrC buf(_L(""));
      
      iter->NextL(buf);
@@ -514,12 +632,397 @@
           iter->NextL(buf);
   	  } 
 	if(count==2)
+	{
+
     return KErrNone ;   
-	
+	}
+delete iter;
+	    delete icallback;
+    delete icontactservice;
+  //__UHEAP_MARKEND;	
 	return KErrGeneral;
 }
 
+/* get all contacts from the phonebook ie contacts.cdb,manual*/
+TInt Ctmanualcontacts::GetList_Test11L( CStifItemParser& aItem )
+{
+  // Print to UI
+    _LIT( Ktsapicontacts, "tsapicontacts" );
+    _LIT( KExample, "In GetList_Test11L" );
+    TestModuleIf().Printf( 0, Ktsapicontacts, KExample );
+    // Print to log file
+    __UHEAP_MARK;
+        icontactservice=CContactService::NewL();
+         icallback=new(ELeave) CContactCallback;
 
+    iLog->Log( KExample );
+//    TInt count =KErrGeneral ;
+        _LIT8(KFirstName,"FirstName");
+        _LIT(KFName,"Barbie");
+        _LIT8(KPrefix,"Prefix");
+        _LIT(KPfix,"Princess");
+        _LIT8(KNote,"Note");
+        _LIT(KNoteVal,"Lead role in Barbie, the island princess");
+        _LIT8(KAnniversary,"Anniversary");
+        //_LIT(KAniiVal,"08216666");
+         _LIT8(KBday,"Date");
+        _LIT8(KNickName,"SecondName");
+        _LIT(KNickNameVal,"Doll");
+        _LIT8(KPhoto,"CallerObjImg");
+        _LIT(KPhotoVal,"C:\\data\\images\\pic.jpg");
+        _LIT8(KImpp,"IMPP");
+        _LIT(KImppLabel,"IMPP");
+        
+        
+       //instantiate service class object
+         /* create contactitem to add */        
+CSingleContact* singleContact = CSingleContact::NewL();
+	CleanupStack::PushL(singleContact);
+        CSingleContactField* FName = CSingleContactField::NewL();
+CleanupStack::PushL(FName);
+        CSingleContactField* prefix = CSingleContactField::NewL();
+CleanupStack::PushL(prefix);
+        CSingleContactField* note = CSingleContactField::NewL();
+CleanupStack::PushL(note);
+         CSingleContactField* anni = CSingleContactField::NewL();
+CleanupStack::PushL(anni);
+        CSingleContactField* bday = CSingleContactField::NewL();
+CleanupStack::PushL(bday);
+         CSingleContactField* nkname = CSingleContactField::NewL();
+CleanupStack::PushL(nkname);
+        CSingleContactField* photo = CSingleContactField::NewL();
+CleanupStack::PushL(photo);
+        CSingleContactField* xspid = CSingleContactField::NewL();
+CleanupStack::PushL(xspid);
+          
+           
+        FName->SetFieldParamsL(KFirstName,KNullDesC,KFName);
+        singleContact->AddFieldToContactL(FName);
+        
+        prefix->SetFieldParamsL(KPrefix,KNullDesC,KPfix);
+        singleContact->AddFieldToContactL(prefix);
+        
+        note->SetFieldParamsL(KNote,KNullDesC,KNoteVal);
+        singleContact->AddFieldToContactL(note);
+        
+        anni->SetFieldParamsL(KAnniversary,KNullDesC,KNullDesC);
+        anni->SetDateTime(TTime(TDateTime(2007,EOctober,25,0,0,0,0)));
+       //anni->SetDateTime(annival);
+       singleContact->AddFieldToContactL(anni);
+       
+       
+       bday->SetFieldParamsL(KBday,KNullDesC,KNullDesC);
+       bday->SetDateTime(TTime(TDateTime(2007,EOctober,25,0,0,0,0)));
+       //bday->SetDateTime(bdayval);
+       singleContact->AddFieldToContactL(bday);
+              
+        nkname->SetFieldParamsL(KNickName,KNullDesC,KNickNameVal);
+        singleContact->AddFieldToContactL(nkname);
+        
+        photo->SetFieldParamsL(KPhoto,KNullDesC,KPhotoVal);    
+        singleContact->AddFieldToContactL(photo);
+        
+        _LIT(KYahooId,"Yahoo:barbie@yahoo.co.in");
+        //_LIT8();
+        RPointerArray<HBufC> xspidarr;
+        xspidarr.Append((_L("Yahoo:barbie@yahoo.co.in")).AllocL());
+        xspidarr.Append((_L("Google:barbie@gmail.com")).AllocL());
+        xspid->SetXspidDataL(KImpp,KImppLabel,xspidarr);
+        singleContact->AddFieldToContactL(xspid);
+
+        //aItem.GetNextInt(count) ;
+        _LIT( KLog4, "before calling add" );
+    iLog->Log( KLog4 );
+        /* Add the contactitem */
+        HBufC8* cntId;
+        TRAPD(err,cntId= icontactservice->AddL(singleContact));
+       
+        TPtr8 cntIdPtrVal(cntId->Des());
+         if(err != KErrNone)
+		 {CleanupStack::Pop(xspid);
+         CleanupStack::Pop(photo);
+         CleanupStack::Pop(nkname);
+         CleanupStack::Pop(bday);
+         CleanupStack::Pop(anni);
+         CleanupStack::Pop(note);
+         CleanupStack::Pop(prefix);
+         CleanupStack::Pop(FName);
+         CleanupStack::Pop(singleContact);
+         delete singleContact;
+delete cntId;
+		     delete icallback;
+    delete icontactservice;
+	_LIT( KLog1, "false case uheapmarkend" );
+    iLog->Log( KLog1 );
+  __UHEAP_MARKEND;
+             return KErrGeneral ;
+		}
+         /*else
+             {
+             CleanupStack::Pop(xspid);
+                           CleanupStack::Pop(photo);
+                           CleanupStack::Pop(nkname);
+                           CleanupStack::Pop(bday);
+                           CleanupStack::Pop(anni);
+                           CleanupStack::Pop(note);
+                           CleanupStack::Pop(prefix);
+                           CleanupStack::Pop(FName);
+                           CleanupStack::Pop(singleContact);
+                           delete singleContact;
+             delete cntId;
+                          delete icallback;
+                 delete icontactservice;
+                 _LIT( KLog1, "false case uheapmarkend" );
+                 iLog->Log( KLog1 );
+               __UHEAP_MARKEND;
+                          return KErrNone;
+
+             }
+         */
+         newFields = ETrue;
+         _LIT(KCntDbUri,"cntdb://c:contacts.cdb");
+         //icontactservice->GetListL(icallback,1,EContacts,KNullDesC8,KNullDesC,NULL,EAsc,KCntDbUri1);  
+         //icontactservice->GetListL(icallback,1,EContacts,KNullDesC8,KNullDesC,NULL,EAsc); 
+         icontactservice->GetListL(icallback,1,EContacts,cntIdPtrVal); //,KNullDesC,NULL,EAsc,KCntDbUri,EGetList);  
+  
+         CActiveScheduler::Start();
+     
+   if(icallback->iError == KErrNone)
+       {
+       CleanupStack::Pop(xspid);
+                                  CleanupStack::Pop(photo);
+                                  CleanupStack::Pop(nkname);
+                                  CleanupStack::Pop(bday);
+                                  CleanupStack::Pop(anni);
+                                  CleanupStack::Pop(note);
+                                  CleanupStack::Pop(prefix);
+                                  CleanupStack::Pop(FName);
+                                  CleanupStack::Pop(singleContact);
+                                  delete singleContact;
+delete cntId;
+	       delete icallback;
+    delete icontactservice;
+	_LIT( KLog2, "true case uheapmarkend" );
+    iLog->Log( KLog2 );
+  __UHEAP_MARKEND;
+ return KErrNone ;
+       }
+   CleanupStack::Pop(xspid);
+                              CleanupStack::Pop(photo);
+                              CleanupStack::Pop(nkname);
+                              CleanupStack::Pop(bday);
+                              CleanupStack::Pop(anni);
+                              CleanupStack::Pop(note);
+                              CleanupStack::Pop(prefix);
+                              CleanupStack::Pop(FName);
+                              CleanupStack::Pop(singleContact);
+                              delete singleContact;
+delete cntId;
+	       delete icallback;
+    delete icontactservice;
+	_LIT( KLog3, "false case uheapmarkend 2" );
+    iLog->Log( KLog3 );
+  __UHEAP_MARKEND;
+   return KErrGeneral;
+
+    
+  }
+
+
+/* get all contacts from the phonebook ie contacts.cdb,manual*/
+TInt Ctmanualcontacts::GetList_Test12L( CStifItemParser& aItem )
+{
+__UHEAP_MARK;
+icontactservice=CContactService::NewL();
+  // Print to UI
+    _LIT( Ktsapicontacts, "tsapicontacts" );
+    _LIT( KExample, "In GetList_Test11L" );
+    TestModuleIf().Printf( 0, Ktsapicontacts, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+//    TInt count =KErrGeneral ;
+        _LIT8(KFirstName,"FirstName");
+        _LIT(KFName,"Kelly");
+        _LIT8(KPrefix,"Prefix");
+        _LIT(KPfix,"Princess");
+        _LIT8(KNote,"Note");
+        _LIT(KNoteVal,"Sister of Princess Barbie");
+        _LIT8(KAnniversary,"Anniversary");
+         _LIT8(KBday,"Date");
+        _LIT8(KNickName,"SecondName");
+        _LIT(KNickNameVal,"Doll");
+        _LIT8(KPhoto,"CallerObjImg");
+        _LIT(KPhotoVal,"C:\\data\\images\\pic.jpg");
+        _LIT8(KImpp,"IMPP");
+        _LIT(KImppLabel,"IMPP");
+        TPtrC8 fieldKey(KNullDesC8);
+         TPtrC  label(KNullDesC); 
+         TPtrC  value(KNullDesC);       
+        _LIT(KValue,"Kelly");
+       //instantiate service class object
+         /* create contactitem to add */
+        CSingleContact* singleContact = CSingleContact::NewL();
+	CleanupStack::PushL(singleContact);
+        CSingleContactField* FName = CSingleContactField::NewL();
+CleanupStack::PushL(FName);
+        CSingleContactField* prefix = CSingleContactField::NewL();
+CleanupStack::PushL(prefix);
+        CSingleContactField* note = CSingleContactField::NewL();
+CleanupStack::PushL(note);
+         CSingleContactField* anni = CSingleContactField::NewL();
+CleanupStack::PushL(anni);
+        CSingleContactField* bday = CSingleContactField::NewL();
+CleanupStack::PushL(bday);
+         CSingleContactField* nkname = CSingleContactField::NewL();
+CleanupStack::PushL(nkname);
+        CSingleContactField* photo = CSingleContactField::NewL();
+CleanupStack::PushL(photo);
+        CSingleContactField* xspid = CSingleContactField::NewL();
+CleanupStack::PushL(xspid);
+           
+        FName->SetFieldParamsL(KFirstName,KNullDesC,KFName);
+        singleContact->AddFieldToContactL(FName);
+        
+        prefix->SetFieldParamsL(KPrefix,KNullDesC,KPfix);
+        singleContact->AddFieldToContactL(prefix);
+        
+        note->SetFieldParamsL(KNote,KNullDesC,KNoteVal);
+        singleContact->AddFieldToContactL(note);
+        
+        anni->SetFieldParamsL(KAnniversary,KNullDesC,KNullDesC);
+       //anni->SetDateTime(annival);
+        anni->SetDateTime(TTime(TDateTime(2007,EOctober,25,0,0,0,0)));
+       singleContact->AddFieldToContactL(anni);
+       
+       
+       bday->SetFieldParamsL(KBday,KNullDesC,KNullDesC);
+       //bday->SetDateTime(bdayval);
+       bday->SetDateTime(TTime(TDateTime(2007,EOctober,25,0,0,0,0)));
+       singleContact->AddFieldToContactL(bday);
+              
+        nkname->SetFieldParamsL(KNickName,KNullDesC,KNickNameVal);
+        singleContact->AddFieldToContactL(nkname);
+        
+        photo->SetFieldParamsL(KPhoto,KNullDesC,KPhotoVal);    
+        singleContact->AddFieldToContactL(photo);
+        
+        _LIT(KYahooId,"Yahoo:kelly@yahoo.co.in");
+        //_LIT8();
+        RPointerArray<HBufC> xspidarr;
+        xspidarr.Append((_L("Yahoo:kelly@yahoo.co.in")).AllocL());
+        xspidarr.Append((_L("Google:kelly@gmail.com")).AllocL());
+        xspid->SetXspidDataL(KImpp,KImppLabel,xspidarr);
+		
+		
+        singleContact->AddFieldToContactL(xspid);
+
+  //      aItem.GetNextInt(count) ;
+
+        /* Add the contactitem */
+        HBufC8* cntId;
+        TRAPD(err,cntId= icontactservice->AddL(singleContact));
+        TPtr8 cntIdPtrVal(cntId->Des());
+        
+         if(err != KErrNone)
+		 {
+		 CleanupStack::Pop(xspid);
+		               CleanupStack::Pop(photo);
+		               CleanupStack::Pop(nkname);
+		               CleanupStack::Pop(bday);
+		               CleanupStack::Pop(anni);
+		               CleanupStack::Pop(note);
+		               CleanupStack::Pop(prefix);
+		               CleanupStack::Pop(FName);
+		               CleanupStack::Pop(singleContact);
+		               delete singleContact;
+delete cntId;
+    delete icontactservice;
+ __UHEAP_MARKEND;
+             return KErrGeneral ;
+			 }
+         newFields = ETrue;
+         CContactIter* iterVal;
+         
+         TPtr8 cntIdPtr(cntId->Des());
+         TRAPD(error, iterVal = icontactservice->GetListL(EContacts,cntIdPtr));  
+         
+         if(error != KErrNone)
+          {
+          CleanupStack::Pop(xspid);
+                        CleanupStack::Pop(photo);
+                        CleanupStack::Pop(nkname);
+                        CleanupStack::Pop(bday);
+                        CleanupStack::Pop(anni);
+                        CleanupStack::Pop(note);
+                        CleanupStack::Pop(prefix);
+                        CleanupStack::Pop(FName);
+                        CleanupStack::Pop(singleContact);
+                        delete singleContact;
+			delete cntId;
+			delete iterVal;
+			_LIT( KLog1, "false case uheapmarkend 1" );
+			iLog->Log( KLog1 );
+			__UHEAP_MARKEND;
+			  return KErrGeneral;
+          }
+         iterVal->NextL(myContact,contactid);
+		  if(contactid)
+		   {   
+		    delete contactid;
+		    contactid = NULL;
+		   }
+      if(myContact)
+          {
+          for(TInt i=0;i<myContact->FieldCount(); i++)
+              {
+          CSingleContactField* field = myContact->FieldAt(i);
+          field->GetFieldDataL(fieldKey,label,value);
+          if(value.Compare(KValue) == 0)
+              {
+              CleanupStack::Pop(xspid);
+                            CleanupStack::Pop(photo);
+                            CleanupStack::Pop(nkname);
+                            CleanupStack::Pop(bday);
+                            CleanupStack::Pop(anni);
+                            CleanupStack::Pop(note);
+                            CleanupStack::Pop(prefix);
+                            CleanupStack::Pop(FName);
+                            CleanupStack::Pop(singleContact);
+                            delete singleContact;
+				delete cntId;
+			   delete iterVal;
+			   delete myContact;
+			    delete icontactservice;
+				_LIT( KLog2, "true case uheapmarkend" );
+			    iLog->Log( KLog2 );
+			  __UHEAP_MARKEND;
+           return KErrNone;
+              }
+              }
+          delete myContact;
+          }
+      CleanupStack::Pop(xspid);
+                    CleanupStack::Pop(photo);
+                    CleanupStack::Pop(nkname);
+                    CleanupStack::Pop(bday);
+                    CleanupStack::Pop(anni);
+                    CleanupStack::Pop(note);
+                    CleanupStack::Pop(prefix);
+                    CleanupStack::Pop(FName);
+                    CleanupStack::Pop(singleContact);
+                    delete singleContact;
+delete cntId;
+  delete iterVal;
+    delete icontactservice;
+	_LIT( KLog3, "false case uheapmarkend" );
+    iLog->Log( KLog3 );
+  __UHEAP_MARKEND;
+    
+      return KErrGeneral;
+
+  
+    
+  }
 /* get group list ,groups are there in the simdatabase
    TInt Ctmanualcontacts::GetList_Test11L( CStifItemParser& aItem )
     {