Implemented support of numbers in Person 74/70474/1
authorSergei Kobec <s.kobec@samsung.com>
Thu, 19 May 2016 08:26:18 +0000 (11:26 +0300)
committerSergei Kobec <s.kobec@samsung.com>
Thu, 19 May 2016 08:26:18 +0000 (11:26 +0300)
Change-Id: Ie46e33abf907481cfe6a820f6110feed358cae29
Signed-off-by: Sergei Kobec <s.kobec@samsung.com>
lib-contacts/inc/Contacts/List/Model/Person.h
lib-contacts/src/Contacts/List/Model/Person.cpp

index dba2600..b67588b 100644 (file)
@@ -128,9 +128,11 @@ namespace Contacts
                                const Utils::UniString &getSortValue() const;
                                void update(contacts_record_h record);
                                int updateName(contacts_record_h record);
+                               int updateNumber(int personId);
 
                                contacts_record_h m_Record;
                                contacts_record_h m_NameRecord;
+                               contacts_record_h m_NumberRecord;
 
                                Utils::UniString m_IndexLetter;
                                mutable Utils::UniString m_SortValue;
index 3ed522a..eb5e92b 100644 (file)
@@ -68,12 +68,23 @@ namespace
 
                return record;
        }
+
+       contacts_record_h getNumberRecord(int personId)
+       {
+               int id = 0;
+               contacts_record_h record = nullptr;
+               contacts_person_get_default_property(CONTACTS_PERSON_PROPERTY_NUMBER, personId, &id);
+               contacts_db_get_record(_contacts_number._uri, id, &record);
+
+               return record;
+       }
 }
 
 Person::Person(contacts_record_h record)
        : ContactData(TypePerson), m_Record(record)
 {
        m_NameRecord = getNameRecord(getContactId());
+       m_NumberRecord = getNumberRecord(getId());
        m_IndexLetter = getRecordStr(m_Record, _contacts_person.display_name_index);
 }
 
@@ -83,6 +94,7 @@ Person::~Person()
                delete number;
        }
        contacts_record_destroy(m_NameRecord, true);
+       contacts_record_destroy(m_NumberRecord, true);
        contacts_record_destroy(m_Record, true);
 }
 
@@ -98,7 +110,7 @@ const char *Person::getName() const
 
 const char *Person::getNumber() const
 {
-       return nullptr;
+       return getRecordStr(m_NumberRecord, _contacts_number.number);
 }
 
 const char *Person::getImagePath() const
@@ -166,6 +178,7 @@ void Person::update(contacts_record_h record)
        if (!compareRecordsStr(m_Record, record, _contacts_person.image_thumbnail_path)) {
                changes |= ChangedImage;
        }
+       changes |= updateNumber(getId());
 
        contacts_record_destroy(m_Record, true);
        m_Record = record;
@@ -190,3 +203,19 @@ int Person::updateName(contacts_record_h record)
 
        return changes;
 }
+
+
+int Person::updateNumber(int personId)
+{
+       contacts_record_h numberRecord = getNumberRecord(personId);
+
+       int changes = ChangedNone;
+       if (!compareRecordsStr(m_NumberRecord, numberRecord, _contacts_number.number)) {
+               changes |= ChangedNumber;
+       }
+
+       contacts_record_destroy(m_NumberRecord, true);
+       m_NumberRecord = numberRecord;
+
+       return changes;
+}