serviceproviders/sapi_contacts_vpbk/src/contactinterface.cpp
changeset 27 02682e02e51f
parent 23 50974a8b132e
child 36 c210248fa89d
equal deleted inserted replaced
26:5d0ec8b709be 27:02682e02e51f
    38 #include "searchfields.h"
    38 #include "searchfields.h"
    39 #include "contactservice.hrh"
    39 #include "contactservice.hrh"
    40 #include "contacterrormessage.hrh"
    40 #include "contacterrormessage.hrh"
    41 #include "../../inc/serviceerrno.h"
    41 #include "../../inc/serviceerrno.h"
    42 #include "contactsmaxlength.h"
    42 #include "contactsmaxlength.h"
    43 
    43 #include <centralrepository.h>
    44 using namespace LIW;
    44 using namespace LIW;
    45 
    45 
    46 #define KMissingArg -100
    46 #define KMissingArg -100
    47 
    47 
    48 /*
    48 /*
    68 */
    68 */
    69 void CContactInterface::ConstructL()
    69 void CContactInterface::ConstructL()
    70     {
    70     {
    71     iContactService = CContactService::NewL();    
    71     iContactService = CContactService::NewL();    
    72 	iErrorMess = HBufC::NewL(250);    
    72 	iErrorMess = HBufC::NewL(250);    
       
    73 	iRepository = CRepository::NewL( TUid::Uid(KCRUidPhonebookStoreConfiguration) );
    73     }
    74     }
    74 /*
    75 /*
    75 -----------------------------------------------------------------------------
    76 -----------------------------------------------------------------------------
    76     CContactInterface* CContactInterface::NewL()
    77     CContactInterface* CContactInterface::NewL()
    77     Description                       : Two-phased constructor.
    78     Description                       : Two-phased constructor.
    97 CContactInterface::~CContactInterface()
    98 CContactInterface::~CContactInterface()
    98     {
    99     {
    99     delete iContactService;
   100     delete iContactService;
   100     delete iErrorMess;
   101     delete iErrorMess;
   101     delete iDburi;
   102     delete iDburi;
       
   103     delete iRepository;
   102     iCallbackMap.ResetAndDestroy();
   104     iCallbackMap.ResetAndDestroy();
   103     iCallbackMap.Close();		
   105     iCallbackMap.Close();		
   104     }
   106     }
   105     
   107     
   106 /*
   108 /*
   399  										CLiwGenericParamList& aOutParamList)
   401  										CLiwGenericParamList& aOutParamList)
   400     {
   402     {
   401     TBool xspid = EFalse;
   403     TBool xspid = EFalse;
   402     TBool xspidIsDes = EFalse;
   404     TBool xspidIsDes = EFalse;
   403     TBool atleastOneField = EFalse;
   405     TBool atleastOneField = EFalse;
   404     iDburi = HBufC::NewL(VPbkContactStoreUris::DefaultCntDbUri().Length());    
   406     //iDburi = HBufC::NewL(VPbkContactStoreUris::DefaultCntDbUri().Length());    
   405     //set the DBUri to the default value.    
   407     //set the DBUri to the default value.    
   406     iDburi->Des().Copy(VPbkContactStoreUris::DefaultCntDbUri());
   408     //iDburi->Des().Copy(VPbkContactStoreUris::DefaultCntDbUri());
       
   409     iDburi = GetDefaultDBUri().AllocLC();
   407     //get the number of entries in the map
   410     //get the number of entries in the map
   408     TInt keyCount = aMap->Count();
   411     TInt keyCount = aMap->Count();
   409 
   412 
   410     for(TInt index=0;index<keyCount;index++)
   413     for(TInt index=0;index<keyCount;index++)
   411         {
   414         {
  1050 
  1053 
  1051     TPtrC8 ptrToCntId(KNullDesC8);
  1054     TPtrC8 ptrToCntId(KNullDesC8);
  1052 	HBufC8* cntid = NULL;
  1055 	HBufC8* cntid = NULL;
  1053 	CContactIter* iter;
  1056 	CContactIter* iter;
  1054 	CContactIterator* iterator;
  1057 	CContactIterator* iterator;
  1055 	TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());	
  1058 	//TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
       
  1059 	TPtrC dbUri = GetDefaultDBUri();
  1056 	//Switch based on the Ttype var value
  1060 	//Switch based on the Ttype var value
  1057 	switch(listType)
  1061 	switch(listType)
  1058 	    {	    
  1062 	    {	    
  1059 		case EDatabase:
  1063 		case EDatabase:
  1060 		    if(aVal == EGetIds)
  1064 		    if(aVal == EGetIds)
  1589 			    param->Value().Get( transactionID );
  1593 			    param->Value().Get( transactionID );
  1590                 errCode = iContactService->Cancel( transactionID );
  1594                 errCode = iContactService->Cancel( transactionID );
  1591 			    }
  1595 			    }
  1592 	    return errCode;	
  1596 	    return errCode;	
  1593 	}
  1597 	}
  1594 	
  1598 
       
  1599 TPtrC CContactInterface::GetDefaultDBUri()
       
  1600     {
       
  1601        TPtrC dbUri;
       
  1602        HBufC* defaultStoreUri = HBufC::NewL(KInitialStoreUriSize);
       
  1603        TPtr ptr = defaultStoreUri->Des();
       
  1604        TInt actualSize = 0;
       
  1605        TInt ret = iRepository->Get
       
  1606           (KPhonebookDefaultSavingStoreUri, ptr, actualSize);
       
  1607         if (ret == KErrOverflow || ret != KErrNone)
       
  1608         {
       
  1609             delete defaultStoreUri;
       
  1610             defaultStoreUri = NULL;
       
  1611             defaultStoreUri = HBufC::NewL(actualSize);
       
  1612             ptr.Set(defaultStoreUri->Des());
       
  1613             TInt status = iRepository->Get(KPhonebookDefaultSavingStoreUri, ptr);
       
  1614             if(status == KErrNone)
       
  1615                 {
       
  1616                 TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
       
  1617                 delete defaultStoreUri;
       
  1618                 defaultStoreUri = NULL;
       
  1619                 return dbUri;
       
  1620                 }
       
  1621             delete defaultStoreUri;
       
  1622             defaultStoreUri = NULL;
       
  1623          }   
       
  1624        dbUri.Set(ptr);
       
  1625        return dbUri;
       
  1626     }
  1595 	
  1627 	
  1596 /*
  1628 /*
  1597 -----------------------------------------------------------------------------
  1629 -----------------------------------------------------------------------------
  1598     CContactInterface::AddCommandL(const CLiwGenericParamList& aInParamList,
  1630     CContactInterface::AddCommandL(const CLiwGenericParamList& aInParamList,
  1599                                    MLiwNotifyCallback* aCallback,
  1631                                    MLiwNotifyCallback* aCallback,
  1744                 else
  1776                 else
  1745                     {
  1777                     {
  1746                     User::Leave(err);
  1778                     User::Leave(err);
  1747                     }
  1779                     }
  1748                 } 
  1780                 } 
  1749             
  1781             CleanupStack::Pop();
  1750             CleanupStack::Pop(contact);
  1782             CleanupStack::Pop(contact);
  1751             } //end of if pMap
  1783             } //end of if pMap
  1752         else
  1784         else
  1753             {
  1785             {
  1754             aOutParamList.AppendL(TLiwGenericParam(KErrorMessage,
  1786             aOutParamList.AppendL(TLiwGenericParam(KErrorMessage,
  1772             
  1804             
  1773 			TLiwVariant valueUri;
  1805 			TLiwVariant valueUri;
  1774 		    CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  1806 		    CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  1775 
  1807 
  1776 			//set the Db Uri to default database.
  1808 			//set the Db Uri to default database.
  1777             TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
  1809             TPtrC dbUri = GetDefaultDBUri();
  1778 
       
  1779             TPtrC grpIdUnicode(KNullDesC);
  1810             TPtrC grpIdUnicode(KNullDesC);
  1780             TPtrC grpLabel(KNullDesC);
  1811             TPtrC grpLabel(KNullDesC);
  1781 
  1812 
  1782             HBufC8* groupId = NULL;                
  1813             HBufC8* groupId = NULL;                
  1783             if( EFalse != pMap->FindL(KDBUri,valueUri))
  1814             if( EFalse != pMap->FindL(KDBUri,valueUri))
  2014         //if map is not null then get db name, source file from the
  2045         //if map is not null then get db name, source file from the
  2015         //contact has to be imported.
  2046         //contact has to be imported.
  2016         const CLiwMap* pMap = paramImportData->Value().AsMap();
  2047         const CLiwMap* pMap = paramImportData->Value().AsMap();
  2017         if(NULL != pMap)
  2048         if(NULL != pMap)
  2018             {
  2049             {
  2019             TPtrC  dburi(VPbkContactStoreUris::DefaultCntDbUri());
  2050             //TPtrC  dburi(VPbkContactStoreUris::DefaultCntDbUri());
       
  2051             TPtrC dburi = GetDefaultDBUri();
  2020             TLiwVariant valueFname;
  2052             TLiwVariant valueFname;
  2021             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueFname) );
  2053             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueFname) );
  2022 
  2054 
  2023             TLiwVariant valueUri;
  2055             TLiwVariant valueUri;
  2024             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2056             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2205             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueFname) );
  2237             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueFname) );
  2206 
  2238 
  2207             TLiwVariant valueUri;
  2239             TLiwVariant valueUri;
  2208             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2240             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2209 
  2241 
  2210             TPtrC dburi(VPbkContactStoreUris::DefaultCntDbUri());
  2242             //TPtrC dburi(VPbkContactStoreUris::DefaultCntDbUri());
       
  2243             TPtrC dburi = GetDefaultDBUri();
  2211             if( EFalse != pMap->FindL(KDBUri,valueUri))
  2244             if( EFalse != pMap->FindL(KDBUri,valueUri))
  2212                 {
  2245                 {
  2213                 if(EVariantTypeDesC != valueUri.TypeId())
  2246                 if(EVariantTypeDesC != valueUri.TypeId())
  2214 					{
  2247 					{
  2215 					aOutParamList.AppendL(TLiwGenericParam(KErrorMessage,
  2248 					aOutParamList.AppendL(TLiwGenericParam(KErrorMessage,
  2400             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2433             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2401 
  2434 
  2402             TLiwVariant valueId;
  2435             TLiwVariant valueId;
  2403             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueId) );
  2436             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueId) );
  2404 
  2437 
  2405             TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
  2438             //TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
       
  2439             TPtrC dbUri = GetDefaultDBUri();
  2406             const CLiwList* contactIdList = NULL;
  2440             const CLiwList* contactIdList = NULL;
  2407 
  2441 
  2408             if( EFalse != pMap->FindL(KDBUri,valueUri))
  2442             if( EFalse != pMap->FindL(KDBUri,valueUri))
  2409                 {
  2443                 {
  2410                 if(valueUri.AsDes().CompareF(KNullDesC)!=0)
  2444                 if(valueUri.AsDes().CompareF(KNullDesC)!=0)
  2594             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueList) );
  2628             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueList) );
  2595             
  2629             
  2596 			TLiwVariant valueUri;
  2630 			TLiwVariant valueUri;
  2597             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2631             CleanupStack::PushL( TCleanupItem( TLiwVariant::VariantCleanup , &valueUri) );
  2598 
  2632 
  2599             TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
  2633             //TPtrC dbUri(VPbkContactStoreUris::DefaultCntDbUri());
       
  2634             TPtrC dbUri = GetDefaultDBUri();
  2600             TBool associateType = EFalse;
  2635             TBool associateType = EFalse;
  2601             HBufC8* groupId = NULL;
  2636             HBufC8* groupId = NULL;
  2602 
  2637 
  2603 			if(EVariantTypeDesC != paramOperationType->Value().TypeId() )
  2638 			if(EVariantTypeDesC != paramOperationType->Value().TypeId() )
  2604 				{
  2639 				{