diff -r 6a20128ce557 -r ebfee66fde93 messagingapp/msgappfw/server/src/ccscontactsresolver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgappfw/server/src/ccscontactsresolver.cpp Fri Jun 04 10:25:39 2010 +0100 @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: QT contact resolver interface + * + */ + +// SYSTEM INCLUDES +#include "qtcontacts.h" +#include "qcontactdetailfilter.h" +#include + +// USER INCLUDES +#include "ccscontactsresolver.h" +// ======================== Member Functions ==================== + +// ---------------------------------------------------------------------------- +// CCsContactsResolver::ContactsResolver +// @see contactsresolver.h +// ---------------------------------------------------------------------------- +CCsContactsResolver::CCsContactsResolver(QContactManager* manager): +mPhonebookManager(manager) + { + // do nothing + } +// ---------------------------------------------------------------------------- +// CCsContactsResolver::~ContactsResolver +// @see contactsresolver.h +// ---------------------------------------------------------------------------- +CCsContactsResolver::~CCsContactsResolver() + { + // do nothing + } + +// ---------------------------------------------------------------------------- +// CCsContactsResolver::resolveContact +// @see contactsresolver.h +// ---------------------------------------------------------------------------- +bool CCsContactsResolver::resolveContact( + const QString &address, + CCsContactDetail &contactDetail) + { + QContactDetailFilter phoneFilter; + phoneFilter.setDetailDefinitionName( + 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; + } + return false; + } + +// ---------------------------------------------------------------------------- +// CCsContactsResolver::resolveContactId +// @see contactsresolver.h +// ---------------------------------------------------------------------------- +void CCsContactsResolver::resolveContactId( + const quint32 &contactId, + CCsContactDetail &contactDetail) + { + // Fetch back the persisted contact + QContact contact = mPhonebookManager->contact(contactId); + contactDetail.contactId = contact.localId(); + + contactDetail.displayName = contact.displayLabel(); + + QList numbers = contact.details(); + int numberCount = numbers.count(); + + for ( int a=0; a