29 #include <MVPbkStoreContactFieldCollection.h> |
29 #include <MVPbkStoreContactFieldCollection.h> |
30 #include <MVPbkContactFieldTextData.h> |
30 #include <MVPbkContactFieldTextData.h> |
31 #include <MVPbkContactFieldDateTimeData.h> |
31 #include <MVPbkContactFieldDateTimeData.h> |
32 #include <MVPbkContactFieldUriData.h> |
32 #include <MVPbkContactFieldUriData.h> |
33 #include <MVPbkContactFieldBinaryData.h> |
33 #include <MVPbkContactFieldBinaryData.h> |
|
34 #include <vpbkeng.rsg> |
|
35 #include <VPbkSyncConstants.h> |
|
36 #include <Pbk2UIControls.rsg> |
|
37 |
|
38 // System includes |
|
39 #include <AknUtils.h> |
34 |
40 |
35 // Debugging headers |
41 // Debugging headers |
36 #include <Pbk2Debug.h> |
42 #include <Pbk2Debug.h> |
37 #include <Pbk2Profile.h> |
43 #include <Pbk2Profile.h> |
38 |
44 |
692 const MVPbkStoreContactField& aFieldSecond ) |
698 const MVPbkStoreContactField& aFieldSecond ) |
693 { |
699 { |
694 CPbk2MergeConflict* conflictNew = CPbk2MergeConflict::NewL(); |
700 CPbk2MergeConflict* conflictNew = CPbk2MergeConflict::NewL(); |
695 CleanupStack::PushL( conflictNew ); |
701 CleanupStack::PushL( conflictNew ); |
696 conflictNew->AddFields( aFieldFirst, aFieldSecond ); |
702 conflictNew->AddFields( aFieldFirst, aFieldSecond ); |
|
703 |
|
704 //For sync get possibly localised display fields |
|
705 if( aFieldFirst.BestMatchingFieldType()->FieldTypeResId() == R_VPBK_FIELD_TYPE_SYNCCLASS ) |
|
706 { |
|
707 HBufC* first = SyncDisplayFieldLC( aFieldFirst ); |
|
708 if( first ) |
|
709 { |
|
710 HBufC* second = SyncDisplayFieldLC( aFieldSecond ); |
|
711 if( second ) |
|
712 { |
|
713 conflictNew->AddDisplayFields( first, second ); |
|
714 CleanupStack::Pop( 2, first ); |
|
715 } |
|
716 else |
|
717 { |
|
718 CleanupStack::PopAndDestroy( first ); |
|
719 } |
|
720 } |
|
721 } |
|
722 |
697 iConflicts.AppendL( conflictNew ); |
723 iConflicts.AppendL( conflictNew ); |
698 CleanupStack::Pop( conflictNew ); |
724 CleanupStack::Pop( conflictNew ); |
699 |
725 |
700 PBK2_DEBUG_PRINT(PBK2_DEBUG_STRING( "CPbk2MergeResolver::AddConflictL - Conflict created" ) ); |
726 PBK2_DEBUG_PRINT(PBK2_DEBUG_STRING( "CPbk2MergeResolver::AddConflictL - Conflict created" ) ); |
|
727 } |
|
728 |
|
729 // -------------------------------------------------------------------------- |
|
730 // CPbk2MergeResolver::SyncDisplayFieldLC |
|
731 // -------------------------------------------------------------------------- |
|
732 // |
|
733 HBufC* CPbk2MergeResolver::SyncDisplayFieldLC( |
|
734 const MVPbkStoreContactField& aField ) |
|
735 { |
|
736 HBufC* field = NULL; |
|
737 TVPbkFieldStorageType dataType = aField.FieldData().DataType(); |
|
738 |
|
739 if ( dataType == EVPbkFieldStorageTypeText ) |
|
740 { |
|
741 const MVPbkContactFieldTextData& textData = |
|
742 MVPbkContactFieldTextData::Cast( aField.FieldData() ); |
|
743 field = LocaliseSyncDisplayFieldLC( textData.Text() ); |
|
744 } |
|
745 |
|
746 return field; |
|
747 } |
|
748 |
|
749 // -------------------------------------------------------------------------- |
|
750 // CPbk2MergeResolver::LocaliseSyncDisplayFieldL |
|
751 // -------------------------------------------------------------------------- |
|
752 // |
|
753 HBufC* CPbk2MergeResolver::LocaliseSyncDisplayFieldLC( const TDesC& aContent ) |
|
754 { |
|
755 HBufC* txt = NULL; |
|
756 |
|
757 if ( !aContent.CompareF( KVPbkContactSyncPublic ) ) |
|
758 { |
|
759 txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PUBLIC ); |
|
760 } |
|
761 else if ( !aContent.CompareF( KVPbkContactSyncNoSync ) ) |
|
762 { |
|
763 txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_NONE ); |
|
764 } |
|
765 else |
|
766 { |
|
767 txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PRIVATE ); |
|
768 } |
|
769 |
|
770 return txt; |
701 } |
771 } |
702 |
772 |
703 // -------------------------------------------------------------------------- |
773 // -------------------------------------------------------------------------- |
704 // CPbk2MergeResolver::AddAddressConflictL |
774 // CPbk2MergeResolver::AddAddressConflictL |
705 // -------------------------------------------------------------------------- |
775 // -------------------------------------------------------------------------- |