diff -r 84d9eb65b26f -r 518b245aa84c messagingapp/msgappfw/server/src/ccscontactsresolver.cpp --- a/messagingapp/msgappfw/server/src/ccscontactsresolver.cpp Mon May 03 12:29:07 2010 +0300 +++ b/messagingapp/msgappfw/server/src/ccscontactsresolver.cpp Fri Jun 25 15:47:40 2010 +0530 @@ -16,7 +16,7 @@ */ // SYSTEM INCLUDES -#include "qtcontacts.h" +#include "qtcontacts.h" #include "qcontactdetailfilter.h" #include @@ -50,25 +50,37 @@ const QString &address, CCsContactDetail &contactDetail) { + // apply filter on phone number field QContactDetailFilter phoneFilter; phoneFilter.setDetailDefinitionName( - QContactPhoneNumber::DefinitionName, + QContactPhoneNumber::DefinitionName, QContactPhoneNumber::FieldNumber); - + phoneFilter.setValue(address); phoneFilter.setMatchFlags(QContactFilter::MatchEndsWith); + QList matchingContacts = mPhonebookManager->contacts(phoneFilter); + if ( matchingContacts.count() > 0 ) { + QContact match = matchingContacts.at(0); + // Fill the contact details + contactDetail.contactId = match.localId(); + contactDetail.displayName = match.displayLabel(); + return true; + } - QList sortOrder; - QList matchingContacts = mPhonebookManager->contacts( - phoneFilter, - sortOrder, - QStringList()); + // apply filter on email address field + QContactDetailFilter emailFilter; + emailFilter.setDetailDefinitionName( + QContactEmailAddress::DefinitionName, + QContactEmailAddress::FieldEmailAddress); - if ( matchingContacts.count() > 0 ) { + emailFilter.setValue(address); + emailFilter.setMatchFlags(QContactFilter::MatchExactly); + matchingContacts = mPhonebookManager->contacts(emailFilter); + if ( matchingContacts.count() > 0 ) { QContact match = matchingContacts.at(0); - // Fill the contact details + // Fill the contact details contactDetail.contactId = match.localId(); - contactDetail.displayName = match.displayLabel(); + contactDetail.displayName = match.displayLabel(); return true; } return false; @@ -80,14 +92,14 @@ // ---------------------------------------------------------------------------- void CCsContactsResolver::resolveContactId( const quint32 &contactId, - CCsContactDetail &contactDetail) + CCsContactDetail &contactDetail) { // Fetch back the persisted contact QContact contact = mPhonebookManager->contact(contactId); - contactDetail.contactId = contact.localId(); - + contactDetail.contactId = contact.localId(); + contactDetail.displayName = contact.displayLabel(); - + QList numbers = contact.details(); int numberCount = numbers.count(); @@ -95,7 +107,16 @@ { QString phoneNumber= numbers.at(a).number(); contactDetail.addressList.append(phoneNumber); - } + } + + QList emailAddresses = contact.details(); + int emailCount = emailAddresses.count(); + + for ( int a=0; a