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 |