messagingapp/msgappfw/server/src/ccscontactsresolver.cpp
changeset 31 ebfee66fde93
child 44 36f374c67aa8
--- /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 <QList>
+
+// 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<QContact> 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<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);
+        }    
+    }
+
+// EOF