improve line coverage
[platform/core/pim/contacts-service.git] / common / ctsvc_view.c
1 /*
2  * Contacts Service
3  *
4  * Copyright (c) 2010 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19 #include "contacts.h"
20
21 #include "ctsvc_internal.h"
22 #include "ctsvc_view.h"
23
24 EXPORT_API const _contacts_address_book_property_ids _contacts_address_book = {
25         ._uri           = CTSVC_VIEW_URI_ADDRESSBOOK,
26         .id                     = CTSVC_PROPERTY_ADDRESSBOOK_ID,
27         .account_id     = CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,
28         .name           = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
29         .mode           = CTSVC_PROPERTY_ADDRESSBOOK_MODE
30 };
31
32 EXPORT_API const _contacts_group_property_ids _contacts_group = {
33         ._uri                   = CTSVC_VIEW_URI_GROUP,
34         .id                             = CTSVC_PROPERTY_GROUP_ID,
35         .address_book_id        = CTSVC_PROPERTY_GROUP_ADDRESSBOOK_ID,
36         .name                   = CTSVC_PROPERTY_GROUP_NAME,
37         .ringtone_path  = CTSVC_PROPERTY_GROUP_RINGTONE,
38         .image_path             = CTSVC_PROPERTY_GROUP_IMAGE,
39         .vibration              = CTSVC_PROPERTY_GROUP_VIBRATION,
40         .extra_data             = CTSVC_PROPERTY_GROUP_EXTRA_DATA,
41         .is_read_only   = CTSVC_PROPERTY_GROUP_IS_READ_ONLY,
42         .message_alert = CTSVC_PROPERTY_GROUP_MESSAGE_ALERT
43 };
44
45 EXPORT_API const _contacts_person_property_ids _contacts_person = {
46         ._uri                                   = CTSVC_VIEW_URI_PERSON,
47         .id                                             = CTSVC_PROPERTY_PERSON_ID,
48         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
49         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
50         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
51         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
52         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
53         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
54         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
55         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
56         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
57         .favorite_priority              = CTSVC_PROPERTY_PERSON_FAVORITE_PRIORITY,
58         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
59         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
60         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
61         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
62         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
63         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
64 };
65
66 EXPORT_API const _contacts_contact_property_ids _contacts_contact = {
67         ._uri                                   = CTSVC_VIEW_URI_CONTACT,
68         .id                                             = CTSVC_PROPERTY_CONTACT_ID,
69         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
70         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
71         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
72         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
73         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
74         .is_favorite                    = CTSVC_PROPERTY_CONTACT_IS_FAVORITE,
75         .has_phonenumber                = CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,
76         .has_email                              = CTSVC_PROPERTY_CONTACT_HAS_EMAIL,
77         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
78         .uid                                    = CTSVC_PROPERTY_CONTACT_UID,
79         .vibration                              = CTSVC_PROPERTY_CONTACT_VIBRATION,
80         .message_alert          = CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,
81         .changed_time                   = CTSVC_PROPERTY_CONTACT_CHANGED_TIME,
82         .link_mode              = CTSVC_PROPERTY_CONTACT_LINK_MODE,
83         .name                                   = CTSVC_PROPERTY_CONTACT_NAME,
84         .company                                = CTSVC_PROPERTY_CONTACT_COMPANY,
85         .note                                   = CTSVC_PROPERTY_CONTACT_NOTE,
86         .number                                 = CTSVC_PROPERTY_CONTACT_NUMBER,
87         .email                                  = CTSVC_PROPERTY_CONTACT_EMAIL,
88         .event                                  = CTSVC_PROPERTY_CONTACT_EVENT,
89         .messenger                              = CTSVC_PROPERTY_CONTACT_MESSENGER,
90         .address                                = CTSVC_PROPERTY_CONTACT_ADDRESS,
91         .url                                    = CTSVC_PROPERTY_CONTACT_URL,
92         .nickname                               = CTSVC_PROPERTY_CONTACT_NICKNAME,
93         .profile                                = CTSVC_PROPERTY_CONTACT_PROFILE,
94         .relationship                   = CTSVC_PROPERTY_CONTACT_RELATIONSHIP,
95         .image                                  = CTSVC_PROPERTY_CONTACT_IMAGE,
96         .group_relation                 = CTSVC_PROPERTY_CONTACT_GROUP_RELATION,
97         .extension                              = CTSVC_PROPERTY_CONTACT_EXTENSION,
98         .sip                                    = CTSVC_PROPERTY_CONTACT_SIP
99 };
100
101 EXPORT_API const _contacts_my_profile_property_ids _contacts_my_profile = {
102         ._uri                                   = CTSVC_VIEW_URI_MY_PROFILE,
103         .id                                             = CTSVC_PROPERTY_MY_PROFILE_ID,
104         .display_name                   = CTSVC_PROPERTY_MY_PROFILE_DISPLAY_NAME,
105         .address_book_id                = CTSVC_PROPERTY_MY_PROFILE_ADDRESSBOOK_ID,
106         .image_thumbnail_path   = CTSVC_PROPERTY_MY_PROFILE_IMAGE_THUMBNAIL,
107         .uid                                    = CTSVC_PROPERTY_MY_PROFILE_UID,
108         .changed_time                   = CTSVC_PROPERTY_MY_PROFILE_CHANGED_TIME,
109         .name                                   = CTSVC_PROPERTY_MY_PROFILE_NAME,
110         .company                                = CTSVC_PROPERTY_MY_PROFILE_COMPANY,
111         .note                                   = CTSVC_PROPERTY_MY_PROFILE_NOTE,
112         .number                                 = CTSVC_PROPERTY_MY_PROFILE_NUMBER,
113         .email                                  = CTSVC_PROPERTY_MY_PROFILE_EMAIL,
114         .event                                  = CTSVC_PROPERTY_MY_PROFILE_EVENT,
115         .messenger                              = CTSVC_PROPERTY_MY_PROFILE_MESSENGER,
116         .address                                = CTSVC_PROPERTY_MY_PROFILE_ADDRESS,
117         .url                                    = CTSVC_PROPERTY_MY_PROFILE_URL,
118         .nickname                               = CTSVC_PROPERTY_MY_PROFILE_NICKNAME,
119         .profile                                = CTSVC_PROPERTY_MY_PROFILE_PROFILE,
120         .relationship                   = CTSVC_PROPERTY_MY_PROFILE_RELATIONSHIP,
121         .image                                  = CTSVC_PROPERTY_MY_PROFILE_IMAGE,
122         .extension                              = CTSVC_PROPERTY_MY_PROFILE_EXTENSION,
123         .sip                                    = CTSVC_PROPERTY_MY_PROFILE_SIP
124 };
125
126 EXPORT_API const _contacts_simple_contact_property_ids _contacts_simple_contact = {
127         ._uri                                   = CTSVC_VIEW_URI_SIMPLE_CONTACT,
128         .id                                             = CTSVC_PROPERTY_CONTACT_ID,
129         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
130         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
131         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
132         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
133         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
134         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
135         .is_favorite                    = CTSVC_PROPERTY_CONTACT_IS_FAVORITE,
136         .has_phonenumber                = CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,
137         .has_email                              = CTSVC_PROPERTY_CONTACT_HAS_EMAIL,
138         .uid                                    = CTSVC_PROPERTY_CONTACT_UID,
139         .vibration                              = CTSVC_PROPERTY_CONTACT_VIBRATION,
140         .message_alert          = CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,
141         .changed_time                   = CTSVC_PROPERTY_CONTACT_CHANGED_TIME
142 };
143
144 EXPORT_API const _contacts_name_property_ids _contacts_name = {
145         ._uri                   = CTSVC_VIEW_URI_NAME,
146         .id                             = CTSVC_PROPERTY_NAME_ID,
147         .contact_id             = CTSVC_PROPERTY_NAME_CONTACT_ID,
148         .first                  = CTSVC_PROPERTY_NAME_FIRST,
149         .last                   = CTSVC_PROPERTY_NAME_LAST,
150         .addition               = CTSVC_PROPERTY_NAME_ADDITION,
151         .suffix                 = CTSVC_PROPERTY_NAME_SUFFIX,
152         .prefix                 = CTSVC_PROPERTY_NAME_PREFIX,
153         .phonetic_first = CTSVC_PROPERTY_NAME_PHONETIC_FIRST,
154         .phonetic_middle = CTSVC_PROPERTY_NAME_PHONETIC_MIDDLE,
155         .phonetic_last  = CTSVC_PROPERTY_NAME_PHONETIC_LAST
156 };
157
158 EXPORT_API const _contacts_number_property_ids _contacts_number = {
159         ._uri           = CTSVC_VIEW_URI_NUMBER,
160         .id                     = CTSVC_PROPERTY_NUMBER_ID,
161         .contact_id     = CTSVC_PROPERTY_NUMBER_CONTACT_ID,
162         .type           = CTSVC_PROPERTY_NUMBER_TYPE,
163         .label          = CTSVC_PROPERTY_NUMBER_LABEL,
164         .is_default     = CTSVC_PROPERTY_NUMBER_IS_DEFAULT,
165         .number         = CTSVC_PROPERTY_NUMBER_NUMBER,
166         .normalized_number = CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,
167         .cleaned_number = CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER,
168         .number_filter = CTSVC_PROPERTY_NUMBER_NUMBER_FILTER
169 };
170
171 EXPORT_API const _contacts_email_property_ids _contacts_email = {
172         ._uri           = CTSVC_VIEW_URI_EMAIL,
173         .id                     = CTSVC_PROPERTY_EMAIL_ID,
174         .contact_id     = CTSVC_PROPERTY_EMAIL_CONTACT_ID,
175         .type           = CTSVC_PROPERTY_EMAIL_TYPE,
176         .label          = CTSVC_PROPERTY_EMAIL_LABEL,
177         .is_default     = CTSVC_PROPERTY_EMAIL_IS_DEFAULT,
178         .email          = CTSVC_PROPERTY_EMAIL_EMAIL
179 };
180
181 EXPORT_API const _contacts_address_property_ids _contacts_address = {
182         ._uri                   = CTSVC_VIEW_URI_ADDRESS,
183         .id                             = CTSVC_PROPERTY_ADDRESS_ID,
184         .contact_id             = CTSVC_PROPERTY_ADDRESS_CONTACT_ID,
185         .type                   = CTSVC_PROPERTY_ADDRESS_TYPE,
186         .label                  = CTSVC_PROPERTY_ADDRESS_LABEL,
187         .postbox                = CTSVC_PROPERTY_ADDRESS_POSTBOX,
188         .postal_code    = CTSVC_PROPERTY_ADDRESS_POSTAL_CODE,
189         .region                 = CTSVC_PROPERTY_ADDRESS_REGION,
190         .locality               = CTSVC_PROPERTY_ADDRESS_LOCALITY,
191         .street                 = CTSVC_PROPERTY_ADDRESS_STREET,
192         .country                = CTSVC_PROPERTY_ADDRESS_COUNTRY,
193         .extended               = CTSVC_PROPERTY_ADDRESS_EXTENDED,
194         .is_default             = CTSVC_PROPERTY_ADDRESS_IS_DEFAULT
195 };
196
197 EXPORT_API const _contacts_url_property_ids _contacts_url = {
198         ._uri           = CTSVC_VIEW_URI_URL,
199         .id                     = CTSVC_PROPERTY_URL_ID,
200         .contact_id     = CTSVC_PROPERTY_URL_CONTACT_ID,
201         .type           = CTSVC_PROPERTY_URL_TYPE,
202         .label          = CTSVC_PROPERTY_URL_LABEL,
203         .url            = CTSVC_PROPERTY_URL_URL
204 };
205
206 EXPORT_API const _contacts_event_property_ids _contacts_event = {
207         ._uri           = CTSVC_VIEW_URI_EVENT,
208         .id                     = CTSVC_PROPERTY_EVENT_ID,
209         .contact_id     = CTSVC_PROPERTY_EVENT_CONTACT_ID,
210         .type           = CTSVC_PROPERTY_EVENT_TYPE,
211         .label          = CTSVC_PROPERTY_EVENT_LABEL,
212         .date           = CTSVC_PROPERTY_EVENT_DATE,
213         .is_leap_month = CTSVC_PROPERTY_EVENT_IS_LEAP_MONTH,
214         .calendar_type = CTSVC_PROPERTY_EVENT_CALENDAR_TYPE,
215 };
216
217 EXPORT_API const _contacts_company_property_ids _contacts_company = {
218         ._uri                   = CTSVC_VIEW_URI_COMPANY,
219         .id                             = CTSVC_PROPERTY_COMPANY_ID,
220         .contact_id             = CTSVC_PROPERTY_COMPANY_CONTACT_ID,
221         .type                   = CTSVC_PROPERTY_COMPANY_TYPE,
222         .label                  = CTSVC_PROPERTY_COMPANY_LABEL,
223         .name                   = CTSVC_PROPERTY_COMPANY_NAME,
224         .department             = CTSVC_PROPERTY_COMPANY_DEPARTMENT,
225         .job_title              = CTSVC_PROPERTY_COMPANY_JOB_TITLE,
226         .assistant_name = CTSVC_PROPERTY_COMPANY_ASSISTANT_NAME,
227         .role                   = CTSVC_PROPERTY_COMPANY_ROLE,
228         .logo                   = CTSVC_PROPERTY_COMPANY_LOGO,
229         .location               = CTSVC_PROPERTY_COMPANY_LOCATION,
230         .description    = CTSVC_PROPERTY_COMPANY_DESCRIPTION,
231         .phonetic_name  = CTSVC_PROPERTY_COMPANY_PHONETIC_NAME,
232 };
233
234 EXPORT_API const _contacts_nickname_property_ids _contacts_nickname = {
235         ._uri           = CTSVC_VIEW_URI_NICKNAME,
236         .id                     = CTSVC_PROPERTY_NICKNAME_ID,
237         .contact_id     = CTSVC_PROPERTY_NICKNAME_CONTACT_ID,
238         .name           = CTSVC_PROPERTY_NICKNAME_NAME,
239 };
240
241 EXPORT_API const _contacts_note_property_ids _contacts_note = {
242         ._uri           = CTSVC_VIEW_URI_NOTE,
243         .id                     = CTSVC_PROPERTY_NOTE_ID,
244         .contact_id     = CTSVC_PROPERTY_NOTE_CONTACT_ID,
245         .note           = CTSVC_PROPERTY_NOTE_NOTE
246 };
247
248 EXPORT_API const _contacts_profile_property_ids _contacts_profile = {
249         ._uri                   = CTSVC_VIEW_URI_PROFILE,
250         .id                     = CTSVC_PROPERTY_PROFILE_ID,
251         .uid                    = CTSVC_PROPERTY_PROFILE_UID,
252         .text                   = CTSVC_PROPERTY_PROFILE_TEXT,
253         .order          = CTSVC_PROPERTY_PROFILE_ORDER,
254         .service_operation      = CTSVC_PROPERTY_PROFILE_SERVICE_OPERATION,
255         .mime           = CTSVC_PROPERTY_PROFILE_MIME,
256         .app_id         = CTSVC_PROPERTY_PROFILE_APP_ID,
257         .uri                    = CTSVC_PROPERTY_PROFILE_URI,
258         .category               = CTSVC_PROPERTY_PROFILE_CATEGORY,
259         .extra_data     = CTSVC_PROPERTY_PROFILE_EXTRA_DATA,
260         .contact_id     = CTSVC_PROPERTY_PROFILE_CONTACT_ID
261 };
262
263 EXPORT_API const _contacts_group_relation_property_ids _contacts_group_relation = {
264         ._uri           = CTSVC_VIEW_URI_GROUP_RELATION,
265         .id                     = CTSVC_PROPERTY_GROUP_RELATION_ID,
266         .group_id       = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
267         .contact_id     = CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,
268         .name           = CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME
269 };
270
271 EXPORT_API const _contacts_relationship_property_ids _contacts_relationship = {
272         ._uri           = CTSVC_VIEW_URI_RELATIONSHIP,
273         .id                     = CTSVC_PROPERTY_RELATIONSHIP_ID,
274         .contact_id     = CTSVC_PROPERTY_RELATIONSHIP_CONTACT_ID,
275         .type           = CTSVC_PROPERTY_RELATIONSHIP_TYPE,
276         .label          = CTSVC_PROPERTY_RELATIONSHIP_LABEL,
277         .name           = CTSVC_PROPERTY_RELATIONSHIP_NAME,
278 };
279
280 EXPORT_API const _contacts_image_property_ids _contacts_image = {
281         ._uri           = CTSVC_VIEW_URI_IMAGE,
282         .id                     = CTSVC_PROPERTY_IMAGE_ID,
283         .contact_id     = CTSVC_PROPERTY_IMAGE_CONTACT_ID,
284         .type           = CTSVC_PROPERTY_IMAGE_TYPE,
285         .label          = CTSVC_PROPERTY_IMAGE_LABEL,
286         .path           = CTSVC_PROPERTY_IMAGE_PATH,
287         .is_default = CTSVC_PROPERTY_IMAGE_IS_DEFAULT,
288 };
289
290 EXPORT_API const _contacts_messenger_property_ids _contacts_messenger = {
291         ._uri           = CTSVC_VIEW_URI_MESSENGER,
292         .id                     = CTSVC_PROPERTY_MESSENGER_ID,
293         .contact_id     = CTSVC_PROPERTY_MESSENGER_CONTACT_ID,
294         .type           = CTSVC_PROPERTY_MESSENGER_TYPE,
295         .label          = CTSVC_PROPERTY_MESSENGER_LABEL,
296         .im_id          = CTSVC_PROPERTY_MESSENGER_IM_ID,
297 };
298
299 EXPORT_API const _contacts_sdn_property_ids _contacts_sdn = {
300         ._uri   = CTSVC_VIEW_URI_SDN,
301         .id             = CTSVC_PROPERTY_SDN_ID,
302         .name   = CTSVC_PROPERTY_SDN_NAME,
303         .number = CTSVC_PROPERTY_SDN_NUMBER,
304         .sim_slot_no    = CTSVC_PROPERTY_SDN_SIM_SLOT_NO,
305 };
306
307 EXPORT_API const _contacts_speeddial_property_ids _contacts_speeddial = {
308         ._uri                                   = CTSVC_VIEW_URI_SPEEDDIAL,
309         .speeddial_number               = CTSVC_PROPERTY_SPEEDDIAL_DIAL_NUMBER,
310         .number_id                              = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_ID,
311         .number                                 = CTSVC_PROPERTY_SPEEDDIAL_NUMBER,
312         .number_label                   = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_LABEL,
313         .number_type                    = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_TYPE,
314         .person_id                              = CTSVC_PROPERTY_SPEEDDIAL_PERSON_ID,
315         .display_name                   = CTSVC_PROPERTY_SPEEDDIAL_DISPLAY_NAME,
316         .image_thumbnail_path   = CTSVC_PROPERTY_SPEEDDIAL_IMAGE_THUMBNAIL,
317         .normalized_number      = CTSVC_PROPERTY_SPEEDDIAL_NORMALIZED_NUMBER,
318         .cleaned_number         = CTSVC_PROPERTY_SPEEDDIAL_CLEANED_NUMBER,
319         .number_filter          = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_FILTER,
320 };
321
322 EXPORT_API const _contacts_contact_updated_info_property_ids _contacts_contact_updated_info = {
323         ._uri                   = CTSVC_VIEW_URI_CONTACTS_UPDATED_INFO,
324         .contact_id             = CTSVC_PROPERTY_UPDATE_INFO_ID,
325         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
326         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
327         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
328         .image_changed  = CTSVC_PROPERTY_UPDATE_INFO_IMAGE_CHANGED,
329 };
330
331 EXPORT_API const _contacts_my_profile_updated_info_property_ids _contacts_my_profile_updated_info = {
332         ._uri                   = CTSVC_VIEW_URI_MY_PROFILE_UPDATED_INFO,
333         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
334         .last_changed_type      = CTSVC_PROPERTY_UPDATE_INFO_LAST_CHANGED_TYPE,
335         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
336 };
337
338 EXPORT_API const _contacts_group_updated_info_property_ids _contacts_group_updated_info = {
339         ._uri                   = CTSVC_VIEW_URI_GROUPS_UPDATED_INFO,
340         .group_id               = CTSVC_PROPERTY_UPDATE_INFO_ID,
341         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
342         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
343         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
344 };
345
346 EXPORT_API const _contacts_group_member_updated_info_property_ids _contacts_group_member_updated_info = {
347         ._uri                   = CTSVC_VIEW_URI_GROUPS_MEMBER_UPDATED_INFO,
348         .group_id               = CTSVC_PROPERTY_UPDATE_INFO_ID,
349         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
350         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
351 };
352
353 EXPORT_API const _contacts_grouprel_updated_info_property_ids _contacts_grouprel_updated_info = {
354         ._uri                   = CTSVC_VIEW_URI_GROUPRELS_UPDATED_INFO,
355         .group_id               = CTSVC_PROPERTY_GROUP_ID,
356         .contact_id             = CTSVC_PROPERTY_CONTACT_ID,
357         .address_book_id        = CTSVC_PROPERTY_ADDRESSBOOK_ID,
358         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
359         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
360 };
361
362 EXPORT_API const _contacts_activity_property_ids _contacts_activity = {
363         ._uri                   = CTSVC_VIEW_URI_ACTIVITY,
364         .id                             = CTSVC_PROPERTY_ACTIVITY_ID,
365         .contact_id             = CTSVC_PROPERTY_ACTIVITY_CONTACT_ID,
366         .source_name    = CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,
367         .status                 = CTSVC_PROPERTY_ACTIVITY_STATUS,
368         .timestamp              = CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,
369         .service_operation      = CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION,
370         .uri                            = CTSVC_PROPERTY_ACTIVITY_URI,
371         .photo                  = CTSVC_PROPERTY_ACTIVITY_ACTIVITY_PHOTO,
372 };
373
374 EXPORT_API const _contacts_activity_photo_property_ids _contacts_activity_photo = {
375         ._uri                   = CTSVC_VIEW_URI_ACTIVITY_PHOTO,
376         .id                             = CTSVC_PROPERTY_ACTIVITY_PHOTO_ID,
377         .activity_id    = CTSVC_PROPERTY_ACTIVITY_PHOTO_ACTIVITY_ID,
378         .photo_url              = CTSVC_PROPERTY_ACTIVITY_PHOTO_URL,
379         .sort_index             = CTSVC_PROPERTY_ACTIVITY_PHOTO_SORT_INDEX,
380 };
381
382 #ifdef ENABLE_LOG_FEATURE
383 EXPORT_API const _contacts_phone_log_property_ids _contacts_phone_log = {
384         ._uri                   = CTSVC_VIEW_URI_PHONELOG,
385         .id                             = CTSVC_PROPERTY_PHONELOG_ID,
386         .person_id              = CTSVC_PROPERTY_PHONELOG_PERSON_ID,
387         .address                = CTSVC_PROPERTY_PHONELOG_ADDRESS,
388         .log_time               = CTSVC_PROPERTY_PHONELOG_LOG_TIME,
389         .log_type               = CTSVC_PROPERTY_PHONELOG_LOG_TYPE,
390         .extra_data1    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,
391         .extra_data2    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,
392         .normalized_address = CTSVC_PROPERTY_PHONELOG_NORMALIZED_ADDRESS,
393         .cleaned_address = CTSVC_PROPERTY_PHONELOG_CLEANED_ADDRESS,
394         .address_filter = CTSVC_PROPERTY_PHONELOG_ADDRESS_FILTER,
395         .sim_slot_no            = CTSVC_PROPERTY_PHONELOG_SIM_SLOT_NO,
396 };
397 #endif /* ENABLE_LOG_FEATURE */
398
399 EXPORT_API const _contacts_extension_property_ids _contacts_extension = {
400         ._uri           = CTSVC_VIEW_URI_EXTENSION,
401         .id                     = CTSVC_PROPERTY_EXTENSION_ID,
402         .contact_id     = CTSVC_PROPERTY_EXTENSION_CONTACT_ID,
403         .data1          = CTSVC_PROPERTY_EXTENSION_DATA1,
404         .data2          = CTSVC_PROPERTY_EXTENSION_DATA2,
405         .data3          = CTSVC_PROPERTY_EXTENSION_DATA3,
406         .data4          = CTSVC_PROPERTY_EXTENSION_DATA4,
407         .data5          = CTSVC_PROPERTY_EXTENSION_DATA5,
408         .data6          = CTSVC_PROPERTY_EXTENSION_DATA6,
409         .data7          = CTSVC_PROPERTY_EXTENSION_DATA7,
410         .data8          = CTSVC_PROPERTY_EXTENSION_DATA8,
411         .data9          = CTSVC_PROPERTY_EXTENSION_DATA9,
412         .data10         = CTSVC_PROPERTY_EXTENSION_DATA10,
413         .data11         = CTSVC_PROPERTY_EXTENSION_DATA11,
414         .data12         = CTSVC_PROPERTY_EXTENSION_DATA12,
415 };
416
417 EXPORT_API const _contacts_person_contact_property_ids _contacts_person_contact = {
418         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_CONTACT,
419         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
420         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
421         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
422         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
423         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
424         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
425         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
426         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
427         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
428         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
429         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
430         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
431         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
432         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
433         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
434         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
435         .address_book_name              = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
436         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE,
437         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
438         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
439 };
440
441 EXPORT_API const _contacts_person_number_property_ids _contacts_person_number = {
442         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_NUMBER,
443         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
444         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
445         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
446         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
447         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
448         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
449         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
450         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
451         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
452         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
453         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
454         .number_id                      = CTSVC_PROPERTY_NUMBER_ID,
455         .type                           = CTSVC_PROPERTY_NUMBER_TYPE,
456         .label                          = CTSVC_PROPERTY_NUMBER_LABEL,
457         .is_primary_default     = CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,
458         .number                         = CTSVC_PROPERTY_NUMBER_NUMBER,
459         .number_filter          = CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,
460         .normalized_number = CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,
461         .cleaned_number = CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER,
462         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
463         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
464 };
465
466 EXPORT_API const _contacts_person_email_property_ids _contacts_person_email = {
467         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_EMAIL,
468         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
469         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
470         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
471         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
472         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
473         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
474         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
475         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
476         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
477         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
478         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
479         .email_id                       = CTSVC_PROPERTY_EMAIL_ID,
480         .type                           = CTSVC_PROPERTY_EMAIL_TYPE,
481         .label                          = CTSVC_PROPERTY_EMAIL_LABEL,
482         .is_primary_default     = CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,
483         .email                          = CTSVC_PROPERTY_EMAIL_EMAIL,
484         .snippet_type           = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
485         .snippet_string         = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
486 };
487
488 EXPORT_API const _contacts_person_usage_property_ids _contacts_person_usage = {
489         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_USAGE,
490         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
491         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
492         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
493         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
494         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
495         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
496         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
497         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
498         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
499         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
500         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
501         .usage_type                             = CTSVC_PROPERTY_PERSON_USAGE_TYPE,
502         .times_used                             = CTSVC_PROPERTY_PERSON_TIMES_USED
503 };
504
505 EXPORT_API const _contacts_person_grouprel_property_ids _contacts_person_grouprel = {
506         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP,
507         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
508         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
509         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
510         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
511         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
512         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
513         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
514         .message_alert                  = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
515         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
516         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
517         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
518         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
519         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
520         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
521         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
522         .group_id               = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
523         .address_book_name              = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
524         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE,
525         .contact_id                             = CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,
526         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
527         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
528 };
529
530 EXPORT_API const _contacts_person_group_not_assigned_property_ids _contacts_person_group_not_assigned = {
531         ._uri                                           = CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP_NOT_ASSIGNED,
532         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
533         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
534         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
535         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
536         .ringtone_path                          = CTSVC_PROPERTY_PERSON_RINGTONE,
537         .image_thumbnail_path           = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
538         .vibration                                      = CTSVC_PROPERTY_PERSON_VIBRATION,
539         .message_alert                  = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
540         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
541         .is_favorite                            = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
542         .has_phonenumber                        = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
543         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
544         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
545         .linked_address_book_ids        = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
546         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
547         .address_book_id                        = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
548         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE,
549         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
550         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
551 };
552
553 EXPORT_API const _contacts_person_group_assigned_property_ids _contacts_person_group_assigned = {
554         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP_ASSIGNED,
555         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
556         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
557         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
558         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
559         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
560         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
561         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
562         .message_alert                  = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
563         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
564         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
565         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
566         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
567         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
568         .linked_address_book_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
569         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
570         .group_id                               = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
571         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE,
572         .contact_id                             = CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,
573         .snippet_type                   = CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,
574         .snippet_string                 = CTSVC_PROPERTY_PERSON_SNIPPET_STRING
575 };
576
577 #ifdef ENABLE_LOG_FEATURE
578 EXPORT_API const _contacts_person_phone_log_property_ids _contacts_person_phone_log = {
579         ._uri                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_PHONELOG,
580         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
581         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
582         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
583         .log_id = CTSVC_PROPERTY_PHONELOG_ID,
584         .address                = CTSVC_PROPERTY_PHONELOG_ADDRESS,
585         .address_type   = CTSVC_PROPERTY_DATA_DATA1,
586         .log_time               = CTSVC_PROPERTY_PHONELOG_LOG_TIME,
587         .log_type               = CTSVC_PROPERTY_PHONELOG_LOG_TYPE,
588         .extra_data1    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,
589         .extra_data2    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,
590         .normalized_address = CTSVC_PROPERTY_PHONELOG_NORMALIZED_ADDRESS,
591         .cleaned_address = CTSVC_PROPERTY_PHONELOG_CLEANED_ADDRESS,
592         .address_filter = CTSVC_PROPERTY_PHONELOG_CLEANED_ADDRESS,
593         .sim_slot_no            = CTSVC_PROPERTY_PHONELOG_SIM_SLOT_NO,
594 };
595 #endif /* ENABLE_LOG_FEATURE */
596
597 EXPORT_API const _contacts_contact_number_property_ids _contacts_contact_number = {
598         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_NUMBER,
599         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
600         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
601         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
602         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
603         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
604         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
605         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
606         .number_id                      = CTSVC_PROPERTY_NUMBER_ID,
607         .type                           = CTSVC_PROPERTY_NUMBER_TYPE,
608         .label                          = CTSVC_PROPERTY_NUMBER_LABEL,
609         .is_default                     = CTSVC_PROPERTY_NUMBER_IS_DEFAULT,
610         .number                         = CTSVC_PROPERTY_NUMBER_NUMBER,
611         .number_filter          = CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,
612         .normalized_number = CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,
613         .cleaned_number = CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER
614 };
615
616 EXPORT_API const _contacts_contact_email_property_ids _contacts_contact_email = {
617         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_EMAIL,
618         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
619         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
620         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
621         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
622         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
623         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
624         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
625         .email_id                       = CTSVC_PROPERTY_EMAIL_ID,
626         .type                           = CTSVC_PROPERTY_EMAIL_TYPE,
627         .label                          = CTSVC_PROPERTY_EMAIL_LABEL,
628         .is_default                     = CTSVC_PROPERTY_EMAIL_IS_DEFAULT,
629         .email                          = CTSVC_PROPERTY_EMAIL_EMAIL
630 };
631
632 EXPORT_API const _contacts_contact_grouprel_property_ids _contacts_contact_grouprel = {
633         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_GROUP,
634         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
635         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
636         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
637         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
638         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
639         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
640         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
641         .group_id               = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
642         .group_name             = CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME
643 };
644
645 EXPORT_API const _contacts_contact_activity_property_ids _contacts_contact_activity = {
646         ._uri                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_ACTIVITY,
647         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
648         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
649         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
650         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
651         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
652         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
653         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
654         .activity_id    = CTSVC_PROPERTY_ACTIVITY_ID,
655         .source_name    = CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,
656         .status                 = CTSVC_PROPERTY_ACTIVITY_STATUS,
657         .timestamp              = CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,
658         .service_operation      = CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION,
659         .uri                            = CTSVC_PROPERTY_ACTIVITY_URI,
660         .account_id             = CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,
661 };
662
663 EXPORT_API const _contacts_sip_property_ids _contacts_sip = {
664         ._uri           = CTSVC_VIEW_URI_SIP,
665         .id         = CTSVC_PROPERTY_SIP_ID,
666         .contact_id     = CTSVC_PROPERTY_SIP_CONTACT_ID,
667         .type           = CTSVC_PROPERTY_SIP_TYPE,
668         .label          = CTSVC_PROPERTY_SIP_LABEL,
669         .address    = CTSVC_PROPERTY_SIP_ADDRESS,
670 };
671
672 #ifdef ENABLE_LOG_FEATURE
673 EXPORT_API const _contacts_phone_log_stat_property_ids _contacts_phone_log_stat = {
674         ._uri           = CTSVC_VIEW_URI_READ_ONLY_PHONELOG_STAT,
675         .log_count      = CTSVC_PROPERTY_PHONELOG_STAT_LOG_COUNT,
676         .log_type       = CTSVC_PROPERTY_PHONELOG_STAT_LOG_TYPE,
677         .sim_slot_no = CTSVC_PROPERTY_PHONELOG_STAT_SIM_SLOT_NO,
678 };
679 #endif /* ENABLE_LOG_FEATURE */
680
681 const property_info_s __property_addressbook[] = {
682         {CTSVC_PROPERTY_ADDRESSBOOK_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
683         {CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID, CTSVC_SEARCH_PROPERTY_ALL,      "account_id"},
684         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
685         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,               CTSVC_SEARCH_PROPERTY_ALL,      "mode"},
686 };
687
688 const property_info_s __property_sdn[] = {   /* _contacts_sdn */
689         {CTSVC_PROPERTY_SDN_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "id"},
690         {CTSVC_PROPERTY_SDN_NAME,               CTSVC_SEARCH_PROPERTY_ALL,      "name"},
691         {CTSVC_PROPERTY_SDN_NUMBER,     CTSVC_SEARCH_PROPERTY_ALL,      "number"},
692         {CTSVC_PROPERTY_SDN_SIM_SLOT_NO,        CTSVC_SEARCH_PROPERTY_ALL,      "sim_slot_no"},
693 };
694
695 const property_info_s __property_group[] = {
696         {CTSVC_PROPERTY_GROUP_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
697         {CTSVC_PROPERTY_GROUP_ADDRESSBOOK_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
698         {CTSVC_PROPERTY_GROUP_NAME,                     CTSVC_SEARCH_PROPERTY_ALL,      "group_name"},
699         {CTSVC_PROPERTY_GROUP_RINGTONE,         CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
700         {CTSVC_PROPERTY_GROUP_IMAGE,                    CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
701         {CTSVC_PROPERTY_GROUP_VIBRATION,                CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
702         {CTSVC_PROPERTY_GROUP_EXTRA_DATA,               CTSVC_SEARCH_PROPERTY_ALL,      "extra_data"},
703         {CTSVC_PROPERTY_GROUP_IS_READ_ONLY,     CTSVC_SEARCH_PROPERTY_ALL,      "is_read_only"},
704         {CTSVC_PROPERTY_GROUP_MESSAGE_ALERT,    CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
705 };
706
707 const property_info_s __property_person[] = {
708         {CTSVC_PROPERTY_PERSON_ID,                                      CTSVC_SEARCH_PROPERTY_ALL, "person_id"},
709         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,            CTSVC_SEARCH_PROPERTY_ALL, NULL},         /* "dispaly_name" or "reverse_dispaly_name" */
710         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,      CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
711         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID, CTSVC_SEARCH_PROPERTY_ALL, "name_contact_id"},
712         {CTSVC_PROPERTY_PERSON_RINGTONE,                        CTSVC_SEARCH_PROPERTY_ALL, "ringtone_path"},
713         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL, CTSVC_SEARCH_PROPERTY_ALL, "image_thumbnail_path"},
714         {CTSVC_PROPERTY_PERSON_VIBRATION,               CTSVC_SEARCH_PROPERTY_ALL, "vibration"},
715         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,   CTSVC_SEARCH_PROPERTY_ALL, "message_alert"},
716         {CTSVC_PROPERTY_PERSON_STATUS,                  CTSVC_SEARCH_PROPERTY_ALL, "status"},
717         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,             CTSVC_SEARCH_PROPERTY_ALL, "is_favorite"},
718         {CTSVC_PROPERTY_PERSON_FAVORITE_PRIORITY,       CTSVC_SEARCH_PROPERTY_ALL, "favorite_prio"},
719         {CTSVC_PROPERTY_PERSON_LINK_COUNT,              CTSVC_SEARCH_PROPERTY_ALL,      "link_count"},
720         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS, CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
721         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER, CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
722         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
723         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
724         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
725 };
726
727 const property_info_s __property_simple_contact[] = {
728         {CTSVC_PROPERTY_CONTACT_ID,                             CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
729         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,   CTSVC_SEARCH_PROPERTY_ALL,      NULL},            /* "dispaly_name" or "reverse_dispaly_name" */
730         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID, CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
731         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID, CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
732         {CTSVC_PROPERTY_CONTACT_RINGTONE,               CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
733         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL, CTSVC_SEARCH_PROPERTY_ALL,     "image_thumbnail_path"},
734         {CTSVC_PROPERTY_CONTACT_IS_FAVORITE,            CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
735         {CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER, CTSVC_SEARCH_PROPERTY_ALL,     "has_phonenumber"},
736         {CTSVC_PROPERTY_CONTACT_HAS_EMAIL,              CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
737         {CTSVC_PROPERTY_CONTACT_PERSON_ID,              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
738         {CTSVC_PROPERTY_CONTACT_UID,                            CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
739         {CTSVC_PROPERTY_CONTACT_VIBRATION,              CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
740         {CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,          CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
741         {CTSVC_PROPERTY_CONTACT_CHANGED_TIME,   CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
742 };
743
744 const property_info_s __property_name[] = {
745         {CTSVC_PROPERTY_NAME_ID,                                        CTSVC_SEARCH_PROPERTY_ALL,      "id"},
746         {CTSVC_PROPERTY_NAME_CONTACT_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
747         {CTSVC_PROPERTY_NAME_FIRST,                             CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
748         {CTSVC_PROPERTY_NAME_LAST,                                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
749         {CTSVC_PROPERTY_NAME_ADDITION,                  CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
750         {CTSVC_PROPERTY_NAME_PREFIX,                            CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
751         {CTSVC_PROPERTY_NAME_SUFFIX,                            CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
752         {CTSVC_PROPERTY_NAME_PHONETIC_FIRST,    CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
753         {CTSVC_PROPERTY_NAME_PHONETIC_MIDDLE,   CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
754         {CTSVC_PROPERTY_NAME_PHONETIC_LAST,             CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
755 };
756
757 const property_info_s __property_number[] = {   /* _contacts_number */
758         {CTSVC_PROPERTY_NUMBER_ID,                              CTSVC_SEARCH_PROPERTY_ALL,      "id"},
759         {CTSVC_PROPERTY_NUMBER_CONTACT_ID,      CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
760         {CTSVC_PROPERTY_NUMBER_TYPE,                    CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
761         {CTSVC_PROPERTY_NUMBER_LABEL,                   CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
762         {CTSVC_PROPERTY_NUMBER_IS_DEFAULT,      CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
763         {CTSVC_PROPERTY_NUMBER_NUMBER,          CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
764         {CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,       CTSVC_SEARCH_PROPERTY_FILTER,   "data5"},
765         {CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER,  CTSVC_SEARCH_PROPERTY_FILTER,   "data6"},
766         {CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,   CTSVC_SEARCH_PROPERTY_FILTER,   "data4"},
767 };
768
769 const property_info_s __property_email[] = {
770         {CTSVC_PROPERTY_EMAIL_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
771         {CTSVC_PROPERTY_EMAIL_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
772         {CTSVC_PROPERTY_EMAIL_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
773         {CTSVC_PROPERTY_EMAIL_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
774         {CTSVC_PROPERTY_EMAIL_IS_DEFAULT,       CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
775         {CTSVC_PROPERTY_EMAIL_EMAIL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
776 };
777
778 const property_info_s __property_address[] = {
779         {CTSVC_PROPERTY_ADDRESS_ID,                     CTSVC_SEARCH_PROPERTY_ALL,      "id"},
780         {CTSVC_PROPERTY_ADDRESS_CONTACT_ID,     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
781         {CTSVC_PROPERTY_ADDRESS_TYPE,                   CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
782         {CTSVC_PROPERTY_ADDRESS_LABEL,          CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
783         {CTSVC_PROPERTY_ADDRESS_POSTBOX,                CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
784         {CTSVC_PROPERTY_ADDRESS_POSTAL_CODE, CTSVC_SEARCH_PROPERTY_ALL, "data4"},
785         {CTSVC_PROPERTY_ADDRESS_REGION,         CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
786         {CTSVC_PROPERTY_ADDRESS_LOCALITY,       CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
787         {CTSVC_PROPERTY_ADDRESS_STREET,         CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
788         {CTSVC_PROPERTY_ADDRESS_COUNTRY,                CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
789         {CTSVC_PROPERTY_ADDRESS_EXTENDED,       CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
790         {CTSVC_PROPERTY_ADDRESS_IS_DEFAULT,     CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
791 };
792
793 const property_info_s __property_url[] = {
794         {CTSVC_PROPERTY_URL_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "id"},
795         {CTSVC_PROPERTY_URL_CONTACT_ID, CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
796         {CTSVC_PROPERTY_URL_TYPE,                       CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
797         {CTSVC_PROPERTY_URL_LABEL,                      CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
798         {CTSVC_PROPERTY_URL_URL,                        CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
799 };
800
801 const property_info_s __property_event[] = {
802         {CTSVC_PROPERTY_EVENT_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
803         {CTSVC_PROPERTY_EVENT_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
804         {CTSVC_PROPERTY_EVENT_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
805         {CTSVC_PROPERTY_EVENT_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
806         {CTSVC_PROPERTY_EVENT_DATE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
807         {CTSVC_PROPERTY_EVENT_CALENDAR_TYPE,    CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
808         {CTSVC_PROPERTY_EVENT_IS_LEAP_MONTH,    CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
809 };
810
811 const property_info_s __property_group_relation[] = {
812         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
813         {CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,      CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
814         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME, CTSVC_SEARCH_PROPERTY_ALL,   "group_name"},
815 };
816
817 const property_info_s __property_relationship[] = {
818         {CTSVC_PROPERTY_RELATIONSHIP_ID,                                CTSVC_SEARCH_PROPERTY_ALL,      "id"},
819         {CTSVC_PROPERTY_RELATIONSHIP_CONTACT_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
820         {CTSVC_PROPERTY_RELATIONSHIP_TYPE,                      CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
821         {CTSVC_PROPERTY_RELATIONSHIP_LABEL,                     CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
822         {CTSVC_PROPERTY_RELATIONSHIP_NAME,                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
823 };
824
825 const property_info_s __property_image[] = {
826         {CTSVC_PROPERTY_IMAGE_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
827         {CTSVC_PROPERTY_IMAGE_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
828         {CTSVC_PROPERTY_IMAGE_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
829         {CTSVC_PROPERTY_IMAGE_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
830         {CTSVC_PROPERTY_IMAGE_PATH,                     CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
831         {CTSVC_PROPERTY_IMAGE_IS_DEFAULT,       CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
832 };
833
834 const property_info_s __property_company[] = {
835         {CTSVC_PROPERTY_COMPANY_ID,                             CTSVC_SEARCH_PROPERTY_ALL,      "id"},
836         {CTSVC_PROPERTY_COMPANY_CONTACT_ID,             CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
837         {CTSVC_PROPERTY_COMPANY_TYPE,                           CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
838         {CTSVC_PROPERTY_COMPANY_LABEL,                  CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
839         {CTSVC_PROPERTY_COMPANY_NAME,                           CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
840         {CTSVC_PROPERTY_COMPANY_DEPARTMENT,             CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
841         {CTSVC_PROPERTY_COMPANY_JOB_TITLE,              CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
842         {CTSVC_PROPERTY_COMPANY_ROLE,                   CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
843         {CTSVC_PROPERTY_COMPANY_ASSISTANT_NAME, CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
844         {CTSVC_PROPERTY_COMPANY_LOGO,                           CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
845         {CTSVC_PROPERTY_COMPANY_LOCATION,               CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
846         {CTSVC_PROPERTY_COMPANY_DESCRIPTION,    CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
847         {CTSVC_PROPERTY_COMPANY_PHONETIC_NAME,  CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
848 };
849
850 const property_info_s __property_nickname[] = {
851         {CTSVC_PROPERTY_NICKNAME_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id",},
852         {CTSVC_PROPERTY_NICKNAME_CONTACT_ID,    CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
853         {CTSVC_PROPERTY_NICKNAME_NAME,                  CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
854 };
855
856 const property_info_s __property_messenger[] = {
857         {CTSVC_PROPERTY_MESSENGER_ID,                           CTSVC_SEARCH_PROPERTY_ALL,      "id"},
858         {CTSVC_PROPERTY_MESSENGER_CONTACT_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
859         {CTSVC_PROPERTY_MESSENGER_TYPE,                 CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
860         {CTSVC_PROPERTY_MESSENGER_LABEL,                        CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
861         {CTSVC_PROPERTY_MESSENGER_IM_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
862 };
863
864 const property_info_s __property_note[] = {
865         {CTSVC_PROPERTY_NOTE_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "id"},
866         {CTSVC_PROPERTY_NOTE_CONTACT_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
867         {CTSVC_PROPERTY_NOTE_NOTE,                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
868 };
869
870 const property_info_s __property_profile[] = {
871         {CTSVC_PROPERTY_PROFILE_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "id"},
872         {CTSVC_PROPERTY_PROFILE_CONTACT_ID,                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
873         {CTSVC_PROPERTY_PROFILE_UID,                                    CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
874         {CTSVC_PROPERTY_PROFILE_TEXT,                                   CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
875         {CTSVC_PROPERTY_PROFILE_ORDER,                          CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
876         {CTSVC_PROPERTY_PROFILE_SERVICE_OPERATION,      CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
877         {CTSVC_PROPERTY_PROFILE_MIME,                           CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
878         {CTSVC_PROPERTY_PROFILE_APP_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
879         {CTSVC_PROPERTY_PROFILE_URI,                                    CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
880         {CTSVC_PROPERTY_PROFILE_CATEGORY,                       CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
881         {CTSVC_PROPERTY_PROFILE_EXTRA_DATA,             CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
882 };
883
884 const property_info_s __property_activity_photo[] = {
885         {CTSVC_PROPERTY_ACTIVITY_PHOTO_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "id"},
886         {CTSVC_PROPERTY_ACTIVITY_PHOTO_ACTIVITY_ID,     CTSVC_SEARCH_PROPERTY_ALL,      "activity_id"},
887         {CTSVC_PROPERTY_ACTIVITY_PHOTO_URL,                     CTSVC_SEARCH_PROPERTY_ALL,      "photo_url"},
888         {CTSVC_PROPERTY_ACTIVITY_PHOTO_SORT_INDEX,      CTSVC_SEARCH_PROPERTY_ALL,      "sort_index"},
889 };
890
891 const property_info_s __property_activity[] = {
892         {CTSVC_PROPERTY_ACTIVITY_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id"},
893         {CTSVC_PROPERTY_ACTIVITY_CONTACT_ID,            CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
894         {CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,   CTSVC_SEARCH_PROPERTY_ALL,      "source_name"},
895         {CTSVC_PROPERTY_ACTIVITY_STATUS,                        CTSVC_SEARCH_PROPERTY_ALL,      "status"},
896         {CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,             CTSVC_SEARCH_PROPERTY_ALL,      "timestamp"},
897         {CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION, CTSVC_SEARCH_PROPERTY_ALL,  "service_operation"},
898         {CTSVC_PROPERTY_ACTIVITY_URI,                           CTSVC_SEARCH_PROPERTY_ALL,      "uri"},
899         {CTSVC_PROPERTY_ACTIVITY_ACTIVITY_PHOTO, CTSVC_SEARCH_PROPERTY_NONE,    (void*)__property_activity_photo},
900 };
901
902 const property_info_s __property_extension[] = {
903         {CTSVC_PROPERTY_EXTENSION_ID,                           CTSVC_SEARCH_PROPERTY_ALL,      "id"},
904         {CTSVC_PROPERTY_EXTENSION_CONTACT_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
905         {CTSVC_PROPERTY_EXTENSION_DATA1,                CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
906         {CTSVC_PROPERTY_EXTENSION_DATA2,                CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
907         {CTSVC_PROPERTY_EXTENSION_DATA3,                CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
908         {CTSVC_PROPERTY_EXTENSION_DATA4,                CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
909         {CTSVC_PROPERTY_EXTENSION_DATA5,                CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
910         {CTSVC_PROPERTY_EXTENSION_DATA6,                CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
911         {CTSVC_PROPERTY_EXTENSION_DATA7,                CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
912         {CTSVC_PROPERTY_EXTENSION_DATA8,                CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
913         {CTSVC_PROPERTY_EXTENSION_DATA9,                CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
914         {CTSVC_PROPERTY_EXTENSION_DATA10,               CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
915         {CTSVC_PROPERTY_EXTENSION_DATA11,               CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
916         {CTSVC_PROPERTY_EXTENSION_DATA12,               CTSVC_SEARCH_PROPERTY_ALL,      "data12"},
917 };
918
919 const property_info_s __property_sip[] = {
920         {CTSVC_PROPERTY_SIP_ID,             CTSVC_SEARCH_PROPERTY_ALL,  "id"},
921         {CTSVC_PROPERTY_SIP_CONTACT_ID,     CTSVC_SEARCH_PROPERTY_ALL,  "contact_id"},
922         {CTSVC_PROPERTY_SIP_TYPE,                       CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
923         {CTSVC_PROPERTY_SIP_LABEL,          CTSVC_SEARCH_PROPERTY_ALL,  "data2"},
924         {CTSVC_PROPERTY_SIP_ADDRESS,        CTSVC_SEARCH_PROPERTY_ALL,  "data3"},
925 };
926
927 const property_info_s __property_contact[] = {
928         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
929         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},        /* dispaly_name, reverse_display_name */
930         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID, CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
931         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
932         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
933         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,        CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
934         {CTSVC_PROPERTY_CONTACT_IS_FAVORITE,                    CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
935         {CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,        CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
936         {CTSVC_PROPERTY_CONTACT_HAS_EMAIL,                      CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
937         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
938         {CTSVC_PROPERTY_CONTACT_UID,                                    CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
939         {CTSVC_PROPERTY_CONTACT_VIBRATION,                      CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
940         {CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,          CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
941         {CTSVC_PROPERTY_CONTACT_CHANGED_TIME,           CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
942         {CTSVC_PROPERTY_CONTACT_LINK_MODE,                      CTSVC_SEARCH_PROPERTY_ALL,      "link_mode"},
943         {CTSVC_PROPERTY_CONTACT_NAME,                                   CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_name},
944         {CTSVC_PROPERTY_CONTACT_COMPANY,                                CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_company},
945         {CTSVC_PROPERTY_CONTACT_NOTE,                                   CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_note},
946         {CTSVC_PROPERTY_CONTACT_NUMBER,                         CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_number},
947         {CTSVC_PROPERTY_CONTACT_EMAIL,                          CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_email},
948         {CTSVC_PROPERTY_CONTACT_EVENT,                          CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_event},
949         {CTSVC_PROPERTY_CONTACT_MESSENGER,                      CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_messenger},
950         {CTSVC_PROPERTY_CONTACT_ADDRESS,                                CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_address},
951         {CTSVC_PROPERTY_CONTACT_URL,                                    CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_url},
952         {CTSVC_PROPERTY_CONTACT_NICKNAME,                       CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_nickname},
953         {CTSVC_PROPERTY_CONTACT_PROFILE,                                CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_profile},
954         {CTSVC_PROPERTY_CONTACT_RELATIONSHIP,           CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_relationship},
955         {CTSVC_PROPERTY_CONTACT_IMAGE,                          CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_image},
956         {CTSVC_PROPERTY_CONTACT_GROUP_RELATION,         CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_group_relation},
957         {CTSVC_PROPERTY_CONTACT_EXTENSION,                      CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_extension},
958         {CTSVC_PROPERTY_CONTACT_SIP,                            CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_sip},
959 };
960
961 const property_info_s __property_my_profile[] = {
962         {CTSVC_PROPERTY_MY_PROFILE_ID,                                  CTSVC_SEARCH_PROPERTY_ALL,      "my_profile_id"},
963         {CTSVC_PROPERTY_MY_PROFILE_DISPLAY_NAME,                CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* dispaly_name, reverse_display_name */
964         {CTSVC_PROPERTY_MY_PROFILE_ADDRESSBOOK_ID,              CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
965         {CTSVC_PROPERTY_MY_PROFILE_IMAGE_THUMBNAIL,     CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
966         {CTSVC_PROPERTY_MY_PROFILE_UID,                                 CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
967         {CTSVC_PROPERTY_MY_PROFILE_CHANGED_TIME,                CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
968         {CTSVC_PROPERTY_MY_PROFILE_NAME,                                        CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_name},
969         {CTSVC_PROPERTY_MY_PROFILE_COMPANY,                             CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_company},
970         {CTSVC_PROPERTY_MY_PROFILE_NOTE,                                        CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_note},
971         {CTSVC_PROPERTY_MY_PROFILE_NUMBER,                              CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_number},
972         {CTSVC_PROPERTY_MY_PROFILE_EMAIL,                               CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_email},
973         {CTSVC_PROPERTY_MY_PROFILE_EVENT,                               CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_event},
974         {CTSVC_PROPERTY_MY_PROFILE_MESSENGER,                   CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_messenger},
975         {CTSVC_PROPERTY_MY_PROFILE_ADDRESS,                             CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_address},
976         {CTSVC_PROPERTY_MY_PROFILE_URL,                                 CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_url},
977         {CTSVC_PROPERTY_MY_PROFILE_NICKNAME,                            CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_nickname},
978         {CTSVC_PROPERTY_MY_PROFILE_PROFILE,                             CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_profile},
979         {CTSVC_PROPERTY_MY_PROFILE_RELATIONSHIP,                CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_relationship},
980         {CTSVC_PROPERTY_MY_PROFILE_IMAGE,                               CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_image},
981         {CTSVC_PROPERTY_MY_PROFILE_EXTENSION,                   CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_extension},
982         {CTSVC_PROPERTY_MY_PROFILE_SIP,                                 CTSVC_SEARCH_PROPERTY_NONE, (void*)__property_sip},
983 };
984
985 const property_info_s __property_speeddial[] = {   /* _contacts_speeddial */
986         {CTSVC_PROPERTY_SPEEDDIAL_DIAL_NUMBER,          CTSVC_SEARCH_PROPERTY_ALL,      "speed_number"},
987         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_ID,                    CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
988         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER,                       CTSVC_SEARCH_PROPERTY_ALL,      "number"},
989         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_LABEL, CTSVC_SEARCH_PROPERTY_ALL,      "label"},
990         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_TYPE,          CTSVC_SEARCH_PROPERTY_ALL,      "type"},
991         {CTSVC_PROPERTY_SPEEDDIAL_PERSON_ID,                    CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
992         {CTSVC_PROPERTY_SPEEDDIAL_DISPLAY_NAME, CTSVC_SEARCH_PROPERTY_ALL,      NULL},            /* display_name or reverse_display_name */
993         {CTSVC_PROPERTY_SPEEDDIAL_IMAGE_THUMBNAIL,      CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
994         {CTSVC_PROPERTY_SPEEDDIAL_NORMALIZED_NUMBER,    CTSVC_SEARCH_PROPERTY_FILTER,   "normalized_number"},
995         {CTSVC_PROPERTY_SPEEDDIAL_CLEANED_NUMBER,       CTSVC_SEARCH_PROPERTY_FILTER,   "cleaned_number"},
996         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_FILTER,        CTSVC_SEARCH_PROPERTY_FILTER,   "minmatch"},
997 };
998
999 #ifdef ENABLE_LOG_FEATURE
1000 const property_info_s __property_phonelog[] = {   /* _contacts_phone_log */
1001         {CTSVC_PROPERTY_PHONELOG_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id"},
1002         {CTSVC_PROPERTY_PHONELOG_PERSON_ID,             CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1003         {CTSVC_PROPERTY_PHONELOG_ADDRESS,               CTSVC_SEARCH_PROPERTY_ALL,      "number"},
1004         {CTSVC_PROPERTY_PHONELOG_LOG_TIME,              CTSVC_SEARCH_PROPERTY_ALL,      "log_time"},
1005         {CTSVC_PROPERTY_PHONELOG_LOG_TYPE,              CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
1006         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,   CTSVC_SEARCH_PROPERTY_ALL,      "data1"},         /* duration */
1007         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,   CTSVC_SEARCH_PROPERTY_ALL,      "data2"},         /* short message, email subject */
1008         {CTSVC_PROPERTY_PHONELOG_NORMALIZED_ADDRESS,    CTSVC_SEARCH_PROPERTY_FILTER,   "normal_num"},
1009         {CTSVC_PROPERTY_PHONELOG_CLEANED_ADDRESS, CTSVC_SEARCH_PROPERTY_FILTER, "clean_num"},
1010         {CTSVC_PROPERTY_PHONELOG_ADDRESS_FILTER, CTSVC_SEARCH_PROPERTY_FILTER, "minmatch"},
1011         {CTSVC_PROPERTY_PHONELOG_SIM_SLOT_NO,                   CTSVC_SEARCH_PROPERTY_ALL, "sim_id"},
1012 };
1013 #endif /* ENABLE_LOG_FEATURE */
1014
1015 /* search properties */
1016 const property_info_s __property_person_contact[] = {   /* _contacts_person_contact */
1017         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1018         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1019         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1020         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1021         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1022         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1023         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1024         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1025         {CTSVC_PROPERTY_PERSON_STATUS,                          CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1026         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1027         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       "link_count"},
1028         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
1029         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1030         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1031         /* contact */
1032         {CTSVC_PROPERTY_CONTACT_ID,                                             CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1033         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1034         /* addressbook */
1035         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
1036         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
1037         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1038         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1039 };
1040
1041 const property_info_s __property_person_number[] = {   /* _contacts_person_number */
1042         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1043         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1044         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1045         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1046         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1047         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1048         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1049         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1050         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1051         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1052         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1053         /* number */
1054         {CTSVC_PROPERTY_NUMBER_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
1055         {CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,                CTSVC_SEARCH_PROPERTY_ALL,      "is_primary_default"},
1056         {CTSVC_PROPERTY_NUMBER_TYPE,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1057         {CTSVC_PROPERTY_NUMBER_LABEL,                                   CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1058         {CTSVC_PROPERTY_NUMBER_NUMBER,                          CTSVC_SEARCH_PROPERTY_ALL,      "number"},
1059         {CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,                   CTSVC_SEARCH_PROPERTY_FILTER,   "minmatch"},
1060         {CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,       CTSVC_SEARCH_PROPERTY_FILTER,   "normalized_number"},
1061         {CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER,  CTSVC_SEARCH_PROPERTY_FILTER,   "cleaned_number"},
1062         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1063         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1064 };
1065
1066 const property_info_s __property_person_email[] = {   /* _contacts_person_email */
1067         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1068         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1069         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1070         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1071         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1072         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1073         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1074         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1075         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1076         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1077         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1078         /* email */
1079         {CTSVC_PROPERTY_EMAIL_ID,                                               CTSVC_SEARCH_PROPERTY_ALL,      "email_id"},
1080         {CTSVC_PROPERTY_EMAIL_TYPE,                                     CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1081         {CTSVC_PROPERTY_EMAIL_LABEL,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1082         {CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,                CTSVC_SEARCH_PROPERTY_ALL,      "is_primary_default"},
1083         {CTSVC_PROPERTY_EMAIL_EMAIL,                                    CTSVC_SEARCH_PROPERTY_ALL,      "email"},
1084         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1085         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1086 };
1087
1088 const property_info_s __property_person_grouprel[] = {   /* _contacts_person_grouprel */
1089         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1090         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1091         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1092         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1093         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1094         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1095         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1096         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1097         {CTSVC_PROPERTY_PERSON_STATUS,                                  CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1098         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1099         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       "link_count"},
1100         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
1101         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1102         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1103         /* contacts */
1104         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1105         /* group relation */
1106         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
1107         {CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,                      CTSVC_SEARCH_PROPERTY_PROJECTION,       "contact_id"},
1108         /* addressbook */
1109         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
1110         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
1111         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1112         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1113 };
1114
1115 const property_info_s __property_person_group_assigned[] = {   /* _contacts_person_group_assigned */
1116         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1117         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1118         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1119         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1120         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1121         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1122         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1123         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1124         {CTSVC_PROPERTY_PERSON_STATUS,                                  CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1125         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1126         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       "link_count"},
1127         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
1128         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1129         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1130         /* contacts */
1131         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1132         /* group relation */
1133         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
1134         {CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,                      CTSVC_SEARCH_PROPERTY_PROJECTION,       "contact_id"},
1135         /* addressbook */
1136         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
1137         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1138         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1139 };
1140
1141 const property_info_s __property_person_group_not_assigned[] = {   /* _contacts_person_group_not_assigned */
1142         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1143         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1144         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1145         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1146         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1147         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1148         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1149         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1150         {CTSVC_PROPERTY_PERSON_STATUS,                                  CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1151         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1152         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       "link_count"},
1153         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
1154         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1155         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1156         /* contacts */
1157         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1158         {CTSVC_PROPERTY_CONTACT_ID,                                                     CTSVC_SEARCH_PROPERTY_PROJECTION,       "contact_id"},
1159         /* addressbook */
1160         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
1161         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,             CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1162         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,             CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1163 };
1164
1165 #ifdef ENABLE_LOG_FEATURE
1166 const property_info_s __property_person_phonelog[] = {   /* _contacts_person_phone_log */
1167         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "id"},
1168         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1169         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1170         /* phonelog */
1171         {CTSVC_PROPERTY_PHONELOG_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "phonelog_id"},
1172         {CTSVC_PROPERTY_PHONELOG_ADDRESS,                       CTSVC_SEARCH_PROPERTY_ALL,      "address"},
1173         {CTSVC_PROPERTY_DATA_DATA1,                                     CTSVC_SEARCH_PROPERTY_PROJECTION,       "address_type"},
1174         {CTSVC_PROPERTY_PHONELOG_LOG_TIME,                      CTSVC_SEARCH_PROPERTY_ALL,      "log_time"},
1175         {CTSVC_PROPERTY_PHONELOG_LOG_TYPE,                      CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
1176         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "data1"}, /* duration */
1177         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "data2"}, /* message_id */
1178         {CTSVC_PROPERTY_PHONELOG_NORMALIZED_ADDRESS,    CTSVC_SEARCH_PROPERTY_FILTER,   "normal_num"},
1179         {CTSVC_PROPERTY_PHONELOG_CLEANED_ADDRESS,       CTSVC_SEARCH_PROPERTY_FILTER,   "clean_num"},
1180         {CTSVC_PROPERTY_PHONELOG_ADDRESS_FILTER,        CTSVC_SEARCH_PROPERTY_FILTER,   "minmatch"},
1181         {CTSVC_PROPERTY_PHONELOG_SIM_SLOT_NO, CTSVC_SEARCH_PROPERTY_ALL, "sim_id"},
1182 };
1183 #endif /* ENABLE_LOG_FEATURE */
1184
1185 const property_info_s __property_person_usage[] = {   /* _contacts_person_usage */
1186         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1187         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},    /* "dispaly_name" or "reverse_dispaly_name" */
1188         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL}, /* "dispaly_name" or "reverse_dispaly_name" */
1189         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1190         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1191         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1192         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1193         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1194         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1195         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1196         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1197         /* contact_stat */
1198         {CTSVC_PROPERTY_PERSON_USAGE_TYPE,                              CTSVC_SEARCH_PROPERTY_ALL,      "usage_type"},
1199         {CTSVC_PROPERTY_PERSON_TIMES_USED,                              CTSVC_SEARCH_PROPERTY_ALL,      "times_used"},
1200 };
1201
1202 const property_info_s __property_contact_number[] = {   /* _contacts_contact_number */
1203         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1204         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},        /* "dispaly_name" or "reverse_dispaly_name" */
1205         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1206         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1207         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1208         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1209         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,        CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1210         /* number */
1211         {CTSVC_PROPERTY_NUMBER_ID,                                      CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
1212         {CTSVC_PROPERTY_NUMBER_TYPE,                            CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1213         {CTSVC_PROPERTY_NUMBER_LABEL,                           CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1214         {CTSVC_PROPERTY_NUMBER_IS_DEFAULT,                      CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
1215         {CTSVC_PROPERTY_NUMBER_NUMBER,                          CTSVC_SEARCH_PROPERTY_ALL,      "number"},
1216         {CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,           CTSVC_SEARCH_PROPERTY_FILTER,   "minmatch"},
1217         {CTSVC_PROPERTY_NUMBER_NORMALIZED_NUMBER,       CTSVC_SEARCH_PROPERTY_FILTER,   "normalized_number"},
1218         {CTSVC_PROPERTY_NUMBER_CLEANED_NUMBER,  CTSVC_SEARCH_PROPERTY_FILTER,   "cleaned_number"},
1219 };
1220
1221 const property_info_s __property_contact_email[] = {   /* _contacts_contact_email */
1222         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1223         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},        /* "dispaly_name" or "reverse_dispaly_name" */
1224         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
1225         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1226         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1227         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1228         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1229         /* email */
1230         {CTSVC_PROPERTY_EMAIL_ID,                                               CTSVC_SEARCH_PROPERTY_ALL,      "email_id"},
1231         {CTSVC_PROPERTY_EMAIL_TYPE,                                             CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1232         {CTSVC_PROPERTY_EMAIL_LABEL,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1233         {CTSVC_PROPERTY_EMAIL_IS_DEFAULT,                               CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
1234         {CTSVC_PROPERTY_EMAIL_EMAIL,                                    CTSVC_SEARCH_PROPERTY_ALL,      "email"},
1235 };
1236
1237 const property_info_s __property_contact_grouprel[] = {   /* _contacts_contact_grouprel */
1238         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1239         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},        /* "dispaly_name" or "reverse_dispaly_name" */
1240         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1241         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1242         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1243         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1244         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1245         /* group relation */
1246         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,                CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
1247         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "group_name"},
1248         {CTSVC_PROPERTY_PERSON_SNIPPET_TYPE,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data type */
1249         {CTSVC_PROPERTY_PERSON_SNIPPET_STRING,     CTSVC_SEARCH_PROPERTY_ALL,  NULL}, /* data string */
1250 };
1251
1252 const property_info_s __property_contact_activity[] = {   /* _contacts_contact_activity */
1253         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1254         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},        /* "dispaly_name" or "reverse_dispaly_name" */
1255         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1256         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1257         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1258         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1259         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1260         {CTSVC_PROPERTY_ACTIVITY_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "activity_id"},
1261         {CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      "source_name"},
1262         {CTSVC_PROPERTY_ACTIVITY_STATUS,                        CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1263         {CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,             CTSVC_SEARCH_PROPERTY_ALL,      "timestamp"},
1264         {CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION, CTSVC_SEARCH_PROPERTY_ALL,  "service_operation"},
1265         {CTSVC_PROPERTY_ACTIVITY_URI,                                   CTSVC_SEARCH_PROPERTY_ALL,      "uri"},
1266         {CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "account_id"},
1267 };
1268
1269 #ifdef ENABLE_LOG_FEATURE
1270 const property_info_s __property_phonelog_stat[] = {   /* _contacts_phone_log_stat */
1271         {CTSVC_PROPERTY_PHONELOG_STAT_LOG_COUNT,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "log_count"},
1272         {CTSVC_PROPERTY_PHONELOG_STAT_LOG_TYPE,                 CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
1273         {CTSVC_PROPERTY_PHONELOG_STAT_SIM_SLOT_NO,              CTSVC_SEARCH_PROPERTY_ALL,      "sim_id"},
1274 };
1275 #endif
1276
1277 typedef struct {
1278         char *view_uri;
1279         ctsvc_record_type_e type;
1280         property_info_s *properties;
1281         unsigned int property_count;
1282 } view_uri_info_s;
1283
1284 #define PTR_COUNT(X)    (void*)(X), sizeof(X)/sizeof(property_info_s)
1285
1286 static const view_uri_info_s __tables[] = {
1287         {CTSVC_VIEW_URI_ADDRESSBOOK,    CTSVC_RECORD_ADDRESSBOOK,               PTR_COUNT(__property_addressbook)},
1288         {CTSVC_VIEW_URI_GROUP,                  CTSVC_RECORD_GROUP,                             PTR_COUNT(__property_group)},
1289         {CTSVC_VIEW_URI_PERSON,                 CTSVC_RECORD_PERSON,                    PTR_COUNT(__property_person)},
1290         {CTSVC_VIEW_URI_SIMPLE_CONTACT, CTSVC_RECORD_SIMPLE_CONTACT,    PTR_COUNT(__property_simple_contact)},
1291         {CTSVC_VIEW_URI_CONTACT,                CTSVC_RECORD_CONTACT,                   PTR_COUNT(__property_contact)},
1292         {CTSVC_VIEW_URI_MY_PROFILE,             CTSVC_RECORD_MY_PROFILE,                PTR_COUNT(__property_my_profile)},
1293         {CTSVC_VIEW_URI_ACTIVITY,               CTSVC_RECORD_ACTIVITY,                  PTR_COUNT(__property_activity)},
1294         {CTSVC_VIEW_URI_ACTIVITY_PHOTO, CTSVC_RECORD_ACTIVITY_PHOTO,    PTR_COUNT(__property_activity_photo)},
1295 #ifdef ENABLE_LOG_FEATURE
1296         {CTSVC_VIEW_URI_PHONELOG,               CTSVC_RECORD_PHONELOG,                  PTR_COUNT(__property_phonelog)},
1297 #endif /* ENABLE_LOG_FEATURE */
1298         {CTSVC_VIEW_URI_SPEEDDIAL,              CTSVC_RECORD_SPEEDDIAL,                 PTR_COUNT(__property_speeddial)},
1299         {CTSVC_VIEW_URI_SDN,                    CTSVC_RECORD_SDN,                               PTR_COUNT(__property_sdn)},
1300
1301         {CTSVC_VIEW_URI_NAME,                   CTSVC_RECORD_NAME,                              PTR_COUNT(__property_name)},
1302         {CTSVC_VIEW_URI_COMPANY,                CTSVC_RECORD_COMPANY,                   PTR_COUNT(__property_company)},
1303         {CTSVC_VIEW_URI_NUMBER,         CTSVC_RECORD_NUMBER,                    PTR_COUNT(__property_number)},
1304         {CTSVC_VIEW_URI_EMAIL,                  CTSVC_RECORD_EMAIL,                             PTR_COUNT(__property_email)},
1305         {CTSVC_VIEW_URI_URL,                    CTSVC_RECORD_URL,                               PTR_COUNT(__property_url)},
1306         {CTSVC_VIEW_URI_ADDRESS,                CTSVC_RECORD_ADDRESS,                   PTR_COUNT(__property_address)},
1307         {CTSVC_VIEW_URI_PROFILE,                CTSVC_RECORD_PROFILE,                   PTR_COUNT(__property_profile)},
1308         {CTSVC_VIEW_URI_RELATIONSHIP,   CTSVC_RECORD_RELATIONSHIP,              PTR_COUNT(__property_relationship)},
1309         {CTSVC_VIEW_URI_IMAGE,                  CTSVC_RECORD_IMAGE,                             PTR_COUNT(__property_image)},
1310         {CTSVC_VIEW_URI_NOTE,                   CTSVC_RECORD_NOTE,                              PTR_COUNT(__property_note)},
1311         {CTSVC_VIEW_URI_NICKNAME,               CTSVC_RECORD_NICKNAME,                  PTR_COUNT(__property_nickname)},
1312         {CTSVC_VIEW_URI_EVENT,                  CTSVC_RECORD_EVENT,                             PTR_COUNT(__property_event)},
1313         {CTSVC_VIEW_URI_MESSENGER,              CTSVC_RECORD_MESSENGER,                 PTR_COUNT(__property_messenger)},
1314         {CTSVC_VIEW_URI_GROUP_RELATION, CTSVC_RECORD_GROUP_RELATION,    PTR_COUNT(__property_group_relation)},
1315         {CTSVC_VIEW_URI_EXTENSION,              CTSVC_RECORD_EXTENSION,                 PTR_COUNT(__property_extension)},
1316         {CTSVC_VIEW_URI_SIP,                    CTSVC_RECORD_SIP,                               PTR_COUNT(__property_sip)},
1317
1318         {CTSVC_VIEW_URI_GROUPS_UPDATED_INFO,  CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1319         {CTSVC_VIEW_URI_GROUPS_MEMBER_UPDATED_INFO,  CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1320         {CTSVC_VIEW_URI_CONTACTS_UPDATED_INFO, CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1321         {CTSVC_VIEW_URI_MY_PROFILE_UPDATED_INFO, CTSVC_RECORD_UPDATED_INFO,  NULL, 0},
1322         {CTSVC_VIEW_URI_GROUPRELS_UPDATED_INFO, CTSVC_RECORD_RESULT, NULL, 0},
1323
1324         {CTSVC_VIEW_URI_READ_ONLY_PERSON_CONTACT,               CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_contact)},
1325         {CTSVC_VIEW_URI_READ_ONLY_PERSON_NUMBER,                CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_number)},
1326         {CTSVC_VIEW_URI_READ_ONLY_PERSON_EMAIL,         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_email)},
1327         {CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP,         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_grouprel)},
1328         {CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP_ASSIGNED,                CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_group_assigned)},
1329         {CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP_NOT_ASSIGNED,            CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_group_not_assigned)},
1330 #ifdef ENABLE_LOG_FEATURE
1331         {CTSVC_VIEW_URI_READ_ONLY_PERSON_PHONELOG,                              CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_phonelog)},
1332 #endif /* ENABLE_LOG_FEATURE */
1333         {CTSVC_VIEW_URI_READ_ONLY_PERSON_USAGE,                         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_usage)},
1334
1335         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_NUMBER,                               CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_number)},
1336         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_EMAIL,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_email)},
1337         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_GROUP,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_grouprel)},
1338         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_ACTIVITY,                     CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_activity)},
1339 #ifdef ENABLE_LOG_FEATURE
1340         {CTSVC_VIEW_URI_READ_ONLY_PHONELOG_STAT,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_phonelog_stat)},
1341 #endif /* ENABLE_LOG_FEATURE */
1342 };
1343
1344 static GHashTable *__ctsvc_view_uri_hash = NULL;
1345
1346 #ifndef _CONTACTS_IPC_SERVER /* native or client library */
1347 static int __ctsvc_view_ref_count = 0;
1348 #endif
1349
1350 void ctsvc_view_uri_init()
1351 {
1352         int i;
1353         int count;
1354
1355 #ifndef _CONTACTS_IPC_SERVER /* native or client library */
1356         /* it is called in mutex lock */
1357         __ctsvc_view_ref_count++;
1358 #endif
1359
1360         if (__ctsvc_view_uri_hash)
1361                 return;
1362
1363         __ctsvc_view_uri_hash = g_hash_table_new(g_str_hash, g_str_equal);
1364
1365         i = 0;
1366         count = sizeof(__tables)/sizeof(view_uri_info_s);
1367         for (i = 0; i < count; i++)
1368                 g_hash_table_insert(__ctsvc_view_uri_hash, __tables[i].view_uri, GINT_TO_POINTER(&__tables[i]));
1369 }
1370
1371 void ctsvc_view_uri_deinit()
1372 {
1373 #ifndef _CONTACTS_IPC_SERVER /* native or client library */
1374         /* it is called in mutex lock */
1375         __ctsvc_view_ref_count--;
1376         if (__ctsvc_view_ref_count != 0)
1377                 return;
1378 #endif
1379
1380         if (NULL == __ctsvc_view_uri_hash) {
1381                 /* LCOV_EXCL_START */
1382                 ERR("contacts-service is not initialized");
1383                 return;
1384                 /* LCOV_EXCL_STOP */
1385         }
1386
1387         g_hash_table_destroy(__ctsvc_view_uri_hash);
1388         __ctsvc_view_uri_hash = NULL;
1389
1390 }
1391
1392 ctsvc_record_type_e ctsvc_view_get_record_type(const char *view_uri)
1393 {
1394         view_uri_info_s *view_uri_info = NULL;
1395         ctsvc_record_type_e type = CTSVC_RECORD_INVALID;
1396
1397         if (NULL == __ctsvc_view_uri_hash) {
1398                 /* LCOV_EXCL_START */
1399                 ERR("contacts-service is not initialized");
1400                 return type;
1401                 /* LCOV_EXCL_STOP */
1402         }
1403
1404         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1405         if (view_uri_info)
1406                 type = view_uri_info->type;
1407
1408         return type;
1409 }
1410
1411 const char* ctsvc_view_get_uri(const char *view_uri)
1412 {
1413         view_uri_info_s *view_uri_info = NULL;
1414
1415         if (NULL == __ctsvc_view_uri_hash) {
1416                 /* LCOV_EXCL_START */
1417                 ERR("contacts-service is not initialized");
1418                 return NULL;
1419                 /* LCOV_EXCL_STOP */
1420         }
1421
1422         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1423         if (view_uri_info)
1424                 return view_uri_info->view_uri;
1425
1426         return NULL;
1427 }
1428
1429 const property_info_s* ctsvc_view_get_all_property_infos(const char *view_uri, unsigned int *count)
1430 {
1431         view_uri_info_s *view_uri_info = NULL;
1432
1433         if (NULL == __ctsvc_view_uri_hash) {
1434                 /* LCOV_EXCL_START */
1435                 ERR("contacts-service is not initialized");
1436                 return NULL;
1437                 /* LCOV_EXCL_STOP */
1438         }
1439
1440         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1441         if (view_uri_info) {
1442                 *count = view_uri_info->property_count;
1443                 return view_uri_info->properties;
1444         }
1445
1446         return NULL;
1447 }
1448