--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgappfw/server/src/ccscontactsresolver.cpp Fri Apr 16 14:56:15 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * 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>
+#include "qtcontacts.h"
+#include "qcontactdetailfilter.h"
+#include "qcontactdetail.h"
+
+#include <QList>
+// USER INCLUDES
+#include "ccscontactsresolver.h"
+#include "qcontactnickname.h"
+#include "qcontactorganization.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<QContactLocalId> matchingContacts = mPhonebookManager->contacts(phoneFilter);
+
+ if ( matchingContacts.count() > 0 ) {
+ // Fill the contact details
+ contactDetail.contactId = matchingContacts.at(0);
+ QContact match = mPhonebookManager->contact(matchingContacts.at(0));
+
+ QContactName nameDetails = match.detail(QContactName::DefinitionName);
+
+ QContactName name = match.detail(QContactName::DefinitionName);
+ contactDetail.firstName = name.first();
+ contactDetail.lastName = name.last();
+
+ contactDetail.nickName = match.detail<QContactNickname>().nickname();
+
+ //campany name QContactOrganization
+ contactDetail.companyName = match.detail<QContactOrganization>().name();
+
+ 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();
+ QContactName name = contact.detail(QContactName::DefinitionName);
+ contactDetail.firstName = name.first();
+ contactDetail.lastName = name.last();
+
+ QList<QContactPhoneNumber> numbers = contact.details<QContactPhoneNumber>();
+ int numberCount = numbers.count();
+
+ for ( int a=0; a<numberCount ;++a)
+ {
+ QString phoneNumber= numbers.at(a).number();
+ contactDetail.addressList.append(phoneNumber);
+ }
+
+ QContactNickname nickName = contact.detail(QContactName::DefinitionName);
+ contactDetail.nickName = nickName.nickname();
+
+ //company name QContactOrganization
+ contactDetail.companyName = contact.detail<QContactOrganization>().name();
+ }
+
+// EOF