messagingapp/msgappfw/server/src/ccscontactsresolver.cpp
changeset 23 238255e8b033
child 25 84d9eb65b26f
equal deleted inserted replaced
5:4697dfb2d7ad 23:238255e8b033
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description: QT contact resolver interface
       
    15  *
       
    16  */
       
    17 
       
    18 // SYSTEM INCLUDES
       
    19 //#include <QtContacts> 
       
    20 #include "qtcontacts.h" 
       
    21 #include "qcontactdetailfilter.h"
       
    22 #include "qcontactdetail.h"
       
    23 
       
    24 #include <QList>
       
    25 // USER INCLUDES
       
    26 #include "ccscontactsresolver.h"
       
    27 #include "qcontactnickname.h"
       
    28 #include "qcontactorganization.h"
       
    29 // ======================== Member Functions ====================
       
    30 
       
    31 // ----------------------------------------------------------------------------
       
    32 // CCsContactsResolver::ContactsResolver
       
    33 // @see contactsresolver.h
       
    34 // ----------------------------------------------------------------------------
       
    35 CCsContactsResolver::CCsContactsResolver(QContactManager* manager):
       
    36 mPhonebookManager(manager)
       
    37         {
       
    38         // do nothing
       
    39         }
       
    40 // ----------------------------------------------------------------------------
       
    41 // CCsContactsResolver::~ContactsResolver
       
    42 // @see contactsresolver.h
       
    43 // ----------------------------------------------------------------------------
       
    44 CCsContactsResolver::~CCsContactsResolver()
       
    45     {
       
    46     // do nothing
       
    47     }
       
    48 
       
    49 // ----------------------------------------------------------------------------
       
    50 // CCsContactsResolver::resolveContact
       
    51 // @see contactsresolver.h
       
    52 // ----------------------------------------------------------------------------
       
    53 bool CCsContactsResolver::resolveContact(
       
    54         const QString &address,
       
    55         CCsContactDetail &contactDetail)
       
    56     {
       
    57     QContactDetailFilter phoneFilter;
       
    58     phoneFilter.setDetailDefinitionName(QContactPhoneNumber::DefinitionName, QContactPhoneNumber::FieldNumber);
       
    59     phoneFilter.setValue(address);
       
    60     phoneFilter.setMatchFlags(QContactFilter::MatchEndsWith);
       
    61 
       
    62     QList<QContactLocalId> matchingContacts = mPhonebookManager->contacts(phoneFilter);
       
    63 
       
    64     if ( matchingContacts.count() > 0 ) {		
       
    65     // Fill the contact details
       
    66     contactDetail.contactId = matchingContacts.at(0);
       
    67     QContact match = mPhonebookManager->contact(matchingContacts.at(0));
       
    68 
       
    69     QContactName nameDetails = match.detail(QContactName::DefinitionName);
       
    70 
       
    71     QContactName name = match.detail(QContactName::DefinitionName);
       
    72     contactDetail.firstName = name.first();
       
    73     contactDetail.lastName = name.last();
       
    74     
       
    75     contactDetail.nickName = match.detail<QContactNickname>().nickname();
       
    76     
       
    77     //campany name QContactOrganization
       
    78     contactDetail.companyName = match.detail<QContactOrganization>().name();
       
    79     
       
    80     return true;
       
    81 
       
    82     }		
       
    83     return false;
       
    84     }
       
    85 
       
    86 // ----------------------------------------------------------------------------
       
    87 // CCsContactsResolver::resolveContactId
       
    88 // @see contactsresolver.h
       
    89 // ----------------------------------------------------------------------------
       
    90 void CCsContactsResolver::resolveContactId(
       
    91         const quint32 &contactId,
       
    92         CCsContactDetail &contactDetail)	
       
    93     {
       
    94     // Fetch back the persisted contact
       
    95     QContact contact = mPhonebookManager->contact(contactId);
       
    96     contactDetail.contactId = contact.localId(); 
       
    97     QContactName name = contact.detail(QContactName::DefinitionName);
       
    98     contactDetail.firstName = name.first();
       
    99     contactDetail.lastName = name.last();
       
   100     
       
   101     QList<QContactPhoneNumber> numbers = contact.details<QContactPhoneNumber>();
       
   102     int numberCount = numbers.count();
       
   103 
       
   104     for ( int a=0; a<numberCount ;++a)
       
   105         {
       
   106         QString phoneNumber= numbers.at(a).number();
       
   107         contactDetail.addressList.append(phoneNumber);
       
   108         }
       
   109     
       
   110     QContactNickname nickName = contact.detail(QContactName::DefinitionName);
       
   111     contactDetail.nickName = nickName.nickname();
       
   112     
       
   113     //company name QContactOrganization
       
   114     contactDetail.companyName = contact.detail<QContactOrganization>().name();
       
   115     }
       
   116 
       
   117 // EOF