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