ecordova: Fixed contacts dlsym

This commit is contained in:
Felipe Magno de Almeida 2015-11-05 13:09:28 -02:00
parent 2339c34a8b
commit 6726a527fb
11 changed files with 264 additions and 280 deletions

View File

@ -4599,6 +4599,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORDOVA], [eo])
EFL_INTERNAL_DEPEND_PKG([ECORDOVA], [efl])
EFL_INTERNAL_DEPEND_PKG([ECORDOVA], [ecore])
EFL_OPTIONAL_DEPEND_PKG([ECORDOVA], [${want_tizen}], [TIZEN_CONTACTS_SERVICE], [contacts-service2])
EFL_OPTIONAL_DEPEND_PKG([ECORDOVA], [${want_tizen}], [TIZEN_INFO], [capi-system-info])
EFL_OPTIONAL_DEPEND_PKG([ECORDOVA], [${want_tizen}], [TIZEN_SENSOR], [capi-system-sensor])
EFL_OPTIONAL_DEPEND_PKG([ECORDOVA], [${want_tizen}], [TIZEN_LOCATION_MANAGER], [capi-location-manager])

View File

@ -41,7 +41,7 @@ _ecordova_contact_eo_base_constructor(Eo *obj, Ecordova_Contact_Data *pd)
pd->obj = obj;
pd->record = NULL;
int ret = contacts_record_create(_contacts_contact._uri, &pd->record);
int ret = contacts_record_create((*_contacts_contact)._uri, &pd->record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
pd->name = eo_add(ECORDOVA_CONTACTNAME_CLASS, NULL);
pd->phone_numbers = eina_array_new(1);
@ -86,7 +86,7 @@ _ecordova_contact_remove(Eo *obj, Ecordova_Contact_Data *pd)
goto on_error;
}
int ret = contacts_db_delete_record(_contacts_contact._uri, pd->id);
int ret = contacts_db_delete_record((*_contacts_contact)._uri, pd->id);
if (CONTACTS_ERROR_NONE != ret)
{
ERR("Error deleting record id: %d", pd->id);
@ -165,7 +165,7 @@ _ecordova_contact_save(Eo *obj, Ecordova_Contact_Data *pd)
// must get the inserted record so we can properly update it further
contacts_record_h contacts_record = NULL;
ret = contacts_db_get_record(_contacts_contact._uri, pd->id, &contacts_record);
ret = contacts_db_get_record((*_contacts_contact)._uri, pd->id, &contacts_record);
if (CONTACTS_ERROR_NONE != ret)
{
ERR("Error getting record: %d", ret);
@ -202,7 +202,7 @@ _ecordova_contact_display_name_get(Eo *obj EINA_UNUSED,
Ecordova_Contact_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_contact.display_name, &value);
get_str_p(pd->record, (*_contacts_contact).display_name, &value);
return value;
}
@ -211,7 +211,7 @@ _ecordova_contact_display_name_set(Eo *obj EINA_UNUSED,
Ecordova_Contact_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_contact.display_name, value);
set_str(pd->record, (*_contacts_contact).display_name, value);
}
static Ecordova_ContactName *
@ -235,7 +235,7 @@ _ecordova_contact_nickname_get(Eo *obj EINA_UNUSED, Ecordova_Contact_Data *pd)
int ret;
int count = 0;
ret = contacts_record_get_child_record_count(pd->record,
_contacts_contact.nickname,
(*_contacts_contact).nickname,
&count);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
@ -243,13 +243,13 @@ _ecordova_contact_nickname_get(Eo *obj EINA_UNUSED, Ecordova_Contact_Data *pd)
contacts_record_h child_record = NULL;
ret = contacts_record_get_child_record_at_p(pd->record,
_contacts_contact.nickname,
(*_contacts_contact).nickname,
0,
&child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
const char *value = NULL;
get_str_p(child_record, _contacts_nickname.name, &value);
get_str_p(child_record, (*_contacts_nickname).name, &value);
return value;
}
@ -260,17 +260,17 @@ _ecordova_contact_nickname_set(Eo *obj EINA_UNUSED,
{
int ret;
contacts_record_h child_record = NULL;
ret = contacts_record_create(_contacts_nickname._uri, &child_record);
ret = contacts_record_create((*_contacts_nickname)._uri, &child_record);
EINA_SAFETY_ON_FALSE_RETURN(CONTACTS_ERROR_NONE == ret);
if (!set_str(child_record, _contacts_nickname.name, value))
if (!set_str(child_record, (*_contacts_nickname).name, value))
goto on_error;
if (!clear_all_contact_record(pd->record, _contacts_contact.nickname))
if (!clear_all_contact_record(pd->record, (*_contacts_contact).nickname))
goto on_error;
ret = contacts_record_add_child_record(pd->record,
_contacts_contact.nickname,
(*_contacts_contact).nickname,
child_record);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error);
return;
@ -379,7 +379,7 @@ _ecordova_contact_note_get(Eo *obj EINA_UNUSED, Ecordova_Contact_Data *pd)
int ret;
int count = 0;
ret = contacts_record_get_child_record_count(pd->record,
_contacts_contact.note,
(*_contacts_contact).note,
&count);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
@ -388,13 +388,13 @@ _ecordova_contact_note_get(Eo *obj EINA_UNUSED, Ecordova_Contact_Data *pd)
contacts_record_h child_record = NULL;
ret = contacts_record_get_child_record_at_p(pd->record,
_contacts_contact.note,
(*_contacts_contact).note,
0,
&child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
const char *value = NULL;
get_str_p(child_record, _contacts_note.note, &value);
get_str_p(child_record, (*_contacts_note).note, &value);
return value;
}
@ -405,17 +405,17 @@ _ecordova_contact_note_set(Eo *obj EINA_UNUSED,
{
int ret;
contacts_record_h child_record = NULL;
ret = contacts_record_create(_contacts_note._uri, &child_record);
ret = contacts_record_create((*_contacts_note)._uri, &child_record);
EINA_SAFETY_ON_FALSE_RETURN(CONTACTS_ERROR_NONE == ret);
if (!set_str(child_record, _contacts_note.note, value))
if (!set_str(child_record, (*_contacts_note).note, value))
goto on_error;
if (!clear_all_contact_record(pd->record, _contacts_contact.note))
if (!clear_all_contact_record(pd->record, (*_contacts_contact).note))
goto on_error;
ret = contacts_record_add_child_record(pd->record,
_contacts_contact.note,
(*_contacts_contact).note,
child_record);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error);
return;
@ -706,75 +706,11 @@ _contactorganization_array_clear_id(Eina_Array *organizations)
}
}
static const Ecordova_ContactField_Metadata
_contact_number_metadata = {
.uri = &_contacts_number._uri,
.ids = {
[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &_contacts_contact.number,
[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &_contacts_number.id,
[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &_contacts_number.type,
[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &_contacts_number.label,
[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &_contacts_number.number,
[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &_contacts_number.is_default},
.type2label = ecordova_contactnumber_type2label,
.label2type = ecordova_contactnumber_label2type
};
static const Ecordova_ContactField_Metadata
_contact_email_metadata = {
.uri = &_contacts_email._uri,
.ids = {
[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &_contacts_contact.email,
[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &_contacts_email.id,
[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &_contacts_email.type,
[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &_contacts_email.label,
[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &_contacts_email.email,
[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &_contacts_email.is_default},
.type2label = ecordova_contactemail_type2label,
.label2type = ecordova_contactemail_label2type
};
static const Ecordova_ContactField_Metadata
_contact_messenger_metadata = {
.uri = &_contacts_messenger._uri,
.ids = {
[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &_contacts_contact.messenger,
[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &_contacts_messenger.id,
[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &_contacts_messenger.type,
[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &_contacts_messenger.label,
[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &_contacts_messenger.im_id,
[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = NULL},
.type2label = ecordova_contactmessenger_type2label,
.label2type = ecordova_contactmessenger_label2type
};
static const Ecordova_ContactField_Metadata
_contact_image_metadata = {
.uri = &_contacts_image._uri,
.ids = {
[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &_contacts_contact.image,
[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &_contacts_image.id,
[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &_contacts_image.type,
[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &_contacts_image.label,
[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &_contacts_image.path,
[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &_contacts_image.is_default},
.type2label = ecordova_contactimage_type2label,
.label2type = ecordova_contactimage_label2type
};
static const Ecordova_ContactField_Metadata
_contact_url_metadata = {
.uri = &_contacts_url._uri,
.ids = {
[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &_contacts_contact.url,
[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &_contacts_url.id,
[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &_contacts_url.type,
[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &_contacts_url.label,
[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &_contacts_url.url,
[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = NULL},
.type2label = ecordova_contacturl_type2label,
.label2type = ecordova_contacturl_label2type
};
extern Ecordova_ContactField_Metadata _contact_number_metadata;
extern Ecordova_ContactField_Metadata _contact_email_metadata;
extern Ecordova_ContactField_Metadata _contact_messenger_metadata;
extern Ecordova_ContactField_Metadata _contact_image_metadata;
extern Ecordova_ContactField_Metadata _contact_url_metadata;
Eina_Bool
ecordova_contact_import(Ecordova_Contact *obj,
@ -793,7 +729,7 @@ ecordova_contact_import(Ecordova_Contact *obj,
ret = contacts_record_clone(contacts_record, &pd->record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
ret = contacts_record_get_int(pd->record, _contacts_contact.id, &pd->id);
ret = contacts_record_get_int(pd->record, (*_contacts_contact).id, &pd->id);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
// name
@ -862,7 +798,7 @@ ecordova_contact_export(Ecordova_Contact *obj,
EINA_SAFETY_ON_NULL_RETURN_VAL(pd, EINA_FALSE);
// name
if (!clear_all_contact_record(contacts_record, _contacts_contact.name) ||
if (!clear_all_contact_record(contacts_record, (*_contacts_contact).name) ||
!ecordova_contactname_export(pd->name, contacts_record))
return EINA_FALSE;
@ -986,7 +922,7 @@ _ecordova_contactaddresses_import(Eina_Array *fields,
int ret;
int count = 0;
ret = contacts_record_get_child_record_count(contacts_record,
_contacts_contact.address,
(*_contacts_contact).address,
&count);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
@ -995,7 +931,7 @@ _ecordova_contactaddresses_import(Eina_Array *fields,
{
contacts_record_h child_record = NULL;
ret = contacts_record_get_child_record_at_p(contacts_record,
_contacts_contact.address,
(*_contacts_contact).address,
index,
&child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
@ -1018,7 +954,7 @@ static Eina_Bool
_ecordova_contactaddresses_export(Eina_Array *addresses,
contacts_record_h contacts_record)
{
if (!clear_all_contact_record(contacts_record, _contacts_contact.address))
if (!clear_all_contact_record(contacts_record, (*_contacts_contact).address))
return EINA_FALSE;
Ecordova_ContactAddress *address;
@ -1027,7 +963,7 @@ _ecordova_contactaddresses_export(Eina_Array *addresses,
EINA_ARRAY_ITER_NEXT(addresses, i, address, iterator)
{
contacts_record_h record = NULL;
int ret = contacts_record_create(_contacts_address._uri, &record);
int ret = contacts_record_create((*_contacts_address)._uri, &record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
if (!ecordova_contactaddress_export(address, record))
@ -1038,7 +974,7 @@ _ecordova_contactaddresses_export(Eina_Array *addresses,
}
ret = contacts_record_add_child_record(contacts_record,
_contacts_contact.address,
(*_contacts_contact).address,
record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
}
@ -1053,7 +989,7 @@ _ecordova_contactorganizations_import(Eina_Array *organizations,
int ret;
int count = 0;
ret = contacts_record_get_child_record_count(contacts_record,
_contacts_contact.company,
(*_contacts_contact).company,
&count);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
@ -1062,7 +998,7 @@ _ecordova_contactorganizations_import(Eina_Array *organizations,
{
contacts_record_h child_record = NULL;
ret = contacts_record_get_child_record_at_p(contacts_record,
_contacts_contact.company,
(*_contacts_contact).company,
index,
&child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
@ -1085,7 +1021,7 @@ static Eina_Bool
_ecordova_contactorganizations_export(Eina_Array *organizations,
contacts_record_h contacts_record)
{
if (!clear_all_contact_record(contacts_record, _contacts_contact.company))
if (!clear_all_contact_record(contacts_record, (*_contacts_contact).company))
return EINA_FALSE;
Ecordova_ContactOrganization *organization;
@ -1094,7 +1030,7 @@ _ecordova_contactorganizations_export(Eina_Array *organizations,
EINA_ARRAY_ITER_NEXT(organizations, i, organization, iterator)
{
contacts_record_h record = NULL;
int ret = contacts_record_create(_contacts_company._uri, &record);
int ret = contacts_record_create((*_contacts_company)._uri, &record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
if (!ecordova_contactaddress_export(organization, record))
@ -1105,7 +1041,7 @@ _ecordova_contactorganizations_export(Eina_Array *organizations,
}
ret = contacts_record_add_child_record(contacts_record,
_contacts_contact.company,
(*_contacts_contact).company,
record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
}

View File

@ -259,7 +259,7 @@ ecordova_contactaddress_export(Ecordova_ContactAddress *obj,
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
ret = contacts_record_add_child_record(contacts_record,
_contacts_contact.address,
(*_contacts_contact).address,
child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);

View File

@ -5,27 +5,6 @@
#include "ecordova_contactfield.eo.h"
#include "ecordova_contacts_service.h"
typedef enum _Ecordova_ContactField_Property
{
ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID,
ECORDOVA_CONTACTFIELD_PROPERTY_ID,
ECORDOVA_CONTACTFIELD_PROPERTY_TYPE,
ECORDOVA_CONTACTFIELD_PROPERTY_LABEL,
ECORDOVA_CONTACTFIELD_PROPERTY_VALUE,
ECORDOVA_CONTACTFIELD_PROPERTY_PREF,
ECORDOVA_CONTACTFIELD_PROPERTY_COUNT
} Ecordova_ContactField_Property;
typedef struct _Ecordova_ContactField_Metadata
{
const char * const *uri;
const unsigned int *ids[ECORDOVA_CONTACTFIELD_PROPERTY_COUNT];
char *(*type2label)(int type, const char *custom);
int(*label2type)(const char *label);
} Ecordova_ContactField_Metadata;
typedef struct _Ecordova_ContactField_Data Ecordova_ContactField_Data;
/**
* Ecordova.ContactField private data
*/

View File

@ -22,7 +22,7 @@ _ecordova_contactname_eo_base_constructor(Eo *obj,
pd->obj = obj;
pd->record = NULL;
int ret = contacts_record_create(_contacts_name._uri, &pd->record);
int ret = contacts_record_create((*_contacts_name)._uri, &pd->record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
@ -51,7 +51,7 @@ _ecordova_contactname_formatted_get(Eo *obj,
EINA_SAFETY_ON_NULL_RETURN_VAL(parent_pd, NULL);
const char *value = NULL;
get_str_p(parent_pd->record, _contacts_contact.display_name, &value);
get_str_p(parent_pd->record, (*_contacts_contact).display_name, &value);
return value;
}
@ -67,7 +67,7 @@ _ecordova_contactname_formatted_set(Eo *obj,
Ecordova_Contact_Data *parent_pd = eo_data_scope_get(parent, ECORDOVA_CONTACT_CLASS);
EINA_SAFETY_ON_NULL_RETURN(parent_pd);
set_str(parent_pd->record, _contacts_contact.display_name, value);
set_str(parent_pd->record, (*_contacts_contact).display_name, value);
}
static const char *
@ -75,7 +75,7 @@ _ecordova_contactname_family_name_get(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_name.last, &value);
get_str_p(pd->record, (*_contacts_name).last, &value);
return value;
}
@ -84,7 +84,7 @@ _ecordova_contactname_family_name_set(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_name.last, value);
set_str(pd->record, (*_contacts_name).last, value);
}
static const char *
@ -92,7 +92,7 @@ _ecordova_contactname_given_name_get(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_name.first, &value);
get_str_p(pd->record, (*_contacts_name).first, &value);
return value;
}
@ -101,7 +101,7 @@ _ecordova_contactname_given_name_set(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_name.first, value);
set_str(pd->record, (*_contacts_name).first, value);
}
static const char *
@ -109,7 +109,7 @@ _ecordova_contactname_middle_get(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_name.addition, &value);
get_str_p(pd->record, (*_contacts_name).addition, &value);
return value;
}
@ -118,7 +118,7 @@ _ecordova_contactname_middle_set(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_name.addition, value);
set_str(pd->record, (*_contacts_name).addition, value);
}
static const char *
@ -126,7 +126,7 @@ _ecordova_contactname_prefix_get(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_name.prefix, &value);
get_str_p(pd->record, (*_contacts_name).prefix, &value);
return value;
}
@ -135,7 +135,7 @@ _ecordova_contactname_prefix_set(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_name.prefix, value);
set_str(pd->record, (*_contacts_name).prefix, value);
}
static const char *
@ -143,7 +143,7 @@ _ecordova_contactname_suffix_get(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_name.suffix, &value);
get_str_p(pd->record, (*_contacts_name).suffix, &value);
return value;
}
@ -152,7 +152,7 @@ _ecordova_contactname_suffix_set(Eo *obj EINA_UNUSED,
Ecordova_ContactName_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_name.suffix, value);
set_str(pd->record, (*_contacts_name).suffix, value);
}
Eina_Bool
@ -169,14 +169,14 @@ ecordova_contactname_import(Ecordova_ContactName *obj,
int count = 0;
ret = contacts_record_get_child_record_count(contacts_record,
_contacts_contact.name,
(*_contacts_contact).name,
&count);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(count == 1, EINA_FALSE);
contacts_record_h contactname_record = NULL;
ret = contacts_record_get_child_record_at_p(contacts_record,
_contacts_contact.name,
(*_contacts_contact).name,
0,
&contactname_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
@ -206,7 +206,7 @@ ecordova_contactname_export(Ecordova_ContactName *obj,
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
ret = contacts_record_add_child_record(contacts_record,
_contacts_contact.name,
(*_contacts_contact).name,
contactname_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);

View File

@ -20,7 +20,7 @@ _ecordova_contactorganization_eo_base_constructor(Eo *obj,
pd->obj = obj;
pd->id = 0;
pd->record = NULL;
int ret = contacts_record_create(_contacts_company._uri, &pd->record);
int ret = contacts_record_create((*_contacts_company)._uri, &pd->record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, NULL);
return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
@ -66,7 +66,7 @@ _ecordova_contactorganization_type_get(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd)
{
int type;
if (!get_int(pd->record, _contacts_company.type, &type))
if (!get_int(pd->record, (*_contacts_company).type, &type))
return NULL;
switch (type)
@ -78,7 +78,7 @@ _ecordova_contactorganization_type_get(Eo *obj EINA_UNUSED,
default:
{
const char *custom = NULL;
get_str_p(pd->record, _contacts_company.label, &custom);
get_str_p(pd->record, (*_contacts_company).label, &custom);
return custom;
}
}
@ -97,9 +97,9 @@ _ecordova_contactorganization_type_set(Eo *obj EINA_UNUSED,
else
type = CONTACTS_COMPANY_TYPE_CUSTOM;
set_int(pd->record, _contacts_company.type, type);
set_int(pd->record, (*_contacts_company).type, type);
if (strlen(value) != 0)
set_str(pd->record, _contacts_company.label, value);
set_str(pd->record, (*_contacts_company).label, value);
}
static const char *
@ -107,7 +107,7 @@ _ecordova_contactorganization_name_get(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_company.name, &value);
get_str_p(pd->record, (*_contacts_company).name, &value);
return value;
}
@ -116,7 +116,7 @@ _ecordova_contactorganization_name_set(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_company.name, value);
set_str(pd->record, (*_contacts_company).name, value);
}
static const char *
@ -124,7 +124,7 @@ _ecordova_contactorganization_dept_get(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_company.department, &value);
get_str_p(pd->record, (*_contacts_company).department, &value);
return value;
}
@ -133,7 +133,7 @@ _ecordova_contactorganization_dept_set(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_company.department, value);
set_str(pd->record, (*_contacts_company).department, value);
}
static const char *
@ -141,7 +141,7 @@ _ecordova_contactorganization_title_get(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd)
{
const char *value = NULL;
get_str_p(pd->record, _contacts_company.job_title, &value);
get_str_p(pd->record, (*_contacts_company).job_title, &value);
return value;
}
@ -150,7 +150,7 @@ _ecordova_contactorganization_title_set(Eo *obj EINA_UNUSED,
Ecordova_ContactOrganization_Data *pd,
const char *value)
{
set_str(pd->record, _contacts_company.job_title, value);
set_str(pd->record, (*_contacts_company).job_title, value);
}
Eina_Bool
@ -168,7 +168,7 @@ ecordova_contactorganization_import(Ecordova_ContactOrganization *obj,
ret = contacts_record_clone(child_record, &pd->record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
return get_int(child_record, _contacts_company.id, &pd->id);
return get_int(child_record, (*_contacts_company).id, &pd->id);
}
Eina_Bool
@ -186,7 +186,7 @@ ecordova_contactorganization_export(Ecordova_ContactOrganization *obj,
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);
ret = contacts_record_add_child_record(contacts_record,
_contacts_contact.company,
(*_contacts_contact).company,
child_record);
EINA_SAFETY_ON_FALSE_RETURN_VAL(CONTACTS_ERROR_NONE == ret, EINA_FALSE);

View File

@ -73,7 +73,7 @@ _ecordova_contacts_find(Eo *obj,
const char *field = eina_list_data_get(fields);
if (strcmp("*", field) == 0)
{
int ret = contacts_db_get_all_records(_contacts_contact._uri, 0, 0, &list);
int ret = contacts_db_get_all_records((*_contacts_contact)._uri, 0, 0, &list);
if (CONTACTS_ERROR_NONE != ret)
{
ERR("%s returned %d", "contacts_db_get_all_records", ret);
@ -195,49 +195,49 @@ _get_records(const Eina_List *fields,
} Search_Metadata;
Search_Metadata search_metadata[] = {
{"id", _contacts_contact.id, INT_FIELD, SEARCH_CONTACT},
{"display_name", _contacts_contact.display_name, STRING_FIELD, SEARCH_CONTACT},
{"formatted", _contacts_contact.display_name, STRING_FIELD, SEARCH_CONTACT},
{"name", _contacts_contact.display_name, STRING_FIELD, SEARCH_CONTACT},
{"given_name", _contacts_name.first, STRING_FIELD, SEARCH_NAME},
{"family_name", _contacts_name.last, STRING_FIELD, SEARCH_NAME},
{"honorific_prefix", _contacts_name.prefix, STRING_FIELD, SEARCH_NAME},
{"honorific_suffix", _contacts_name.suffix, STRING_FIELD, SEARCH_NAME},
{"middle_name", _contacts_name.addition, STRING_FIELD, SEARCH_NAME},
{"country", _contacts_address.country, STRING_FIELD, SEARCH_ADDRESS},
{"locality", _contacts_address.locality, STRING_FIELD, SEARCH_ADDRESS},
{"postal_code", _contacts_address.postal_code, STRING_FIELD, SEARCH_ADDRESS},
{"region", _contacts_address.region, STRING_FIELD, SEARCH_ADDRESS},
{"street_address", _contacts_address.street, STRING_FIELD, SEARCH_ADDRESS},
{"phone_numbers", _contacts_number.number, STRING_FIELD, SEARCH_NUMBER},
{"emails", _contacts_email.email, STRING_FIELD, SEARCH_EMAIL},
{"urls", _contacts_url.url, STRING_FIELD, SEARCH_URL},
{"note", _contacts_note.note, STRING_FIELD, SEARCH_NOTE},
{"ims", _contacts_messenger.im_id, STRING_FIELD, SEARCH_MESSENGER},
{"nickname", _contacts_nickname.name, STRING_FIELD, SEARCH_NICKNAME},
{"department", _contacts_company.department, STRING_FIELD, SEARCH_COMPANY},
{"organizations", _contacts_company.name, STRING_FIELD, SEARCH_COMPANY},
{"title", _contacts_company.job_title, STRING_FIELD, SEARCH_COMPANY},
{"photos", _contacts_image.path, STRING_FIELD, SEARCH_IMAGE},
{"birthday", _contacts_event.date, BIRTHDAY_FIELD, SEARCH_EVENT},
{"id", (*_contacts_contact).id, INT_FIELD, SEARCH_CONTACT},
{"display_name", (*_contacts_contact).display_name, STRING_FIELD, SEARCH_CONTACT},
{"formatted", (*_contacts_contact).display_name, STRING_FIELD, SEARCH_CONTACT},
{"name", (*_contacts_contact).display_name, STRING_FIELD, SEARCH_CONTACT},
{"given_name", (*_contacts_name).first, STRING_FIELD, SEARCH_NAME},
{"family_name", (*_contacts_name).last, STRING_FIELD, SEARCH_NAME},
{"honorific_prefix", (*_contacts_name).prefix, STRING_FIELD, SEARCH_NAME},
{"honorific_suffix", (*_contacts_name).suffix, STRING_FIELD, SEARCH_NAME},
{"middle_name", (*_contacts_name).addition, STRING_FIELD, SEARCH_NAME},
{"country", (*_contacts_address).country, STRING_FIELD, SEARCH_ADDRESS},
{"locality", (*_contacts_address).locality, STRING_FIELD, SEARCH_ADDRESS},
{"postal_code", (*_contacts_address).postal_code, STRING_FIELD, SEARCH_ADDRESS},
{"region", (*_contacts_address).region, STRING_FIELD, SEARCH_ADDRESS},
{"street_address", (*_contacts_address).street, STRING_FIELD, SEARCH_ADDRESS},
{"phone_numbers", (*_contacts_number).number, STRING_FIELD, SEARCH_NUMBER},
{"emails", (*_contacts_email).email, STRING_FIELD, SEARCH_EMAIL},
{"urls", (*_contacts_url).url, STRING_FIELD, SEARCH_URL},
{"note", (*_contacts_note).note, STRING_FIELD, SEARCH_NOTE},
{"ims", (*_contacts_messenger).im_id, STRING_FIELD, SEARCH_MESSENGER},
{"nickname", (*_contacts_nickname).name, STRING_FIELD, SEARCH_NICKNAME},
{"department", (*_contacts_company).department, STRING_FIELD, SEARCH_COMPANY},
{"organizations", (*_contacts_company).name, STRING_FIELD, SEARCH_COMPANY},
{"title", (*_contacts_company).job_title, STRING_FIELD, SEARCH_COMPANY},
{"photos", (*_contacts_image).path, STRING_FIELD, SEARCH_IMAGE},
{"birthday", (*_contacts_event).date, BIRTHDAY_FIELD, SEARCH_EVENT},
{"addresses", 0, ADDRESSES_FIELD, SEARCH_ADDRESS},
// TODO: categories: "categories", ?
{0}
};
const char *uri[SEARCH_ID_COUNT] = {
[SEARCH_CONTACT] = _contacts_contact._uri,
[SEARCH_ADDRESS] = _contacts_address._uri,
[SEARCH_EVENT] = _contacts_event._uri,
[SEARCH_COMPANY] = _contacts_company._uri,
[SEARCH_EMAIL] = _contacts_email._uri,
[SEARCH_NAME] = _contacts_name._uri,
[SEARCH_NICKNAME] = _contacts_nickname._uri,
[SEARCH_MESSENGER] = _contacts_messenger._uri,
[SEARCH_NOTE] = _contacts_note._uri,
[SEARCH_NUMBER] = _contacts_number._uri,
[SEARCH_URL] = _contacts_url._uri,
[SEARCH_IMAGE] = _contacts_image._uri
[SEARCH_CONTACT] = (*_contacts_contact)._uri,
[SEARCH_ADDRESS] = (*_contacts_address)._uri,
[SEARCH_EVENT] = (*_contacts_event)._uri,
[SEARCH_COMPANY] = (*_contacts_company)._uri,
[SEARCH_EMAIL] = (*_contacts_email)._uri,
[SEARCH_NAME] = (*_contacts_name)._uri,
[SEARCH_NICKNAME] = (*_contacts_nickname)._uri,
[SEARCH_MESSENGER] = (*_contacts_messenger)._uri,
[SEARCH_NOTE] = (*_contacts_note)._uri,
[SEARCH_NUMBER] = (*_contacts_number)._uri,
[SEARCH_URL] = (*_contacts_url)._uri,
[SEARCH_IMAGE] = (*_contacts_image)._uri
};
contacts_filter_h filters[SEARCH_ID_COUNT] = {NULL};
@ -299,7 +299,7 @@ _get_records(const Eina_List *fields,
int ret = contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_AND);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_int(filter, _contacts_event.type, CONTACTS_MATCH_EQUAL, CONTACTS_EVENT_TYPE_BIRTH);
ret = contacts_filter_add_int(filter, (*_contacts_event).type, CONTACTS_MATCH_EQUAL, CONTACTS_EVENT_TYPE_BIRTH);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
break;
@ -309,31 +309,31 @@ _get_records(const Eina_List *fields,
filter = _filter_get(&filters[metadata->search_id], uri[metadata->search_id]);
if (!filter) goto on_error_1;
ret = contacts_filter_add_str(filter, _contacts_address.country, CONTACTS_MATCH_CONTAINS, options->filter);
ret = contacts_filter_add_str(filter, (*_contacts_address).country, CONTACTS_MATCH_CONTAINS, options->filter);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_str(filter, _contacts_address.region, CONTACTS_MATCH_CONTAINS, options->filter);
ret = contacts_filter_add_str(filter, (*_contacts_address).region, CONTACTS_MATCH_CONTAINS, options->filter);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_str(filter, _contacts_address.locality, CONTACTS_MATCH_CONTAINS, options->filter);
ret = contacts_filter_add_str(filter, (*_contacts_address).locality, CONTACTS_MATCH_CONTAINS, options->filter);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_str(filter, _contacts_address.street, CONTACTS_MATCH_CONTAINS, options->filter);
ret = contacts_filter_add_str(filter, (*_contacts_address).street, CONTACTS_MATCH_CONTAINS, options->filter);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
ret = contacts_filter_add_str(filter, _contacts_address.postal_code, CONTACTS_MATCH_CONTAINS, options->filter);
ret = contacts_filter_add_str(filter, (*_contacts_address).postal_code, CONTACTS_MATCH_CONTAINS, options->filter);
EINA_SAFETY_ON_FALSE_GOTO(CONTACTS_ERROR_NONE == ret, on_error_1);
break;
@ -360,7 +360,7 @@ _get_records(const Eina_List *fields,
}
int id;
Eina_Bool ok = get_int(record, _contacts_contact.id, &id);
Eina_Bool ok = get_int(record, (*_contacts_contact).id, &id);
EINA_SAFETY_ON_FALSE_GOTO(ok, on_error_2);
ok = eina_hash_add(contact_ids, &id, &id) == EINA_TRUE;
@ -453,18 +453,18 @@ _populate_list(contacts_list_h list,
return EINA_FALSE;
unsigned int contact_id[SEARCH_ID_COUNT] = {
[SEARCH_CONTACT] = _contacts_contact.id,
[SEARCH_ADDRESS] = _contacts_address.contact_id,
[SEARCH_EVENT] = _contacts_event.contact_id,
[SEARCH_COMPANY] = _contacts_company.contact_id,
[SEARCH_EMAIL] = _contacts_email.contact_id,
[SEARCH_NAME] = _contacts_name.contact_id,
[SEARCH_NICKNAME] = _contacts_nickname.contact_id,
[SEARCH_MESSENGER] = _contacts_messenger.contact_id,
[SEARCH_NOTE] = _contacts_note.contact_id,
[SEARCH_NUMBER] = _contacts_number.contact_id,
[SEARCH_URL] = _contacts_url.contact_id,
[SEARCH_IMAGE] = _contacts_image.contact_id
[SEARCH_CONTACT] = (*_contacts_contact).id,
[SEARCH_ADDRESS] = (*_contacts_address).contact_id,
[SEARCH_EVENT] = (*_contacts_event).contact_id,
[SEARCH_COMPANY] = (*_contacts_company).contact_id,
[SEARCH_EMAIL] = (*_contacts_email).contact_id,
[SEARCH_NAME] = (*_contacts_name).contact_id,
[SEARCH_NICKNAME] = (*_contacts_nickname).contact_id,
[SEARCH_MESSENGER] = (*_contacts_messenger).contact_id,
[SEARCH_NOTE] = (*_contacts_note).contact_id,
[SEARCH_NUMBER] = (*_contacts_number).contact_id,
[SEARCH_URL] = (*_contacts_url).contact_id,
[SEARCH_IMAGE] = (*_contacts_image).contact_id
};
int ret;

View File

@ -48,24 +48,31 @@ int (*contacts_query_create)(const char* view_uri, contacts_query_h* query) = 0;
int (*contacts_query_set_filter)(contacts_query_h query, contacts_filter_h filter) = 0;
int (*contacts_query_destroy)(contacts_query_h query) = 0;
_contacts_address_property_ids* _contacts_address = NULL;
_contacts_contact_property_ids* _contacts_contact = NULL;
_contacts_nickname_property_ids* _contacts_nickname = NULL;
_contacts_note_property_ids* _contacts_note = NULL;
_contacts_name_property_ids* _contacts_name = NULL;
_contacts_number_property_ids* _contacts_number = NULL;
_contacts_company_property_ids* _contacts_company = NULL;
_contacts_email_property_ids* _contacts_email = NULL;
_contacts_messenger_property_ids* _contacts_messenger = NULL;
_contacts_image_property_ids* _contacts_image = NULL;
_contacts_url_property_ids* _contacts_url = NULL;
_contacts_event_property_ids* _contacts_event = NULL;
const _contacts_address_property_ids* _contacts_address = NULL;
const _contacts_contact_property_ids* _contacts_contact = NULL;
const _contacts_nickname_property_ids* _contacts_nickname = NULL;
const _contacts_note_property_ids* _contacts_note = NULL;
const _contacts_name_property_ids* _contacts_name = NULL;
const _contacts_number_property_ids* _contacts_number = NULL;
const _contacts_company_property_ids* _contacts_company = NULL;
const _contacts_email_property_ids* _contacts_email = NULL;
const _contacts_messenger_property_ids* _contacts_messenger = NULL;
const _contacts_image_property_ids* _contacts_image = NULL;
const _contacts_url_property_ids* _contacts_url = NULL;
const _contacts_event_property_ids* _contacts_event = NULL;
static void* contacts_service_lib;
Ecordova_ContactField_Metadata _contact_number_metadata;
Ecordova_ContactField_Metadata _contact_email_metadata;
Ecordova_ContactField_Metadata _contact_messenger_metadata;
Ecordova_ContactField_Metadata _contact_image_metadata;
Ecordova_ContactField_Metadata _contact_url_metadata;
void ecordova_contacts_service_shutdown()
{
dlclose(contacts_service_lib);
if(contacts_service_lib)
dlclose(contacts_service_lib);
contacts_service_lib = NULL;
contacts_record_destroy = NULL;
contacts_record_clone = NULL;
@ -115,12 +122,24 @@ void ecordova_contacts_service_shutdown()
_contacts_event = NULL;
}
char * ecordova_contactnumber_type2label(int type, const char *custom);
int ecordova_contactnumber_label2type(const char *label);
char * ecordova_contactemail_type2label(int type, const char *custom);
int ecordova_contactemail_label2type(const char *label);
char * ecordova_contactmessenger_type2label(int type, const char *custom);
int ecordova_contactmessenger_label2type(const char *label);
char * ecordova_contactimage_type2label(int type, const char *custom);
int ecordova_contactimage_label2type(const char *label);
char * ecordova_contacturl_type2label(int type, const char *custom);
int ecordova_contacturl_label2type(const char *label);
void ecordova_contacts_service_init()
{
if(!contacts_service_lib)
{
contacts_service_lib = dlopen("contacts-service2.so", RTLD_NOW);
if(!contacts_service_lib)
goto on_error;
contacts_record_create = dlsym(contacts_service_lib, "contacts_record_create");
if(!contacts_record_create)
goto on_error;
@ -262,6 +281,56 @@ void ecordova_contacts_service_init()
_contacts_event = dlsym(contacts_service_lib, "_contacts_event");
if(!_contacts_event)
goto on_error;;
_contact_number_metadata.uri = &(*_contacts_number)._uri;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &(*_contacts_contact).number;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &(*_contacts_number).id;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &(*_contacts_number).type;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &(*_contacts_number).label;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &(*_contacts_number).number;
_contact_number_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &(*_contacts_number).is_default;
_contact_number_metadata.type2label = ecordova_contactnumber_type2label;
_contact_number_metadata.label2type = ecordova_contactnumber_label2type;
_contact_email_metadata.uri = &(*_contacts_email)._uri;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &(*_contacts_contact).email;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &(*_contacts_email).id;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &(*_contacts_email).type;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &(*_contacts_email).label;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &(*_contacts_email).email;
_contact_email_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &(*_contacts_email).is_default;
_contact_email_metadata.type2label = ecordova_contactemail_type2label;
_contact_email_metadata.label2type = ecordova_contactemail_label2type;
_contact_messenger_metadata.uri = &(*_contacts_messenger)._uri;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &(*_contacts_contact).messenger;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &(*_contacts_messenger).id;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &(*_contacts_messenger).type;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &(*_contacts_messenger).label;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &(*_contacts_messenger).im_id;
_contact_messenger_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = NULL;
_contact_messenger_metadata.type2label = ecordova_contactmessenger_type2label;
_contact_messenger_metadata.label2type = ecordova_contactmessenger_label2type;
_contact_image_metadata.uri = &(*_contacts_image)._uri;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &(*_contacts_contact).image;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &(*_contacts_image).id;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &(*_contacts_image).type;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &(*_contacts_image).label;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &(*_contacts_image).path;
_contact_image_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = &(*_contacts_image).is_default;
_contact_image_metadata.type2label = ecordova_contactimage_type2label;
_contact_image_metadata.label2type = ecordova_contactimage_label2type;
_contact_url_metadata.uri = &(*_contacts_url)._uri;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID] = &(*_contacts_contact).url;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_ID] = &(*_contacts_url).id;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_TYPE] = &(*_contacts_url).type;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_LABEL] = &(*_contacts_url).label;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_VALUE] = &(*_contacts_url).url;
_contact_url_metadata.ids[ECORDOVA_CONTACTFIELD_PROPERTY_PREF] = NULL;
_contact_url_metadata.type2label = ecordova_contacturl_type2label;
_contact_url_metadata.label2type = ecordova_contacturl_label2type;
}
return;

View File

@ -398,6 +398,28 @@ typedef enum
CONTACTS_ERROR_INTERNAL = TIZEN_ERROR_CONTACTS | 0xFF, /**< Implementation Error, Temporary Use */
} contacts_error_e;
typedef enum _Ecordova_ContactField_Property
{
ECORDOVA_CONTACTFIELD_PARENT_PROPERTY_ID,
ECORDOVA_CONTACTFIELD_PROPERTY_ID,
ECORDOVA_CONTACTFIELD_PROPERTY_TYPE,
ECORDOVA_CONTACTFIELD_PROPERTY_LABEL,
ECORDOVA_CONTACTFIELD_PROPERTY_VALUE,
ECORDOVA_CONTACTFIELD_PROPERTY_PREF,
ECORDOVA_CONTACTFIELD_PROPERTY_COUNT
} Ecordova_ContactField_Property;
typedef struct _Ecordova_ContactField_Metadata
{
const char * const *uri;
const unsigned int *ids[ECORDOVA_CONTACTFIELD_PROPERTY_COUNT];
char *(*type2label)(int type, const char *custom);
int(*label2type)(const char *label);
} Ecordova_ContactField_Metadata;
typedef struct _Ecordova_ContactField_Data Ecordova_ContactField_Data;
#endif

View File

@ -9,6 +9,7 @@
#include <check.h>
#ifdef HAVE_TIZEN_CONTACTS_SERVICE
#define CHECK(x) {int ret = x; ck_assert_int_eq(CONTACTS_ERROR_NONE, ret);}
static int _contact_id;
@ -23,34 +24,11 @@ _setup(void)
ck_assert_int_eq(ret, 1);
DBG("%s", "_setup");
/* CHECK(contacts_connect()); */
// TODO: delete all record in the database to be back to square 1 and make tests deterministic
DBG("%s", "_setup");
/* // create contact record */
/* contacts_record_h contact = NULL; */
/* CHECK(contacts_record_create(_contacts_contact._uri, &contact)); */
/* // add name */
/* contacts_record_h name = NULL; */
/* CHECK(contacts_record_create(_contacts_name._uri, &name)); */
/* CHECK(contacts_record_set_str(name, _contacts_name.first, _contact_name)); */
/* CHECK(contacts_record_add_child_record(contact, _contacts_contact.name, name)); */
/* CHECK(contacts_db_insert_record(contact, &_contact_id)); */
/* CHECK(contacts_record_destroy(contact, true)); */
}
static void
_teardown(void)
{
/* CHECK(contacts_db_delete_record(_contacts_contact._uri, _contact_id)); */
/* CHECK(contacts_disconnect()); */
int ret = ecordova_shutdown();
ck_assert_int_eq(ret, 0);
}
@ -254,41 +232,42 @@ ecordova_contacts_test(TCase *tc)
tcase_add_test(tc, find_by_id);
tcase_add_test(tc, find_by_name);
}
/* #else */
/* START_TEST(contacts_fail_load) */
/* { */
/* ecordova_init(); */
#else
START_TEST(contacts_fail_load)
{
ecordova_init();
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_Contacts *contacts = eo_add(ECORDOVA_CONTACTS_CLASS, NULL); */
/* ck_assert_ptr_eq(contacts, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_Contacts *contacts = eo_add(ECORDOVA_CONTACTS_CLASS, NULL);
ck_assert_ptr_eq(contacts, NULL);
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_Contact *contact = eo_add(ECORDOVA_CONTACT_CLASS, NULL); */
/* ck_assert_ptr_eq(contact, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_Contact *contact = eo_add(ECORDOVA_CONTACT_CLASS, NULL);
ck_assert_ptr_eq(contact, NULL);
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_ContactAddress *contact_address = eo_add(ECORDOVA_CONTACTADDRESS_CLASS, NULL); */
/* ck_assert_ptr_eq(contact_address, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_ContactAddress *contact_address = eo_add(ECORDOVA_CONTACTADDRESS_CLASS, NULL);
ck_assert_ptr_eq(contact_address, NULL);
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_ContactField *contact_field = eo_add(ECORDOVA_CONTACTFIELD_CLASS, NULL); */
/* ck_assert_ptr_eq(contact_field, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_ContactField *contact_field = eo_add(ECORDOVA_CONTACTFIELD_CLASS, NULL);
ck_assert_ptr_eq(contact_field, NULL);
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_ContactName *contact_name = eo_add(ECORDOVA_CONTACTNAME_CLASS, NULL); */
/* ck_assert_ptr_eq(contact_name, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_ContactName *contact_name = eo_add(ECORDOVA_CONTACTNAME_CLASS, NULL);
ck_assert_ptr_eq(contact_name, NULL);
/* fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr); */
/* Ecordova_ContactOrganization *contact_organization = eo_add(ECORDOVA_CONTACTORGANIZATION_CLASS, NULL); */
/* ck_assert_ptr_eq(contact_organization, NULL); */
fprintf(stderr, "contacts_fail_load %s %s:%d\n", __func__, __FILE__, __LINE__); fflush(stderr);
Ecordova_ContactOrganization *contact_organization = eo_add(ECORDOVA_CONTACTORGANIZATION_CLASS, NULL);
ck_assert_ptr_eq(contact_organization, NULL);
/* ecordova_shutdown(); */
/* } */
/* END_TEST */
ecordova_shutdown();
}
END_TEST
/* void */
/* ecordova_contacts_test(TCase *tc) */
/* { */
/* tcase_add_test(tc, contacts_fail_load); */
/* } */
void
ecordova_contacts_test(TCase *tc)
{
tcase_add_test(tc, contacts_fail_load);
}
#endif

View File

@ -33,11 +33,9 @@ _mediafile_new(const char *name,
{
return eo_add(ECORDOVA_MEDIAFILE_CLASS,
NULL,
ecordova_mediafile_constructor(name,
url,
type,
last_modified_date,
size));
ecordova_entry_name_set(name),
ecordova_entry_url_set(url),
ecordova_mediafile_type_set(type));
}
START_TEST(smoke)