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