apply tizen2.1 appcontrol
[apps/core/preloaded/phone-contacts.git] / lib / common / include / phone-common.h
1 /*
2 * Copyright 2012 Samsung Electronics Co., Ltd
3 *
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://floralicense.org/license/
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 #ifndef __PHONE_COMMON_H__
19 #define __PHONE_COMMON_H__
20
21 #include <time.h>
22 #include <libintl.h>
23 #include <ui-gadget.h>
24 #include <contacts.h>
25 #include <unicode/udat.h>
26 #include <bundle.h>
27 #include "phone-ug.h"
28 #include "phone-path.h"
29 #include "phone-text.h"
30 #include "contacts-ug.h"
31
32
33 #define PH_TIMECHECK
34 #ifdef PH_TIMECHECK
35 double ph_correction, ph_startT;
36 double ph_set_start_time(void);
37 double ph_exec_time(double start);
38 int ph_init_time(void);
39 #define PH_TIME_CHECK \
40         DBG("time = %f ms\n", ph_set_start_time());
41 #define PH_START_TIME_CHECK \
42         ph_init_time();\
43 ph_startT = ph_set_start_time();
44 #define PH_END_TIME_CHECK(fmt, arg...) \
45         DBG(fmt" time = %f ms\n", ##arg, ph_exec_time(ph_startT));
46 #else //PH_TIMECHECK
47 #define PH_START_TIME_CHECK
48 #define PH_END_TIME_CHECK(arg)
49 #endif //PH_TIMECHECK
50
51 #if !defined(LOCALEDIR)
52 #  define LOCALEDIR "/usr/ug/res/locale"
53 #endif
54
55 #ifndef STRLEN
56 #define STRLEN(str) (((str) == NULL) ? 0: strlen(str))
57 #endif
58
59 #define PH_TEXT_MAX_LEN 1024
60 #define PH_TEXT_SHORT_LEN 256
61 #define CT_EDITFIELD_MAX_CHAR 1000
62 #define PH_BLOCK_MSG_MAX_LEN 40
63
64 #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
65
66 #define MSG_COMPOSER_UG "msg-composer-efl"
67 #define MYFILES_UG "myfile-efl"
68 #define VIBRATION_UG "setting-profile-efl"
69 #define ACCOUNT_UG "setting-myaccount-efl"
70 #define IMG_VIEWER_UG "image-viewer-efl"
71 #define GALLERY_UG "gallery-efl"
72 #define BLUETOOTH_UG "setting-bluetooth-efl"
73 #define WIFI_DIRECT_UG "fileshare-efl"
74
75 #define EMAIL_COMPOSER_PKG "email-composer-efl"
76 #define VOICECALL_PKG "org.tizen.call"
77 #define VIDEOCALL_PKG "org.tizen.vtmain"
78 #define CONTACTS_VIEWER_PKG "org.tizen.contacts-viewer"
79 #define BROWSER_UI_PKG "org.tizen.browser"
80
81 #define SETTING_MFC_PATH "/opt/usr/ug/data/ug-phone/mfc_option"
82 #define VIEW_MODE_PATH "/opt/usr/ug/data/ug-phone/view_mode"
83
84 #define CT_OPERATION_SOCIAL_ADD "http://tizen.org/appcontrol/operation/social/add"
85 #define CT_OPERATION_SOCIAL_EDIT "http://tizen.org/appcontrol/operation/social/edit"
86 #define CT_OPERATION_SOCIAL_CHOOSE "http://tizen.org/appcontrol/operation/social/choose"
87 #define CT_OPERATION_SOCIAL_PICK "http://tizen.org/appcontrol/operation/social/pick"
88 #define CT_OPERATION_SOCIAL_VIEW "http://tizen.org/appcontrol/operation/social/view"
89 #define CT_OPERATION_VIEW "http://tizen.org/appcontrol/operation/view"
90
91 #define CT_OPERATION_ITEM_TYPE "http://tizen.org/appcontrol/data/social/item_type"
92 #define CT_OPERATION_PHONE "http://tizen.org/appcontrol/data/social/phone"
93 #define CT_OPERATION_EMAIL "http://tizen.org/appcontrol/data/social/email"
94 #define CT_OPERATION_URL "http://tizen.org/appcontrol/data/social/url"
95 #define CT_OPERATION_ITEM_ID "http://tizen.org/appcontrol/data/social/item_id"
96 #define CT_OPERATION_RESULT_TYPE "http://tizen.org/appcontrol/data/social/result_type"
97 #define CT_OPERATION_PATH "http://tizen.org/appcontrol/data/path"
98 #define CT_OPERATION_RETURN_RESULT "http://tizen.org/appcontrol/data/social/return_result"
99 #define CT_OPERATION_SELECTION_MODE "http://tizen.org/appcontrol/data/selection_mode"
100
101 #define CT_OPERATION_ITEM_TYPE_PERSON "person"
102 #define CT_OPERATION_ITEM_TYPE_CONTACT "contact"
103 #define CT_OPERATION_SELECTION_MODE_SINGLE "single"
104 #define CT_OPERATION_SELECTION_MODE_MULTIPLE "multiple"
105 #define CT_OPERATION_RESULT_TYPE_PHONE "phone"
106 #define CT_OPERATION_RESULT_TYPE_EMAIL "email"
107 #define CT_OPERATION_RESULT_TYPE_ITEM_ID "item_id"
108 #define CT_OPERATION_RESULT_TYPE_VCARD "vcard"
109
110 typedef enum date_style{
111         PH_LOG_TIME_ONLY,
112         PH_LOG_DATE_ONLY,
113 }date_style;
114
115 typedef enum{
116         LOG_TYPE_CALL = 0,
117         LOG_TYPE_VIDEO_CALL,
118         LOG_TYPE_SMS_MESSAGE,
119         LOG_TYPE_MMS_MESSAGE,
120         LOG_TYPE_MAX
121 } Log_Type;
122
123 typedef enum{
124         LOG_ACTION_DIALLED = 0,
125         LOG_ACTION_MISSED,
126         LOG_ACTION_RECEIVED,
127         LOG_ACTION_REJECTED,
128         LOG_ACTION_BLOCKED,
129         LOG_ACTION_MAX
130 } Log_Action;
131
132
133 enum {
134         CTTEXT_TYPE_CUSTOM,
135         CTTEXT_TYPE_MOBILE,
136         CTTEXT_TYPE_HOME,
137         CTTEXT_TYPE_WORK,
138         CTTEXT_TYPE_FAX_HOME,
139         CTTEXT_TYPE_FAX_WORK,
140         CTTEXT_TYPE_ASSISTANT,
141         CTTEXT_TYPE_PAGER,
142         CTTEXT_TYPE_OTHER,
143         CTTEXT_TYPE_TELEPHONE,
144         CTTEXT_TYPE_FAX,
145         CTTEXT_TYPE_CAR,
146         CTTEXT_TYPE_HOME2,
147         CTTEXT_TYPE_WORK2,
148         CTTEXT_TYPE_COMPANY_MAIN,
149         CTTEXT_TYPE_RADIO,
150 }; //CT_GET_TEXT_NUM_TYPE
151
152 enum {
153         CT_VIEW_DETAIL,
154         CT_VIEW_INPUT,
155         CT_VIEW_ETC,
156 };
157
158 enum {
159         CT_LIST_NORMAL = 0x00,
160         CT_LIST_NORMAL_CONTACT = 0x01,
161         CT_LIST_NORMAL_FAVORITE = 0x02,
162         CT_LIST_NORMAL_MEMBER = 0x03,
163         CT_LIST_NORMAL_SDN = 0x04,
164
165         CT_LIST_SINGLE = 0x30,
166         CT_LIST_SINGLE_LINK = 0x31,
167         CT_LIST_SINGLE_RELATION = 0x32,
168
169         CT_LIST_SINGLE_UG = 0x50,
170
171         CT_LIST_MULTI =  0x70,
172         CT_LIST_MULTI_DELETE =  0x71,
173         CT_LIST_MULTI_ADD_MEMBER =      0x72,
174         CT_LIST_MULTI_REMOVE_MEMBER =  0x73,
175         CT_LIST_MULTI_ADD_FAVORITE =  0x74,
176         CT_LIST_MULTI_REMOVE_FAVORITE =  0x75,
177         CT_LIST_MULTI_EXPORT_TO_SIM =  0x76,
178         CT_LIST_MULTI_EXPORT_TO_VCARD = 0x77,
179         CT_LIST_MULTI_IMPORT_FROM_SIM =  0x78,
180         CT_LIST_MULTI_IMPORT_FROM_VCARD =  0x79,
181         CT_LIST_MULTI_RECIPIENT_MESSAGE_INGROUP =  0x7A,
182         CT_LIST_MULTI_RECIPIENT_EMAIL_INGROUP =  0x7B,
183         CT_LIST_MULTI_SHARE_MESSAGE =  0x7C,
184         CT_LIST_MULTI_SHARE_EMAIL =  0x7D,
185         CT_LIST_MULTI_SHARE_BT =  0x7E,
186         CT_LIST_MULTI_REORDER_FAVORITE = 0x7F,
187
188         CT_LIST_MULTI_UG = 0xA0,
189 };
190
191 enum {
192         CTUG_MSG_INVALID = 0,
193         CTUG_MSG_KEY_END = 1,
194 };
195
196 typedef void* PTHREAD_FN;
197 typedef void (*ct_select_result_cb)(void *data, int *list, int cnt);
198 typedef void (*ct_contact_add_cb)(Evas_Object *win, Evas_Object *navi, int cnt);
199 typedef void (*ct_assign_result_cb)(void *data);
200 typedef void (*ct_change_name_cb)(void *data, char *str);
201 typedef void (*selectall_changed_cb)(void *data, Eina_Bool checked);
202 typedef void (*ct_list_navi_item_update_fn)(void *data);
203 typedef void (*ct_group_rename_update_cb)(void *data, bool changed);
204 typedef void (*ct_person_changed_cb)(void *data);
205 typedef void (*ct_group_input_result_cb)(int grp_id, void *data, bool changed);
206
207 typedef struct {
208         Evas_Object *win;
209         Evas_Object *navi;
210         void *ug;
211         int ug_request;
212         int ug_cnt_max;
213         char *ug_data;  // update contact info
214 }ph_view_info;
215
216 typedef struct {
217         int cnt;
218         int cnt_checked_total;
219         int result;
220         bool alive;
221         bool completed;
222         bool without_cancel_btn;
223         pthread_t thread;
224         Ecore_Timer *timer;
225         Evas_Object *layout;
226         Evas_Object *progressbar;
227         Evas_Object *popup;
228
229         int *update_ids;
230         contacts_list_h update_list;
231         bool next_job;
232 } ph_progress_info;
233
234 typedef struct
235 {
236         char *plog_display;
237         char *plog_img_path;
238         char *plog_number;
239
240         int id;
241         int plog_ct_id;
242         int plog_num_type;
243         int plog_log_time;
244         int plog_log_type;
245         int plog_duration;
246
247         int grouped_count;
248         Eina_Bool checked;//for check genlist
249         int group_index;//it's used as group index value.
250         int group_base_id;
251         Elm_Object_Item *item;
252
253 } ph_log_info;
254
255 typedef struct
256 {
257         int id;
258         char *img_path;
259         char *display;
260         char *number;
261         char* numtype_label;
262         int number_type;
263         char *normal_name;
264 }ph_contact_d;
265
266 typedef struct
267 {
268         int person_id;
269         int id_ret;
270         int id_ret_type;
271         char *display;
272         char *img_path;
273         char *number;
274         bool img_loaded;
275         bool number_loaded;
276         Eina_List *contact_list;
277         Eina_List *number_list;
278         Eina_List *email_list;
279
280         Eina_Bool checked;
281         Elm_Object_Item *item;
282 }ph_favor_info;
283
284 typedef struct
285 {
286         char *display;
287         char *img_path;
288         char *ph_number;
289         char *numtype_label;
290         int number_type;
291         int contact_id;
292         int dial_number;
293         Eina_Bool is_checked;
294 }ph_speeddial_info;
295
296 struct ug_priv_data
297 {
298         void (*result_cb)(void*, void*);
299         void (*destroy_cb)(void*);
300         void *cb_param;
301 };
302
303 typedef struct {
304         int position;
305         int skipped_count;
306         char index[10];
307         char prev_index[4];
308         Elm_Object_Item *item;
309 } ct_list_index_data;
310
311 typedef struct {
312         void *user_data;
313         Evas_Smart_Cb cb;
314         char *icon_path;
315 } ctr_btn_info;
316
317 typedef struct {
318         Evas_Object *win;
319         Evas_Object *navi;
320         Evas_Object *entry;
321         Elm_Object_Item *navi_it;
322         Elm_Object_Item *btn_op;
323         char *name_old;
324         void *info;
325         ct_group_rename_update_cb result_cb;
326         void *fn_data;
327 } ct_group_edit_data;
328
329 typedef struct {
330         int id;
331         char *icon_path;
332         char *addressbook_name;
333         int account_id;
334 }ct_ab_map;
335
336 typedef struct {
337         void *person;
338         contacts_record_h contact;
339         Elm_Object_Item *item;
340         bool img_loaded;
341         bool number_loaded;
342         Eina_Bool checked;
343         char *img_path;
344         char *number;
345         char *display;
346         char *status_str;
347         char *display_index;
348         int id;
349         int id_ret;
350         int id_ret_type;
351         int link_count;
352         int mode_ab;
353         Eina_List *addressbook_id_list;
354
355         Eina_List *number_list;
356         Eina_List *email_list;
357 }ct_person_list;
358
359 typedef struct {
360         Evas_Object *win;
361         Evas_Object *box;
362         Evas_Object *navi;
363         Evas_Object *base_layout;
364         Evas_Object *content_layout;
365         Evas_Object *layout;
366         Evas_Object *nocontent;
367         Evas_Object *searchbar;
368         Evas_Object *genlist;
369         Evas_Object *fast_index;
370         Evas_Object *popup;
371         Evas_Object *select_all_layout;
372         Elm_Object_Item *navi_item;
373         Elm_Object_Item *count_item;
374         Elm_Object_Item *last_sweep_item;
375         Elm_Object_Item *search_group_item;
376         Evas_Object *ctrl_button;
377
378         Elm_Theme *th;
379         Elm_Genlist_Item_Class itcs[5];
380         void(*gl_sel)(void *data, Evas_Object *obj, void *event_info);
381         void *gl_sel_data;
382         void (*edit_sel_update)(void *data);
383
384         char group_index[4];
385         Elm_Object_Item *group_item;
386
387         char *ug_data;
388         void *ug;
389         void *child_ug;
390         service_h service_operation;
391
392         bool updating;
393         bool is_background;
394         bool need_update;
395         int list_mode;//will be removed.
396         int view_id;
397         int tab_mode;
398         int ug_request;
399         int list_op;
400         int base_ab;
401         int base_ab_mode;
402         int base_grp;
403         int readed_n;
404         int selected_person_id;
405         int cnt_list_total;
406         int cnt_checked;
407         int cnt_max_check;
408         int cnt_import_total;
409         int cnt_import;
410         char *title;
411         char *sub_title;
412         char *search_str;
413         contacts_name_display_order_e order_display;
414         int acc_count;
415         ct_ab_map *acc_types;
416
417         ct_list_navi_item_update_fn list_navi_item_update_fn;
418
419         contacts_list_h import_list;
420         Eina_List *list;
421         Eina_List *list_index;
422         Eina_List *list_check;
423         Eina_List *list_grp_person;
424         Eina_List *list_delete_records;
425         Eina_List *list_import_records;
426
427         Ecore_Idler *list_idler;
428         Ecore_Timer *update_timer;
429         Ecore_Timer *update_queue_timer;
430
431         int idx_vcard;
432         const char *vcard_path;
433
434         ph_progress_info *p_info;
435         ct_select_result_cb select_result_cb;
436         ct_contact_add_cb contact_add_cb;
437         void *select_result_cb_data;
438
439         int current_rotate;
440
441 }ct_list_data;
442
443 typedef struct {
444         Elm_Theme *th;
445         Evas_Object *win;
446         Evas_Object *navi;
447         Evas_Object *layout;
448
449         Elm_Object_Item *titem;
450         Elm_Object_Item *navi_item;
451         Elm_Object_Item *prev_navi_item;
452         Evas_Object *ctrl_button;
453         Elm_Object_Item *base_info_item;
454         Elm_Object_Item *base_item;
455         Elm_Object_Item *util_item;
456         Elm_Object_Item *number_util_item;
457
458         Evas_Object *popup;
459         Evas_Object *genlist;
460         Ecore_Idler *idler;
461
462         Elm_Object_Item *group_item;
463         Elm_Object_Item *ringtone_item;
464         Elm_Object_Item *vibration_item;
465
466         int order_display;
467
468         Eina_List *list_number;
469         Eina_List *list_email;
470         Eina_List *list_postal;
471         Eina_List *list_relationship;
472         Eina_List *list_event;
473         Eina_List *list_messenger;
474         Eina_List *list_website;
475         Eina_List *list_note;
476
477         bool updated;
478         bool updating;
479         bool is_shortcut;
480         bool has_detail;
481         bool has_input;
482         bool ug_detail;
483         bool has_number;
484         int touch_x;
485         int touch_y;
486         int base_grp;
487         int base_ab;
488         int base_ab_mode;
489         int view_mode;
490         char *base_ab_name;
491         char* vcard_path;
492         ui_gadget_h ug;
493         void *child_ug;
494         int ug_request;
495         int view_create_version;
496         service_h service_operation;
497
498         int person_id;
499         contacts_record_h person;
500         contacts_record_h contact;
501         Eina_List *list_contacts;
502         Eina_List *list_activity;
503
504         void *prev_view_data;
505         UDateFormat* formatter;
506         Evas_Object *genlist_unlink;
507         ph_progress_info *p_info;
508         bool only_input;
509         bool view_destroying;
510
511         bool touch_block;
512
513 }ct_detail_data;
514
515 typedef struct {
516         Elm_Theme *th;
517         Evas_Object *win;
518         Evas_Object *navi;
519         Evas_Object *layout;
520         Evas_Object *noc;
521         Evas_Object *scroller;
522         Evas_Object *popup;
523         Evas_Object *history_genlist;
524         Evas_Object *ctrl_button;
525         Evas_Object* select_all_layout;
526         Elm_Object_Item *select_all_item;
527         Elm_Object_Item *navi_item;
528         Eina_List *list;
529         Ecore_Idler *idler;
530         int person_id;
531         int list_count;
532         int pre_date_type;
533         UDateFormat* hformatter[5];
534         UDateFormat* formatter;
535         int cnt_checked;
536         int view_mode;
537         bool updated;
538         bool updating;
539         ph_progress_info *p_info;
540 }ct_history_data;
541
542 typedef struct {
543         Elm_Theme *th;
544         Evas_Object *win;
545         Evas_Object *navi;
546         Evas_Object *layout;
547         Evas_Object *activity_genlist;
548         Evas_Object *ctrl_button;
549         Elm_Object_Item *navi_item;
550         Eina_List *list;
551         int person_id;
552         int pre_date_type;
553         UDateFormat* hformatter[5];
554         UDateFormat* formatter;
555         ct_ab_map *acc_types;
556         int acc_cnt;
557 }ct_activity_data;
558
559 typedef struct {
560         Evas_Object *box;
561         Evas_Object *scroller;
562         Evas_Object *save_button;
563         Evas_Object *popup;
564         Elm_Object_Item *pre_item;
565         Elm_Object_Item *navi_item;
566         Ecore_Event_Handler* win_prop_change;
567         Evas_Object *layout;
568
569         bool add_job_title;
570         bool add_department;
571
572         Evas_Object *ly_image;
573         Evas_Object *ly_basic_info;
574         Evas_Object *ly_basic_info_middle_name;
575         Evas_Object *ly_basic_info_last_name;
576         Evas_Object *ly_basic_info_suffix;
577         Evas_Object *ly_basic_info_nickname;
578         Evas_Object *ly_basic_info_job_title;
579         Evas_Object *ly_basic_info_department;
580         Evas_Object *ly_basic_info_company;
581         Evas_Object *ly_number_first;
582         Evas_Object *ly_number_last;
583         Evas_Object *ly_number_default;
584         Evas_Object *ly_number_set_default_separator_before;
585         Evas_Object *ly_number_set_default;
586         Evas_Object *ly_number_set_default_separator_after;
587         Evas_Object *ly_number_base;
588         Evas_Object *ly_email_first;
589         Evas_Object *ly_email_last;
590         Evas_Object *ly_email_default;
591         Evas_Object *ly_email_set_default;
592         Evas_Object *ly_email_base;
593         Evas_Object *ly_addr_first;
594         Evas_Object *ly_addr_last;
595
596         Evas_Object *ly_seperator_more;
597         Evas_Object *ly_seperator_basic_info;
598         Evas_Object *ly_messenger_first;
599         Evas_Object *ly_messenger_last;
600         Evas_Object *ly_url_first;
601         Evas_Object *ly_url_last;
602         Evas_Object *ly_relationship_first;
603         Evas_Object *ly_relationship_last;
604         Evas_Object *ly_event_first;
605         Evas_Object *ly_event_last;
606         Evas_Object *ly_note;
607
608         Evas_Object *ly_group;
609         Evas_Object *ly_ringtone;
610         Evas_Object *ly_vibration;
611         Evas_Object *ly_address_book;
612         Evas_Object *ly_moreinfo;
613
614         bool saved;
615         Eina_Bool save_disable;
616         int view_create_ver;
617         int cnt_addr;
618         int cnt_num;
619         int idx_append;
620
621         int base_ab;
622         int base_ab_mode;
623         char *name_old;
624         char *base_ab_name;
625
626         int contact_id;
627         contacts_record_h contact;
628         ct_detail_data *cdetail_d;
629
630         bool camera_service_launched;
631         ui_gadget_h src_ug;
632         ui_gadget_h crop_ug;
633         bool keypad_on;
634 }ct_input_data;
635
636
637 typedef struct {
638         Evas_Object *ly_content;
639         contacts_record_h record;
640         Evas_Object *data;
641         const char *view_uri;
642 }ct_input_typed_data;
643
644 typedef enum {
645         CT_AB_POPUP_TYPE_INPUT_VIEW,
646         CT_AB_POPUP_TYPE_GINPUT_VIEW,
647         CT_AB_POPUP_TYPE_LIST_VIEW,
648 } ct_addrbook_popup_type;
649
650 typedef struct {
651         int id;
652         int mode;
653         char *name;
654         bool all_contacts_item;
655         Elm_Object_Item *item;
656 } ct_ab_popup_data;
657
658 void phone_free_contacts(Eina_List *list);
659 Eina_List * phone_load_speeddial_data(int *ref_count);
660 void phone_free_speeddial_data(Eina_List *list);
661 char *phone_get_voice_mail_number(void);
662
663 void* phone_launch_msg_composer_ug(void *parent_ug, char *data, int msg_id, void(*destroy_cb)(void*), void *cb_param);
664 void* phone_launch_contact_list_ug(void *parent_ug, int request, void(*result_cb)(void*, void*), void(*destroy_cb)(void*), void *cb_param);
665 void* phone_launch_contact_detail_ug(void *parent_ug, int contact_index, void(*destroy_cb)(void*), void *cb_param);
666 void* phone_launch_contact_add_list_edit_ug(void *parent_ug, char *data, void(*destroy_cb)(void*), void *cb_param);
667 void* phone_image_crop_ug(ui_gadget_h parent, const char *photo,
668                 struct ug_cbs *cbs);
669 void* ctui_msg_ug(ui_gadget_h parent, const char *number, const int idx, const char *attach, void(*destroy_cb)(void*), void *cb_param);
670 void* ctui_account_ug(void *data, Evas_Object *obj, void *event_info, void(*destroy_cb)(void*), void *cb_param);
671
672 void ug_common_destroy_cb(ui_gadget_h ug, void *priv);
673 void ug_common_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
674 void ctui_destroy_child_ug(void *data);
675
676 void phone_launch_voice_call(const int id, const char* number);
677
678 Evas_Object *phone_create_base_layout(Evas_Object *parent, bool is_fullview);
679 Evas_Object *phone_show_popup(Evas_Object *parent, const char *desc, double timeout);
680 Evas_Object *phone_create_confirm_popup(Evas_Object **popup, Evas_Object *win, const char* description,
681                 void (*btn_clicked_cb)(void *, Evas_Object *, void *), void *cb_data);
682 Evas_Object *phone_create_list_sweep_btn(Evas_Object *parent, char *fullpath);
683 Evas_Object *phone_create_bg(Evas_Object *parent);
684 Evas_Object *phone_create_icon_with_img(Evas_Object *parent, char *full_path);
685 Evas_Object *phone_create_navi_btn(Evas_Object *parent, const char *style);
686
687 Evas_Object *phone_progressbar_popup(Evas_Object *parent, ph_progress_info *p_info, const char *title);
688 Evas_Object *phone_get_notify(Evas_Object *parent);
689 void phone_show_notify(Evas_Object *parent, const char *msg);
690 void phone_hide_notify(Evas_Object *parent);
691 void phone_show_tickernoti(const char *);
692 void phone_view_back_btn_cb(void *data, Evas_Object *obj, void *event_info);
693 void phone_ug_destroy_me_cb(void *data, Evas_Object *obj, void *event_info);
694 void phone_back_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
695 void phone_navi_item_clear(Elm_Object_Item *navi_item);
696 void phone_set_view_info(ph_view_info *view_info, Evas_Object *win, Evas_Object *navi,
697                 void *ug, int ug_request, int cnt_max, char *ug_data);
698
699 void phone_service_reply_simple(service_h service, service_result_e result);
700 void phone_list_ug_return_ids(ui_gadget_h ug, int *result_list, int cnt, const char *bd_key);
701 void phone_list_ug_return_values(service_h service, int *result_list, int cnt, const char *result_type);
702 void phone_list_ug_return_number_email_ids(ui_gadget_h ug, int *result_number_list, int number_list_count, int *result_email_list, int email_list_count);
703 void phone_ug_return_id(ui_gadget_h ug, int ct_id, int num_id, int email_id);
704 void phone_ug_return_value(service_h service, int ct_id, int num_id, int email_id, int result_id);
705 void phone_ug_return_vcard(ui_gadget_h ug, int ct_id, char *vcard);
706 void phone_ug_operation_return_vcard(service_h service, int ct_id, char *vcard);
707 Evas_Object* phone_create_nocontents(Evas_Object *parent, const char* label);
708 void phone_toolbar_disabled_item_append(Evas_Object *toolbar, int cnt);
709
710 char* ctui_get_addressbook_icon_path(int addressbook_id);
711 const char* ctui_get_default_contact_img(int view_type);
712 void ctui_get_number_type_str(contacts_record_h record, int CTS_NUMBER_type, char *dest, int dest_len);
713 void ctui_ld_to_dd(ct_list_data *clist_d, ct_detail_data *cdetail_d);
714
715 Evas_Object* ctui_addrbook_popup(Evas_Object *parent, Evas_Smart_Cb item_sel_cb, void *sel_cb_data, ct_addrbook_popup_type ab_type);
716 void ctui_entry_limit_size_set(Evas_Object *entry);
717 Evas_Object* ctui_create_btn(Evas_Object *parent, const char *label);
718 void ctui_genlist_append_separator_10px(Evas_Object *genlist);
719 void ctui_genlist_append_separator_20px(Evas_Object *genlist);
720 void ctui_navi_btn_disabled_set(Evas_Object *navi, Eina_Bool disabled);
721 char* ctui_entry_markup_to_utf8(const char *s);
722 void ctui_entry_entry_set(Evas_Object *entry, const char *s);
723 Evas_Object* ctui_create_editfield(Evas_Object *parent, const char *title, const char *guide, bool multiline);
724 void ctui_genlist_append_separator_20px_with_line(Evas_Object *genlist);
725 void ctui_navi_left_btn_disabled_set(Elm_Object_Item *item, Eina_Bool disabled);
726 void ctui_list_ug_hide_cb(void *data, Evas_Object *obj, void *event_info);
727 Evas_Object* phone_create_select_all(Evas_Object *box, const char *selectall_text, selectall_changed_cb cb, void *cb_data);
728 void ctui_list_free_contacts(Eina_List* list);
729 void ctui_list_refresh_genlist(ct_list_data *clist_d);
730 void ctui_list_handle_search(ct_list_data *clist_d);
731 int phone_detail_log_is_call_ing_type(int type);
732 int phone_detail_log_is_mms_type(int type);
733 int phone_detail_log_is_sms_type(int type);
734 int phone_detail_log_is_email_type(int type);
735 char* phone_detail_log_get_icon_type(int log_type);
736 char* phone_detail_log_get_duration_from_number(int number);
737 void phone_detail_log_init_time_format(void);
738 void phone_detail_log_generate_date_format(UDateFormat **formatter);
739 char* phone_detail_log_get_icon_path_with_action(int log_type);
740 char* phone_detail_log_get_date(UDateFormat ** formatter, int log_time);
741 char* phone_detail_log_get_time(UDateFormat ** formatter, int log_time);
742 int phone_detail_log_get_date_type(int log_time, int log_duration);
743 void phone_detail_log_delete_date_format(UDateFormat **formatter);
744 int phone_detail_log_get_phonenumber_type(int CTS_NUMBER_type);
745 char *ph_log_util_get_formatted_date(UDateFormat **formatter, int log_time, date_style style);
746 void ct_list_clear_pdata(ct_list_data *clist_d);
747 void phone_move_ctxpopup(Evas_Object *popup, Evas_Object *item);
748 void phone_resize_notify(Evas_Object *parent, int rotate);
749 void ctui_get_addressbook_name(int addressbook_id, char *dest, int dest_len);
750 Eina_List* ctui_person_get_writable_contact_list(int person_id);
751 Eina_List* ctui_person_get_number_list(Eina_List *contact_list);
752 Eina_List* ctui_person_get_email_list(Eina_List *contact_list);
753 Eina_List* ctui_person_get_contact_list(int person_id);
754 void ctui_free_record_list(Eina_List *contact_list);
755 int ctui_get_email_type_index(int type);
756 int ctui_get_mfc_option(void);
757
758 int ctui_get_view_mode(void);
759 void ctui_set_view_mode(int addressbook_id);
760
761 contacts_error_e phone_cts_get_list(const char *view_uri, int property_id, int match_value, contacts_list_h *out_list);
762 void phone_cts_free_list(contacts_list_h list);
763 contacts_error_e phone_cts_get_int_from_list(contacts_list_h list, int property_id, int *out_int);
764 contacts_error_e phone_cts_get_str_from_list(contacts_list_h list, int property_id, char **out_str);
765 contacts_error_e phone_cts_get_bool_from_list(contacts_list_h list, int property_id, bool *out_bool);
766 contacts_error_e phone_cts_get_default_number(int person_id, contacts_record_h *record_clone);
767 contacts_error_e phone_cts_get_default_email(int person_id, contacts_record_h *record_clone);
768 void ctui_get_account_name_by_address_book_id(int address_book_id, char *dest, int dest_len);
769 bool ctui_list_make_vcard(int contactid, char *path, int path_length);
770 void ctui_list_lazy_update(const char *view_uri, void *data);
771 char* ctui_list_get_highlight_text(ct_list_data *clist_d, const char *src);
772 Evas_Object *phone_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data);
773 Evas_Object* ctui_create_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data);
774 void ctui_popup_hide_cb(void *data, Evas_Object *obj, void *event_info);
775
776
777 int ctui_list_checked_cnt_get(Eina_List *list);
778 void ctui_list_update_selection_info(void *data);
779 void ctui_list_set_unsweep(ct_list_data *clist_d);
780
781 #endif //__PHONE_COMMON_H__
782 contacts_record_h ctui_get_record_image(contacts_record_h record_contact);
783
784
785 int ctui_get_addressbook_id_by_index(Eina_List *list, int index);
786 Eina_List* ctui_get_addressbook_id_list(const char *ori_string, const char *sep);
787 void ctui_list_edit_navi_pop(void *data, Evas_Object *obj, void *event_info);
788 int ctui_get_addressbook_id(char* addressbook_name);
789
790 void ctui_create_contacts_error_popup(Evas_Object *parent, int err);
791
792 void ctui_list_searchbar_cancel_cb(void *data, Evas_Object *obj, void *event_info);
793