phonebookui/Phonebook2/spbcontentprovider/src/spbphonenumberparser.cpp
branchRCL_3
changeset 17 2666d9724c76
parent 15 34879f5cfc63
equal deleted inserted replaced
15:34879f5cfc63 17:2666d9724c76
   155                     if( attributeManager.HasFieldAttributeL( *attribute, field ) )
   155                     if( attributeManager.HasFieldAttributeL( *attribute, field ) )
   156                         {
   156                         {
   157                         //default number found
   157                         //default number found
   158                         number.CreateL( textData->Text() );
   158                         number.CreateL( textData->Text() );
   159                         hasDefaultNumberField = ETrue;
   159                         hasDefaultNumberField = ETrue;
   160                         break;
       
   161                         }
   160                         }
   162                     const TPtrC phoneNumber( textData->Text() );
   161                     const TPtrC phoneNumber( textData->Text() );
   163                     // we need count phonenumbers same way how this is implemented in CCA
   162                     // we need count phonenumbers same way how this is implemented in CCA
   164                     // so that we show same count for phonenumbers in names list
   163                     // so that we show same count for phonenumbers in names list
   165                     // CCA uses descriptor folded compare for phonenumbers
   164                     // CCA uses descriptor folded compare for phonenumbers
   178     //default number not found, and only one number
   177     //default number not found, and only one number
   179     if( EFalse == hasDefaultNumberField && numberCount == 1 )
   178     if( EFalse == hasDefaultNumberField && numberCount == 1 )
   180         {
   179         {
   181             number.CreateL( (*phoneNumberArray)[0] );
   180             number.CreateL( (*phoneNumberArray)[0] );
   182         }
   181         }
   183 
   182     
   184     CleanupStack::PopAndDestroy( phoneNumberArray );
   183     CleanupStack::PopAndDestroy( phoneNumberArray );
   185     CleanupStack::PopAndDestroy( attribute );
   184     CleanupStack::PopAndDestroy( attribute );
   186 	
   185     
   187     // no number was found
   186     if( hasDefaultNumberField || numberCount <= 1 )
   188     if( numberCount > 1 )
   187         {
       
   188         // inform the observer
       
   189         iContent.PhoneNumberUpdatedL( 
       
   190             number, CSpbContentProvider::ETypePhoneNumber );
       
   191         }
       
   192     else
   189         {
   193         {
   190         // contact has multiple numbers and no default
   194         // contact has multiple numbers and no default
   191         TBuf<12> count;
   195         TBuf<12> count;
   192         count.Num( numberCount );
   196         count.Num( numberCount );
   193         iContent.PhoneNumberUpdatedL( 
   197         iContent.PhoneNumberUpdatedL( 
   194             count, CSpbContentProvider::ETypePhoneNumberMultiple );
   198             count, CSpbContentProvider::ETypePhoneNumberMultiple );
   195         }
   199         }
   196     else
   200     
   197         {
       
   198         // inform the observer
       
   199         iContent.PhoneNumberUpdatedL( 
       
   200             number, CSpbContentProvider::ETypePhoneNumber );
       
   201         }
       
   202 
       
   203     number.Close();
   201     number.Close();
   204     }
   202     }
   205 
   203 
   206 // ---------------------------------------------------------------------------
   204 // ---------------------------------------------------------------------------
   207 // CSpbPhoneNumberParser::FetchPhoneNumber
   205 // CSpbPhoneNumberParser::FetchPhoneNumber