phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToContactsMergeOperation.cpp
branchRCL_3
changeset 18 d4f567ce2e7c
parent 17 2666d9724c76
--- a/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToContactsMergeOperation.cpp	Thu Jul 15 18:22:55 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/src/CVPbkImportToContactsMergeOperation.cpp	Thu Aug 19 09:41:07 2010 +0300
@@ -19,6 +19,8 @@
 #include "CVPbkImportToContactsMergeOperation.h"
 #include "VPbkVCardEngError.h"
 #include "CVPbkVCardImporter.h"
+#include "CVPbkDefaultAttribute.h"
+#include "CVPbkLocalVariationManager.h"
 
 // Virtual Phonebook
 #include <MVPbkStoreContact.h>
@@ -31,7 +33,6 @@
 #include <MVPbkContactFieldUriData.h>
 #include <MVPbkContactFieldTextData.h>
 #include <MVPbkSingleContactOperationObserver.h>
-#include "CVPbkDefaultAttribute.h"
 const TInt KGranularity = 4;
 
 namespace{
@@ -223,7 +224,8 @@
                 }
             case EComplete:
                 {
-                if(iGroupcardHandler && ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard())
+                TBool isGroupCard = ((CVPbkVCardImporter *)iOperationImpl)->IsGroupcard();
+                if(iGroupcardHandler && isGroupCard)
                     {
                     iGroupcardHandler->BuildContactGroupsHashMapL(iContact->ParentStore());
                     const MVPbkContactLink* contact = iContact->CreateLinkLC();
@@ -231,6 +233,19 @@
                     CleanupStack::PopAndDestroy(); // For contact
                     iGroupcardHandler->DecodeContactGroupInVCardL(((CVPbkVCardImporter *)iOperationImpl)->GetGroupcardvalue());
                     }
+                
+                CVPbkLocalVariationManager* lvm = CVPbkLocalVariationManager::NewL(); 
+                TBool supportSyncGroupVcard = lvm->LocallyVariatedFeatureEnabled( EVPbkLVSyncGroupEnabled );
+                delete lvm;    
+                if (supportSyncGroupVcard && iGroupcardHandler && !isGroupCard)
+                    {
+                    iGroupcardHandler->BuildContactGroupsHashMapL(iContact->ParentStore());
+                    const MVPbkContactLink *aContact = iContact->CreateLinkLC();
+                    iGroupcardHandler->GetContactGroupStoreL(*aContact);
+                    CleanupStack::PopAndDestroy();
+                    iGroupcardHandler->DeleteContactFromGroupsL();
+                    }
+
                 iObserver.VPbkSingleContactOperationComplete( *this, iContact );
                 iContact = NULL;
                 break;