phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToStoreOperation.cpp
branchRCL_3
changeset 58 d4f567ce2e7c
parent 57 2666d9724c76
child 64 c1e8ba0c2b16
equal deleted inserted replaced
57:2666d9724c76 58:d4f567ce2e7c
    20 
    20 
    21 #include "CVPbkVCardCompactBCardImporter.h"
    21 #include "CVPbkVCardCompactBCardImporter.h"
    22 #include "CVPbkVCardImporter.h"
    22 #include "CVPbkVCardImporter.h"
    23 #include "CVPbkVCardData.h"
    23 #include "CVPbkVCardData.h"
    24 #include "VPbkVCardEngError.h"
    24 #include "VPbkVCardEngError.h"
       
    25 #include "CVPbkLocalVariationManager.h"
    25 
    26 
    26 // From Virtual Phonebook
    27 // From Virtual Phonebook
    27 #include <MVPbkStoreContact.h>
    28 #include <MVPbkStoreContact.h>
    28 #include <MVPbkContactStore.h>
    29 #include <MVPbkContactStore.h>
    29 #include <MVPbkContactStoreProperties.h>
    30 #include <MVPbkContactStoreProperties.h>
   369 	        {
   370 	        {
   370 	    	iOwncardHandler->SetAsOwnContactL(aResults->At(0));
   371 	    	iOwncardHandler->SetAsOwnContactL(aResults->At(0));
   371 	    	}
   372 	    	}
   372 		
   373 		
   373      TBool destroyed = EFalse;
   374      TBool destroyed = EFalse;
   374      if(iGroupcardHandler && ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard())
   375      TBool isGroupCard = ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard();   
       
   376      if(iGroupcardHandler && isGroupCard )
   375          {
   377          {
   376          // CVPbkGroupCardHandler uses nested activescheduler loop to make
   378          // CVPbkGroupCardHandler uses nested activescheduler loop to make
   377          // async requests synchronous (why?). Hence it is possible that when 
   379          // async requests synchronous (why?). Hence it is possible that when 
   378          // the execution returns from BuildContactGroupsHashMapL, 
   380          // the execution returns from BuildContactGroupsHashMapL, 
   379          // GetContactGroupStoreL or DecodeContactGroupInVCardL this instance
   381          // GetContactGroupStoreL or DecodeContactGroupInVCardL this instance
   396          else
   398          else
   397              {
   399              {
   398              destroyed = ETrue;
   400              destroyed = ETrue;
   399              }
   401              }
   400          }
   402          }
       
   403      
       
   404      CVPbkLocalVariationManager* lvm = CVPbkLocalVariationManager::NewL(); 
       
   405      TBool supportSyncGroupVcard = lvm->LocallyVariatedFeatureEnabled( EVPbkLVSyncGroupEnabled );
       
   406      delete lvm;    
       
   407      if (supportSyncGroupVcard && iGroupcardHandler && !isGroupCard)        
       
   408          {
       
   409          iGroupcardHandler->BuildContactGroupsHashMapL(iTargetStore);
       
   410          iGroupcardHandler->GetContactGroupStoreL(aResults->At(0));
       
   411          iGroupcardHandler->DeleteContactFromGroupsL();
       
   412          }
       
   413      
   401     CleanupStack::PopAndDestroy(); // aResults
   414     CleanupStack::PopAndDestroy(); // aResults
   402 
   415 
   403     if ( !destroyed )
   416     if ( !destroyed )
   404         {
   417         {
   405         if ( curUnsavedCount == 0 )
   418         if ( curUnsavedCount == 0 )