{
SysTryReturn(NID_SCL, filePath.IsEmpty() || File::IsFileExist(filePath), E_FILE_NOT_FOUND, E_FILE_NOT_FOUND, "[%s] The specified file is not found.", GetErrorMessage(E_FILE_NOT_FOUND));
+ int ret = CONTACTS_ERROR_NONE;
unsigned int count = 0;
contacts_record_h imageHandle = null;
contacts_record_get_child_record_count(__contactHandle, _contacts_contact.image, &count);
if (count > 0)
{
- contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &imageHandle);
-
if (!filePath.IsEmpty())
{
std::unique_ptr<char[]> pCharArray( _StringConverter::CopyToCharArrayN(filePath));
SysTryReturnResult(NID_SCL, pCharArray != null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+ bool isDefault = false;
+
+ for (unsigned int i = 0; i < count; i++)
+ {
+ contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, i, &imageHandle);
+ contacts_record_get_bool(imageHandle, _contacts_image.is_default, &isDefault);
+ if (isDefault)
+ {
+ break;
+ }
+ }
+ contacts_record_set_bool(imageHandle, _contacts_image.is_default, true);
contacts_record_set_str(imageHandle, _contacts_image.path, pCharArray.get());
}
else
{
- contacts_record_remove_child_record(__contactHandle, _contacts_contact.image, imageHandle);
- contacts_record_destroy(imageHandle, true);
+ while (true)
+ {
+ ret = contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &imageHandle);
+ if (ret != CONTACTS_ERROR_NONE)
+ {
+ break;
+ }
+
+ contacts_record_remove_child_record(__contactHandle, _contacts_contact.image, imageHandle);
+ contacts_record_destroy(imageHandle, true);
+ }
+
}
}
else
int ret = contacts_record_create(_contacts_image._uri, &imageHandle);
SysTryReturn(NID_SCL, ret == CONTACTS_ERROR_NONE, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+ contacts_record_set_bool(imageHandle, _contacts_image.is_default, true);
contacts_record_set_str(imageHandle, _contacts_image.path, pCharArray.get());
contacts_record_add_child_record(__contactHandle, _contacts_contact.image, imageHandle);
_ContactImpl::GetThumbnailPath(void) const
{
unsigned int count = 0;
+ bool isDefault = false;
contacts_record_get_child_record_count(__contactHandle, _contacts_contact.image, &count);
if (count == 0)
char* pCharValue = null;
contacts_record_h imageHandle = null;
- contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &imageHandle);
- contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+ for (unsigned int i = 0; i < count; i++)
+ {
+ contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, i, &imageHandle);
+ contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+
+ contacts_record_get_bool(imageHandle, _contacts_image.is_default, &isDefault);
+ if (isDefault)
+ {
+ break;
+ }
+ }
return String(pCharValue);
}
{
unsigned int count = 0;
char* pCharValue = null;
+ bool isDefault = false;
contacts_record_h imageHandle = null;
ClearLastResult();
return null;
}
- contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &imageHandle);
- contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+ for (unsigned int i = 0; i < count; i++)
+ {
+ contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, i, &imageHandle);
+ contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+
+ contacts_record_get_bool(imageHandle, _contacts_image.is_default, &isDefault);
+ if (isDefault)
+ {
+ break;
+ }
+ }
String thumbnailPath(pCharValue);
break;
case CONTACT_PROPERTY_ID_THUMBNAIL:
{
+ bool isDefault = false;
contacts_record_get_child_record_count(__contactHandle, _contacts_contact.image, &count);
if (count > 0)
{
contacts_record_h imageHandle = null;
- contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &imageHandle);
- contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+ for (unsigned int i = 0; i < count; i++)
+ {
+ contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, i, &imageHandle);
+ contacts_record_get_str_p(imageHandle, _contacts_image.path, &pCharValue);
+
+ contacts_record_get_bool(imageHandle, _contacts_image.is_default, &isDefault);
+ if (isDefault)
+ {
+ break;
+ }
+ }
}
}
value = pCharValue;
// image
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
contacts_record_get_child_record_count(__contactHandle, _contacts_contact.image, &count);
- if (count > 0)
+ for (i = 0; i < count; i++)
{
- contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, 0, &sourceRecordHandle);
+ contacts_record_get_child_record_at_p(__contactHandle, _contacts_contact.image, i, &sourceRecordHandle);
ret = contacts_record_create(_contacts_image._uri, &destRecordHandle);
SysTryReturn(NID_SCL, ret == CONTACTS_ERROR_NONE, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));