str = query_get_attribute(m_contact_query_service, CONTACT_RINGTONE, &err);
if( str )
- contact->setRingtoneURI(str);
+ contact->setRingtoneURI(std::string("file://") + str);
str = query_get_attribute(m_contact_query_service, CONTACT_NOTE, &err);
if( str )
str = query_get_attribute(m_contact_query_service, CONTACT_PHOTO_URI, &err);
if( str )
- contact->setPhotoURI(str);
+ contact->setPhotoURI(std::string("file://") + str);
str = query_get_attribute(m_contact_query_service, CONTACT_LAST_UPDATED_TIME_STAMP, &err);
if( str )
contact->setLastUpdated(time_stamp);
}
- ContactNamePtr contactName = contact->getName();
+ char *firstName = query_get_attribute(m_contact_query_service, NAME_FIRST, &err);
+ char *lastName = query_get_attribute(m_contact_query_service, NAME_LAST, &err);
+ char *middleName = query_get_attribute(m_contact_query_service, NAME_MIDDLE, &err);
+ char *displayName = query_get_attribute(m_contact_query_service, NAME_DISPLAY, &err);
+ char *prefix = query_get_attribute(m_contact_query_service, NAME_PREFIX, &err);
+ char *phoneticName = query_get_attribute(m_contact_query_service, NAME_PHONETIC, &err);
- str = query_get_attribute(m_contact_query_service, NAME_FIRST, &err);
- if( str )
- contactName->setFirstName(str);
-
- str = query_get_attribute(m_contact_query_service, NAME_LAST, &err);
- if( str )
- contactName->setLastName(str);
-
- str = query_get_attribute(m_contact_query_service, NAME_MIDDLE, &err);
- if( str )
- contactName->setMiddleName(str);
-
- str = query_get_attribute(m_contact_query_service, NAME_DISPLAY, &err);
- if( str )
- contactName->setDisplayName(str);
-
- str = query_get_attribute(m_contact_query_service, NAME_PREFIX, &err);
- if( str )
- contactName->setPrefix(str);
-
- str = query_get_attribute(m_contact_query_service, NAME_PHONETIC, &err);
- if( str )
- contactName->setPhoneticName(str);
+ setName(contact, prefix, firstName, middleName, lastName, phoneticName, displayName);
nameAlreadyChecked = true;
}
}
else if (!nicknameAlreadyChecked && (pattr == NICKNAME_NAME))
{
+ ContactNamePtr contactName(NULL);
+
+ if(!contact->getNameIsSet())
+ contactName = ContactNamePtr(new ContactName());
+ else
+ contactName = contact->getName();
+
do
{
char *nickname = query_get_attribute(m_contact_query_service, NICKNAME_NAME, &err);
if(nickname)
- contact->getName()->addNickname(string(nickname));
+ contactName->addNickname(string(nickname));
} while ( fetch_next_row(m_contact_query_service) == QUERY_SUCCESS );
+ if(!contact->getNameIsSet())
+ contact->setName(contactName);
+
nicknameAlreadyChecked = true;
}
else if (!categoryAlreadyChecked && (pattr == CATEGORY_INFO))
}
#endif
+void ContactSearchEngine::setName(ContactPtr& contact,
+ char *prefix, char *firstName, char *middleName,
+ char *lastName, char *phoneticName, char *displayName)
+{
+ if(prefix == NULL && firstName == NULL && middleName == NULL
+ && lastName == NULL && phoneticName == NULL && displayName == NULL)
+ return;
+
+ ContactNamePtr contactName(NULL);
+
+ if(!contact->getNameIsSet())
+ contactName = ContactNamePtr(new ContactName);
+ else
+ contactName = contact->getName();
+
+ if( prefix )
+ contactName->setFirstName(prefix);
+
+ if( firstName )
+ contactName->setLastName(firstName);
+
+ if( middleName )
+ contactName->setMiddleName(middleName);
+
+ if( lastName )
+ contactName->setDisplayName(lastName);
+
+ if( phoneticName )
+ contactName->setPrefix(phoneticName);
+
+ if( phoneticName )
+ contactName->setPhoneticName(phoneticName);
+
+ if(!contact->getNameIsSet())
+ contact->setName(contactName);
+}
+
void ContactSearchEngine::setPhoneNumber(ContactPtr& contact, char *number, char *type)
{
if(number == NULL)
void ContactSearchEngine::setOrganization(ContactPtr& contact,
char* org_name, char* org_dept, char* org_title, char* org_role)
{
+ if(org_name == NULL && org_dept == NULL && org_title == NULL && org_role == NULL)
+ return;
+
ContactOrganizationPtr org = ContactOrganizationPtr(new ContactOrganization());
if(org_name)