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