phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToStoreOperation.cpp
branchRCL_3
changeset 58 d4f567ce2e7c
parent 57 2666d9724c76
child 64 c1e8ba0c2b16
--- a/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToStoreOperation.cpp	Thu Jul 15 18:22:55 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToStoreOperation.cpp	Thu Aug 19 09:41:07 2010 +0300
@@ -22,6 +22,7 @@
 #include "CVPbkVCardImporter.h"
 #include "CVPbkVCardData.h"
 #include "VPbkVCardEngError.h"
+#include "CVPbkLocalVariationManager.h"
 
 // From Virtual Phonebook
 #include <MVPbkStoreContact.h>
@@ -371,7 +372,8 @@
 	    	}
 		
      TBool destroyed = EFalse;
-     if(iGroupcardHandler && ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard())
+     TBool isGroupCard = ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard();   
+     if(iGroupcardHandler && isGroupCard )
          {
          // CVPbkGroupCardHandler uses nested activescheduler loop to make
          // async requests synchronous (why?). Hence it is possible that when 
@@ -398,6 +400,17 @@
              destroyed = ETrue;
              }
          }
+     
+     CVPbkLocalVariationManager* lvm = CVPbkLocalVariationManager::NewL(); 
+     TBool supportSyncGroupVcard = lvm->LocallyVariatedFeatureEnabled( EVPbkLVSyncGroupEnabled );
+     delete lvm;    
+     if (supportSyncGroupVcard && iGroupcardHandler && !isGroupCard)        
+         {
+         iGroupcardHandler->BuildContactGroupsHashMapL(iTargetStore);
+         iGroupcardHandler->GetContactGroupStoreL(aResults->At(0));
+         iGroupcardHandler->DeleteContactFromGroupsL();
+         }
+     
     CleanupStack::PopAndDestroy(); // aResults
 
     if ( !destroyed )