merge wrt-plugins-tizen_0.2.0-3
[platform/framework/web/wrt-plugins-tizen.git] / src / platform / Tizen / Contact / ContactSearchEngine.cpp
index 6fb68d2..8e9c16b 100755 (executable)
@@ -202,7 +202,7 @@ ContactArrayPtr ContactSearchEngine::getContactSearchResult()
 
                                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 )
@@ -214,7 +214,7 @@ ContactArrayPtr ContactSearchEngine::getContactSearchResult()
 
                                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 )
@@ -227,31 +227,14 @@ ContactArrayPtr ContactSearchEngine::getContactSearchResult()
                                        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;
                        }
@@ -346,14 +329,24 @@ ContactArrayPtr ContactSearchEngine::getContactSearchResult()
                        }
                        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))
@@ -616,6 +609,43 @@ void ContactSearchEngine::setPlatformAttrValue(Contact& contact, contact_attribu
 }
 #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)
@@ -782,6 +812,9 @@ void ContactSearchEngine::setEvent(ContactPtr& contact, char *date, char *type)
 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)