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;
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);
}
delete number;
}
contacts_record_destroy(m_NameRecord, true);
+ contacts_record_destroy(m_NumberRecord, true);
contacts_record_destroy(m_Record, true);
}
const char *Person::getNumber() const
{
- return nullptr;
+ return getRecordStr(m_NumberRecord, _contacts_number.number);
}
const char *Person::getImagePath() const
if (!compareRecordsStr(m_Record, record, _contacts_person.image_thumbnail_path)) {
changes |= ChangedImage;
}
+ changes |= updateNumber(getId());
contacts_record_destroy(m_Record, true);
m_Record = 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;
+}