phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp
branchRCL_3
changeset 6 e8e3147d53eb
parent 0 e686773b3f54
child 17 2666d9724c76
equal deleted inserted replaced
5:81f8547efd4f 6:e8e3147d53eb
   283 //
   283 //
   284 TBool CPbk2MergeResolver::IsTopContactField( 
   284 TBool CPbk2MergeResolver::IsTopContactField( 
   285         const MVPbkStoreContactField& aField )
   285         const MVPbkStoreContactField& aField )
   286     {
   286     {
   287     const MVPbkFieldType* fieldType = aField.BestMatchingFieldType();
   287     const MVPbkFieldType* fieldType = aField.BestMatchingFieldType();
   288     __ASSERT_ALWAYS( fieldType, Panic( EPbk2FieldTypeNotExists ) );
   288     TBool topContact( EFalse );
   289     TArray<TVPbkFieldVersitProperty> versitProp = fieldType->VersitProperties();
   289     
   290     
   290     if ( fieldType )
   291     TBool topContact = EFalse;
   291         {
   292     
   292         TArray<TVPbkFieldVersitProperty> versitProp = fieldType->VersitProperties();        
   293     for( TInt idx = 0; idx < versitProp.Count() && !topContact; idx++ )
   293         for( TInt idx = 0; idx < versitProp.Count() && !topContact; idx++ )
   294         {
   294             {
   295         TVPbkFieldVersitProperty versitPropFirst = versitProp[idx];
   295             TVPbkFieldVersitProperty versitPropFirst = versitProp[idx];
   296         if( versitPropFirst.Name() == EVPbkVersitNameTopContact )
   296             if( versitPropFirst.Name() == EVPbkVersitNameTopContact )
   297             {
   297                 {
   298             topContact = ETrue;
   298                 topContact = ETrue;
       
   299                 }
   299             }
   300             }
   300         }
   301         }
   301     
   302     
   302     return topContact;
   303     return topContact;
   303     }
   304     }
   522 // --------------------------------------------------------------------------
   523 // --------------------------------------------------------------------------
   523 //
   524 //
   524 TBool CPbk2MergeResolver::AddressField( const MVPbkStoreContactField& aField )
   525 TBool CPbk2MergeResolver::AddressField( const MVPbkStoreContactField& aField )
   525     {
   526     {
   526     const MVPbkFieldType* fieldType = aField.BestMatchingFieldType();
   527     const MVPbkFieldType* fieldType = aField.BestMatchingFieldType();
   527     __ASSERT_ALWAYS( fieldType, Panic( EPbk2FieldTypeNotExists ) );
   528     TBool address( EFalse );
   528     TArray<TVPbkFieldVersitProperty> versitProp = fieldType->VersitProperties();
   529     
   529     
   530     if ( fieldType )
   530     TBool address = EFalse;
   531         {
   531     
   532         TArray<TVPbkFieldVersitProperty> versitProp = fieldType->VersitProperties();
   532     for( TInt idx = 0; idx < versitProp.Count() && !address; idx++ )
   533         
   533         {
   534         for( TInt idx = 0; idx < versitProp.Count() && !address; idx++ )
   534         TVPbkFieldVersitProperty versitPropFirst = versitProp[idx];
   535             {
   535         if( versitPropFirst.Name() == EVPbkVersitNameADR ||
   536             TVPbkFieldVersitProperty versitPropFirst = versitProp[idx];
   536             versitPropFirst.Name() == EVPbkVersitNameGEO )
   537             if( versitPropFirst.Name() == EVPbkVersitNameADR ||
   537             {
   538                 versitPropFirst.Name() == EVPbkVersitNameGEO )
   538             address = ETrue;
   539                 {
       
   540                 address = ETrue;
       
   541                 }
   539             }
   542             }
   540         }
   543         }
   541     
   544     
   542     return address;
   545     return address;
   543     }
   546     }
   628 //
   631 //
   629 TBool CPbk2MergeResolver::AreAddressesSubTypeSame( 
   632 TBool CPbk2MergeResolver::AreAddressesSubTypeSame( 
   630         const MVPbkStoreContactField& aFieldFirst,
   633         const MVPbkStoreContactField& aFieldFirst,
   631         const MVPbkStoreContactField& aFieldSecond )
   634         const MVPbkStoreContactField& aFieldSecond )
   632     {
   635     {
       
   636     TBool retCompare( EFalse );
   633     const MVPbkFieldType* fieldTypeFirst = aFieldFirst.BestMatchingFieldType();
   637     const MVPbkFieldType* fieldTypeFirst = aFieldFirst.BestMatchingFieldType();
   634     __ASSERT_ALWAYS( fieldTypeFirst, Panic( EPbk2FieldTypeNotExists ) );
   638     const MVPbkFieldType* fieldTypeSecond = aFieldSecond.BestMatchingFieldType();    
   635     
   639     
   636     const MVPbkFieldType* fieldTypeSecond = aFieldSecond.BestMatchingFieldType();
   640     if ( fieldTypeFirst && fieldTypeSecond )
   637     __ASSERT_ALWAYS( fieldTypeSecond, Panic( EPbk2FieldTypeNotExists ) );
   641         {
   638     
   642         TArray<TVPbkFieldVersitProperty> versitPropArrFirst = fieldTypeFirst->VersitProperties();
   639     TArray<TVPbkFieldVersitProperty> versitPropArrFirst = fieldTypeFirst->VersitProperties();
   643         TArray<TVPbkFieldVersitProperty> versitPropArrSecond = fieldTypeSecond->VersitProperties();
   640     TArray<TVPbkFieldVersitProperty> versitPropArrSecond = fieldTypeSecond->VersitProperties();
   644         
   641     
   645         TInt countFirst = versitPropArrFirst.Count();
   642     TInt countFirst = versitPropArrFirst.Count();
   646         TInt countSecond = versitPropArrSecond.Count();    
   643     TInt countSecond = versitPropArrSecond.Count();
   647         
   644 
   648         for( TInt idxFirst = 0; idxFirst < countFirst && !retCompare; idxFirst++ )
   645     TBool retCompare = EFalse;
   649             {
   646     
   650             TVPbkFieldVersitProperty versitPropFirst = versitPropArrFirst[idxFirst];
   647     for( TInt idxFirst = 0; idxFirst < countFirst && !retCompare; idxFirst++ )
   651             for( TInt idxSecond = 0; idxSecond < countSecond; idxSecond++ )
   648         {
   652                 {
   649         TVPbkFieldVersitProperty versitPropFirst = versitPropArrFirst[idxFirst];
   653                 TVPbkFieldVersitProperty versitPropSecond = versitPropArrSecond[idxSecond];
   650         for( TInt idxSecond = 0; idxSecond < countSecond; idxSecond++ )
   654                 if( versitPropFirst.SubField() == versitPropSecond.SubField() )
   651             {
   655                     {
   652             TVPbkFieldVersitProperty versitPropSecond = versitPropArrSecond[idxSecond];
   656                     retCompare = ETrue;
   653             if( versitPropFirst.SubField() == versitPropSecond.SubField() )
   657                     break;
   654                 {
   658                     }
   655                 retCompare = ETrue;
       
   656                 break;
       
   657                 }
   659                 }
   658             }
   660             }
   659         }
   661         }
   660     
   662     
   661     return retCompare;
   663     return retCompare;
   667 //
   669 //
   668 TBool CPbk2MergeResolver::AreFieldsTypeSame( 
   670 TBool CPbk2MergeResolver::AreFieldsTypeSame( 
   669         const MVPbkStoreContactField& aFieldFirst,
   671         const MVPbkStoreContactField& aFieldFirst,
   670         const MVPbkStoreContactField& aFieldSecond )
   672         const MVPbkStoreContactField& aFieldSecond )
   671     {
   673     {
   672     const MVPbkFieldType* fieldTypeFirst = aFieldFirst.BestMatchingFieldType();
   674     TBool isSame( EFalse );    
   673     __ASSERT_ALWAYS( fieldTypeFirst, Panic( EPbk2FieldTypeNotExists ) );
   675     const MVPbkFieldType* fieldTypeFirst = aFieldFirst.BestMatchingFieldType();  
   674     
   676     const MVPbkFieldType* fieldTypeSecond = aFieldSecond.BestMatchingFieldType();    
   675     const MVPbkFieldType* fieldTypeSecond = aFieldSecond.BestMatchingFieldType();
   677     
   676     __ASSERT_ALWAYS( fieldTypeSecond, Panic( EPbk2FieldTypeNotExists ) );
   678     if ( fieldTypeFirst && fieldTypeSecond )
   677     
   679         {
   678     return fieldTypeFirst->IsSame( *fieldTypeSecond );
   680         isSame = fieldTypeFirst->IsSame( *fieldTypeSecond );
       
   681         }
       
   682     
       
   683     return isSame;
   679     }
   684     }
   680 
   685 
   681 // --------------------------------------------------------------------------
   686 // --------------------------------------------------------------------------
   682 // CPbk2MergeResolver::AddConflictL
   687 // CPbk2MergeResolver::AddConflictL
   683 // --------------------------------------------------------------------------
   688 // --------------------------------------------------------------------------