phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp
branchRCL_3
changeset 17 2666d9724c76
parent 6 e8e3147d53eb
--- a/phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp	Mon Jun 21 15:24:27 2010 +0300
+++ b/phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp	Thu Jul 15 18:22:55 2010 +0300
@@ -31,6 +31,12 @@
 #include <MVPbkContactFieldDateTimeData.h>
 #include <MVPbkContactFieldUriData.h>
 #include <MVPbkContactFieldBinaryData.h>
+#include <vpbkeng.rsg>
+#include <VPbkSyncConstants.h>
+#include <Pbk2UIControls.rsg>
+
+// System includes
+#include <AknUtils.h>
 
 // Debugging headers
 #include <Pbk2Debug.h>
@@ -694,6 +700,26 @@
     CPbk2MergeConflict* conflictNew = CPbk2MergeConflict::NewL();
     CleanupStack::PushL( conflictNew );
     conflictNew->AddFields( aFieldFirst, aFieldSecond );
+
+    //For sync get possibly localised display fields 
+    if( aFieldFirst.BestMatchingFieldType()->FieldTypeResId() == R_VPBK_FIELD_TYPE_SYNCCLASS )
+        {
+        HBufC* first = SyncDisplayFieldLC( aFieldFirst );
+        if( first )
+            {    
+            HBufC* second = SyncDisplayFieldLC( aFieldSecond );
+            if( second )
+                {
+                conflictNew->AddDisplayFields( first, second );
+                CleanupStack::Pop( 2, first );    
+                }
+            else
+                {
+                CleanupStack::PopAndDestroy( first );
+                }
+            }
+        }
+
     iConflicts.AppendL( conflictNew );
     CleanupStack::Pop( conflictNew );
     
@@ -701,6 +727,50 @@
     }
 
 // --------------------------------------------------------------------------
+// CPbk2MergeResolver::SyncDisplayFieldLC
+// --------------------------------------------------------------------------
+//
+HBufC* CPbk2MergeResolver::SyncDisplayFieldLC(
+        const MVPbkStoreContactField& aField )
+    {
+    HBufC* field = NULL;
+    TVPbkFieldStorageType dataType = aField.FieldData().DataType();
+
+    if ( dataType == EVPbkFieldStorageTypeText )
+         {
+         const MVPbkContactFieldTextData& textData =
+               MVPbkContactFieldTextData::Cast( aField.FieldData() );
+         field = LocaliseSyncDisplayFieldLC( textData.Text() );
+         }
+
+    return field;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2MergeResolver::LocaliseSyncDisplayFieldL
+// --------------------------------------------------------------------------
+//
+HBufC* CPbk2MergeResolver::LocaliseSyncDisplayFieldLC( const TDesC& aContent )
+    {
+    HBufC* txt = NULL;
+
+    if ( !aContent.CompareF( KVPbkContactSyncPublic ) )
+        {
+        txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PUBLIC );
+        }
+    else if ( !aContent.CompareF( KVPbkContactSyncNoSync ) )
+        {
+        txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_NONE );
+        }
+    else
+        {
+        txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PRIVATE );
+        }
+
+    return txt;
+    }
+
+// --------------------------------------------------------------------------
 // CPbk2MergeResolver::AddAddressConflictL
 // --------------------------------------------------------------------------
 //