2 * Copyright 2012 Samsung Electronics Co., Ltd
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
8 * http://www.tizenopensource.org/license
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.
18 #include "vcui-application.h"
19 #include "vcui-view-elements.h"
20 #include "vcui-view-dialing.h"
21 #include "vcui-view-incoming.h"
22 #include "vcui-view-single-call.h"
23 #include "vcui-view-multi-call-conf.h"
24 #include "vcui-view-multi-call-split.h"
25 #include "vcui-view-multi-call-list.h"
26 #include "vcui-view-keypad.h"
27 #include "vcui-view-callend.h"
29 static void __vcui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info);
30 static void __vcui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info);
31 static void __vcui_join_btn_cb(void *data, Evas_Object *obj, void *event_info);
32 static void __vcui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info);
33 static void __vcui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info);
34 static void __vcui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info);
35 static void __vcui_sound_path_btn_cb(void *data, Evas_Object *obj, void *event_info);
36 static void __vcui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info);
37 static void __vcui_spk_press_btn_cb(void *data, Evas_Object *obj, void *event_info);
38 static void __vcui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info);
39 static void __vcui_bigend_btn_cb(void *data, Evas_Object *obj, void *event_info);
40 static void __vcui_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
41 static void __vcui_reject_btn_cb(void *data, Evas_Object *obj, void *event_info);
42 static void __vcui_second_incoming_reject_btn_cb(void *data, Evas_Object *obj, void *event_info);
43 static void __vcui_second_incoming_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
44 static void __vcui_second_incoming_end_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
45 static void __vcui_second_incoming_end_active_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
46 static void __vcui_second_incoming_end_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
47 static void __vcui_second_incoming_end_all_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info);
48 static void __vcui_videocall_btn_cb(void *data, Evas_Object *obj, void *event_info);
49 static void __vcui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info);
50 static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info);
52 static void __vcui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info)
55 _vcui_engine_hold_unhold_swap_call();
58 static void __vcui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info)
61 _vcui_engine_hold_unhold_swap_call();
64 void _vcui_swap_btn_cb(void *data, Evas_Object *obj, void *event_info)
67 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
68 vcui_app_call_data_t *ad = vd->app_data;
70 ad->bholdisleft = ad->bswapped;
71 _vcui_view_popup_load(_("IDS_CALL_POP_SWAPPED"), POPUP_TIMEOUT_LONG, EINA_FALSE);
72 _vcui_engine_hold_unhold_swap_call();
75 static void __vcui_join_btn_cb(void *data, Evas_Object *obj, void *event_info)
78 _vcui_create_top_right_button_disabled(data);
79 _vcui_engine_join_call();
82 void _vcui_conf_img_cb(void *data, Evas_Object *obj, void *event_info) /* for multicall list view */
85 _vcui_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, 0);
88 static void __vcui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info)
91 _vcui_view_change(VIEW_INCALL_KEYPAD_VIEW, 0, NULL, NULL);
94 static void __vcui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info)
97 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
98 _vcui_doc_launch_contact_list_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data));
101 static void __vcui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info)
104 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
105 vcui_app_call_data_t *ad = vd->app_data;
107 _vcui_doc_launch_phoneui_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data));
110 static void __vcui_sound_path_btn_cb(void *data, Evas_Object *obj, void *event_info)
113 _vcui_view_popup_load_snd_path();
116 static void __vcui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info)
119 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
120 vcui_app_call_data_t *ad = vd->app_data;
122 CALL_UI_DEBUG("vd->type:[%d]", vd->type);
124 _vcui_engine_speaker_on_off(EINA_TRUE);
126 ad->speaker_status = EINA_TRUE;
127 _vcui_create_bottom_left_button(vd);
130 static void __vcui_spk_press_btn_cb(void *data, Evas_Object *obj, void *event_info)
133 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
134 vcui_app_call_data_t *ad = vd->app_data;
136 CALL_UI_DEBUG("vd->type:[%d]", vd->type);
138 _vcui_engine_speaker_on_off(EINA_FALSE);
140 ad->speaker_status = EINA_FALSE;
141 _vcui_create_bottom_left_button(vd);
144 static void __vcui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info)
148 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
149 vcui_app_call_data_t *ad = vd->app_data;
151 CALL_UI_DEBUG("vd->type:[%d]", vd->type);
153 _vcui_engine_mute_on_off(EINA_TRUE);
155 ad->mute_status = EINA_TRUE;
156 _vcui_create_bottom_middle_button(vd);
159 static void __vcui_mute_press_btn_cb(void *data, Evas_Object *obj, void *event_info)
162 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
163 vcui_app_call_data_t *ad = vd->app_data;
165 CALL_UI_DEBUG("vd->type:[%d]", vd->type);
167 _vcui_engine_mute_on_off(EINA_FALSE);
169 ad->mute_status = EINA_FALSE;
170 _vcui_create_bottom_middle_button(vd);
173 static void __vcui_bigend_btn_cb(void *data, Evas_Object *obj, void *event_info)
177 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
178 vcui_app_call_data_t *ad = vd->app_data;
179 CALL_UI_DEBUG("vd->type:[%d]", vd->type);
181 _vcui_create_button_bigend_disabled(vd);
184 case VIEW_DIALLING_VIEW:
186 _vcui_engine_cancel_call();
189 case VIEW_INCALL_ONECALL_VIEW:
191 _vcui_engine_end_call();
194 case VIEW_INCALL_MULTICALL_SPLIT_VIEW:
196 _vcui_engine_end_active_calls();
199 case VIEW_INCALL_MULTICALL_CONF_VIEW:
201 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv;
202 if (priv->call_status == CALL_HOLD)
203 _vcui_engine_end_held_calls();
205 _vcui_engine_end_active_calls();
206 ad->call_end_type = CALL_END_TYPE_CONF_CALL;
209 case VIEW_INCALL_MULTICALL_LIST_VIEW:
211 vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *) vd->priv;
212 if (priv->call_status == CALL_HOLD)
213 _vcui_engine_end_held_calls();
215 _vcui_engine_end_active_calls();
218 vcall_engine_get_group_count(&grp_count);
219 CALL_UI_DEBUG("No. of groups - %d", grp_count);
221 ad->call_end_type = CALL_END_TYPE_CONF_CALL;
223 ad->call_end_type = CALL_END_TYPE_NONE;
227 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
234 static void __vcui_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
237 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
238 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
240 if (priv->bselected_btn == EINA_TRUE) {
241 CALL_UI_DEBUG("already clicked!!");
243 priv->bselected_btn = EINA_TRUE;
244 _vcui_engine_answer_call();
248 static void __vcui_reject_btn_cb(void *data, Evas_Object *obj, void *event_info)
251 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
252 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
254 if (priv->bselected_btn == EINA_TRUE) {
255 CALL_UI_DEBUG("already clicked!!");
257 priv->bselected_btn = EINA_TRUE;
258 _vcui_engine_reject_call();
262 static void __vcui_second_incoming_reject_btn_cb(void *data, Evas_Object *obj, void *event_info)
265 _vcui_engine_reject_call();
268 static void __vcui_second_incoming_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
271 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
273 case VIEW_INCOMING_VIEW:
275 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
276 priv->bdont_refresh = EINA_TRUE;
280 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
284 _vcui_engine_answer_call_by_type(1);
287 static void __vcui_second_incoming_end_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
290 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
292 case VIEW_INCOMING_VIEW:
294 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
295 priv->bdont_refresh = EINA_TRUE;
299 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
303 _vcui_engine_answer_call_by_type(2);
306 static void __vcui_second_incoming_end_active_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
309 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
311 case VIEW_INCOMING_VIEW:
313 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
314 priv->bdont_refresh = EINA_TRUE;
318 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
322 _vcui_engine_answer_call_by_type(2);
325 static void __vcui_second_incoming_end_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
328 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
330 case VIEW_INCOMING_VIEW:
332 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
333 priv->bdont_refresh = EINA_TRUE;
337 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
341 _vcui_engine_answer_call_by_type(3);
344 static void __vcui_second_incoming_end_all_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info)
347 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
349 case VIEW_INCOMING_VIEW:
351 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
352 priv->bdont_refresh = EINA_TRUE;
356 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
360 _vcui_engine_answer_call_by_type(4);
363 Evas_Object *_vcui_create_top_left_button(void *data)
368 Evas_Object *_vcui_create_top_left_button_disabled(void *data)
374 Evas_Object *_vcui_create_top_middle_button(void *data)
379 Evas_Object *_vcui_create_top_middle_button_disabled(void *data)
384 Evas_Object *_vcui_create_top_right_button(void *data)
389 Evas_Object *_vcui_create_top_right_button_disabled(void *data)
394 /* Speaker Button ENABLED */
395 Evas_Object *_vcui_create_bottom_left_button(void *data)
397 CALL_UI_KPI("_vcui_create_bottom_left_button start");
403 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
404 vcui_app_call_data_t *ad = vd->app_data;
407 case VIEW_DIALLING_VIEW:
409 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv;
410 layout = priv->contents;
413 case VIEW_INCALL_ONECALL_VIEW:
415 incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv;
416 layout = priv->contents;
419 case VIEW_INCALL_MULTICALL_SPLIT_VIEW:
421 incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv;
422 layout = priv->contents;
425 case VIEW_INCALL_MULTICALL_CONF_VIEW:
427 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv;
428 layout = priv->contents;
432 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
438 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_speaker");
440 edje_object_part_unswallow(_EDJ(layout), sw);
443 if (EINA_TRUE == _vcui_is_headset_conected()) {
444 btn = elm_button_add(layout);
445 CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn");
446 elm_object_style_set(btn, "style_call_sixbtn");
447 CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn");
448 elm_object_part_content_set(layout, "btn_speaker", btn);
449 ic = elm_icon_add(layout);
450 elm_icon_file_set(ic, SPEAKER_ICON, NULL);
451 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
452 elm_icon_resizable_set(ic, 1, 1);
453 elm_object_part_content_set(btn, "icon", ic);
454 elm_object_text_set(btn, _("IDS_MSGC_OPT_SOUND"));
455 evas_object_smart_callback_add(btn, "clicked", __vcui_sound_path_btn_cb, vd);
457 if (ad->speaker_status == EINA_FALSE) {
458 btn = elm_button_add(layout);
459 CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn");
460 elm_object_style_set(btn, "style_call_sixbtn");
461 CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn");
462 elm_object_part_content_set(layout, "btn_speaker", btn);
463 ic = elm_icon_add(layout);
464 elm_icon_file_set(ic, SPEAKER_ICON, NULL);
465 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
466 elm_icon_resizable_set(ic, 1, 1);
467 elm_object_part_content_set(btn, "icon", ic);
468 elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER"));
469 evas_object_smart_callback_add(btn, "clicked", __vcui_spk_btn_cb, vd);
471 btn = elm_button_add(layout);
472 CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_pressed");
473 elm_object_style_set(btn, "style_call_sixbtn_pressed");
474 CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_pressed");
475 elm_object_part_content_set(layout, "btn_speaker", btn);
476 ic = elm_icon_add(layout);
477 elm_icon_file_set(ic, SPEAKER_ICON, NULL);
478 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
479 elm_icon_resizable_set(ic, 1, 1);
480 elm_object_part_content_set(btn, "icon", ic);
481 elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER"));
482 evas_object_smart_callback_add(btn, "clicked", __vcui_spk_press_btn_cb, vd);
485 CALL_UI_KPI("_vcui_create_bottom_left_button done");
489 /* Speaker Button DISABLED */
490 Evas_Object *_vcui_create_bottom_left_button_disabled(void *data)
492 CALL_UI_KPI("_vcui_create_bottom_left_button_disabled start");
498 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
500 case VIEW_ENDCALL_VIEW:
502 endcall_view_priv_t *priv = (endcall_view_priv_t *) vd->priv;
503 layout = priv->contents;
507 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
513 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_speaker");
515 edje_object_part_unswallow(_EDJ(layout), sw);
519 btn = elm_button_add(layout);
520 CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled");
521 elm_object_style_set(btn, "style_call_sixbtn_disabled");
522 CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled");
523 elm_object_part_content_set(layout, "btn_speaker", btn);
524 ic = elm_icon_add(layout);
525 elm_icon_file_set(ic, SPEAKER_DISABLED_ICON, NULL);
526 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
527 elm_icon_resizable_set(ic, 1, 1);
528 elm_object_part_content_set(btn, "icon", ic);
529 elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER"));
530 CALL_UI_KPI("_vcui_create_bottom_left_button_disabled done");
534 Evas_Object *_vcui_create_bottom_middle_button(void *data)
539 Evas_Object *_vcui_create_bottom_middle_button_disabled(void *data)
544 Evas_Object *_vcui_create_bottom_right_button(void *data)
550 Evas_Object *_vcui_create_bottom_right_button_disabled(void *data)
556 Evas_Object *_vcui_create_button_bigend(void *data)
558 CALL_UI_KPI("_vcui_create_button_bigend start");
563 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
565 case VIEW_DIALLING_VIEW:
567 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv;
568 layout = priv->contents;
571 case VIEW_INCALL_ONECALL_VIEW:
573 incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv;
574 layout = priv->contents;
577 case VIEW_INCALL_MULTICALL_SPLIT_VIEW:
579 incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv;
580 layout = priv->contents;
583 case VIEW_INCALL_MULTICALL_CONF_VIEW:
585 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv;
586 layout = priv->contents;
589 case VIEW_INCALL_MULTICALL_LIST_VIEW:
591 vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *) vd->priv;
592 layout = priv->contents;
596 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
602 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend");
604 edje_object_part_unswallow(_EDJ(layout), sw);
608 btn = elm_button_add(layout);
609 elm_object_part_content_set(layout, "btn_bigend", btn);
610 CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red");
611 elm_object_style_set(btn, "text_only/style_call_text_only_red");
612 CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red");
613 elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL"));
614 evas_object_smart_callback_add(btn, "clicked", __vcui_bigend_btn_cb, vd);
615 CALL_UI_KPI("_vcui_create_button_bigend done");
619 Evas_Object *_vcui_create_button_bigend_disabled(void *data)
621 CALL_UI_KPI("_vcui_create_button_bigend_disabled start");
626 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
628 case VIEW_DIALLING_VIEW:
630 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv;
631 layout = priv->contents;
634 case VIEW_INCALL_ONECALL_VIEW:
636 incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv;
637 layout = priv->contents;
640 case VIEW_INCALL_MULTICALL_SPLIT_VIEW:
642 incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv;
643 layout = priv->contents;
646 case VIEW_INCALL_MULTICALL_CONF_VIEW:
648 vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv;
649 layout = priv->contents;
652 case VIEW_ENDCALL_VIEW:
654 endcall_view_priv_t *priv = (endcall_view_priv_t *) vd->priv;
655 layout = priv->contents;
659 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
665 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend");
667 edje_object_part_unswallow(_EDJ(layout), sw);
671 btn = elm_button_add(layout);
672 elm_object_part_content_set(layout, "btn_bigend", btn);
673 CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red_disabled");
674 elm_object_style_set(btn, "text_only/style_call_text_only_red_disabled");
675 CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red_disabled");
676 elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL"));
677 CALL_UI_KPI("_vcui_create_button_bigend_disabled done");
681 Evas_Object *_vcui_create_conf_list_button_hold(void *data)
686 Evas_Object *_vcui_create_button_accept(void *data)
692 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
694 case VIEW_INCOMING_VIEW:
696 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
697 layout = priv->contents;
701 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
707 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_accept");
709 edje_object_part_unswallow(_EDJ(layout), sw);
713 btn = elm_button_add(layout);
714 elm_object_part_content_set(layout, "btn_accept", btn);
715 CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_green");
716 elm_object_style_set(btn, "text_only/style_call_text_only_green");
717 CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_green");
718 elm_object_text_set(btn, _("IDS_CALL_BUTTON_ACCEPT"));
719 evas_object_smart_callback_add(btn, "clicked", __vcui_accept_btn_cb, vd);
724 Evas_Object *_vcui_create_button_reject(void *data)
730 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
732 case VIEW_INCOMING_VIEW:
734 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
735 layout = priv->contents;
739 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
745 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_reject");
747 edje_object_part_unswallow(_EDJ(layout), sw);
751 btn = elm_button_add(layout);
752 elm_object_part_content_set(layout, "btn_reject", btn);
753 CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red");
754 elm_object_style_set(btn, "text_only/style_call_text_only_red");
755 CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red");
756 elm_object_text_set(btn, _("IDS_CALL_BUTTON_REJECT"));
757 evas_object_smart_callback_add(btn, "clicked", __vcui_reject_btn_cb, vd);
762 Evas_Object *_vcui_create_button_second_incoming_reject(void *data, char *text, char *part_name)
768 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
770 case VIEW_INCOMING_VIEW:
772 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
773 layout = priv->contents;
777 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
783 sw = edje_object_part_swallow_get(_EDJ(layout), part_name);
785 edje_object_part_unswallow(_EDJ(layout), sw);
789 btn = elm_button_add(layout);
790 elm_object_part_content_set(layout, part_name, btn);
791 CALL_UI_KPI("elm_object_style_set start :: multiline_text_black");
792 elm_object_style_set(btn, "multiline_text_black");
793 CALL_UI_KPI("elm_object_style_set done :: multiline_text_black");
794 elm_object_text_set(btn, text);
795 evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_reject_btn_cb, vd);
800 Evas_Object *_vcui_create_button_second_incoming_hold_and_accept(void *data, char *text)
805 Evas_Object *_vcui_create_button_second_incoming_end_and_accept(void *data, char *text)
811 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
813 case VIEW_INCOMING_VIEW:
815 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
816 layout = priv->contents;
820 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
826 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming4");
828 edje_object_part_unswallow(_EDJ(layout), sw);
832 btn = elm_button_add(layout);
833 elm_object_part_content_set(layout, "btn_incoming4", btn);
834 CALL_UI_KPI("elm_object_style_set start :: multiline_text_red");
835 elm_object_style_set(btn, "multiline_text_red");
836 CALL_UI_KPI("elm_object_style_set done :: multiline_text_red");
837 elm_object_text_set(btn, text);
838 evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_and_accept_btn_cb, vd);
843 Evas_Object *_vcui_create_button_second_incoming_end_active_and_accept(void *data, char *text)
849 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
851 case VIEW_INCOMING_VIEW:
853 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
854 layout = priv->contents;
858 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
864 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming2");
866 edje_object_part_unswallow(_EDJ(layout), sw);
870 btn = elm_button_add(layout);
871 elm_object_part_content_set(layout, "btn_incoming2", btn);
872 CALL_UI_KPI("elm_object_style_set start :: multiline_text_black");
873 elm_object_style_set(btn, "multiline_text_black");
874 CALL_UI_KPI("elm_object_style_set done :: multiline_text_black");
875 elm_object_text_set(btn, text);
876 evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_active_and_accept_btn_cb, vd);
881 Evas_Object *_vcui_create_button_second_incoming_end_hold_and_accept(void *data, char *text)
887 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
889 case VIEW_INCOMING_VIEW:
891 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
892 layout = priv->contents;
896 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
902 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming3");
904 edje_object_part_unswallow(_EDJ(layout), sw);
908 btn = elm_button_add(layout);
909 elm_object_part_content_set(layout, "btn_incoming3", btn);
910 CALL_UI_KPI("elm_object_style_set start :: multiline_text_black");
911 elm_object_style_set(btn, "multiline_text_black");
912 CALL_UI_KPI("elm_object_style_set done :: multiline_text_black");
913 elm_object_text_set(btn, text);
914 evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_hold_and_accept_btn_cb, vd);
919 Evas_Object *_vcui_create_button_second_incoming_end_all_and_accept(void *data, char *text)
925 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
927 case VIEW_INCOMING_VIEW:
929 incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv;
930 layout = priv->contents;
934 CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type);
940 sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming4");
942 edje_object_part_unswallow(_EDJ(layout), sw);
946 btn = elm_button_add(layout);
947 elm_object_part_content_set(layout, "btn_incoming4", btn);
948 CALL_UI_KPI("elm_object_style_set start :: multiline_text_red");
949 elm_object_style_set(btn, "multiline_text_red");
950 CALL_UI_KPI("elm_object_style_set done :: multiline_text_red");
951 elm_object_text_set(btn, text);
952 evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_all_and_accept_btn_cb, vd);
957 Evas_Object *_vcui_show_wallpaper_image(Evas_Object *contents)
962 Evas_Object *_vcui_show_calling_name_bg(Evas_Object *contents)
964 vcui_app_call_data_t *ad = _vcui_get_app_data();
965 Evas_Object *sw = NULL;
966 Evas_Object *ic = NULL;
968 sw = edje_object_part_swallow_get(_EDJ(contents), "swl_calling_name_bg");
970 edje_object_part_unswallow(_EDJ(contents), sw);
974 ic = elm_icon_add(ad->win_main);
975 elm_object_part_content_set(contents, "swl_calling_name_bg", ic);
976 elm_icon_file_set(ic, CALLING_NAME_BG_IMAGE, NULL);
977 elm_icon_fill_outside_set(ic, EINA_TRUE);
982 void _vcui_delete_contact_image(Evas_Object *contents)
986 sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid");
988 edje_object_part_unswallow(_EDJ(contents), sw);
993 Evas_Object *_vcui_show_contact_image(Evas_Object *contents, Evas_Object *win_main, char *path)
998 sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid");
1000 edje_object_part_unswallow(_EDJ(contents), sw);
1001 evas_object_del(sw);
1004 ic = elm_icon_add(win_main);
1005 elm_object_part_content_set(contents, "swl_cid", ic);
1006 elm_icon_file_set(ic, path, NULL);
1011 Evas_Object *_vcui_show_default_image(Evas_Object *contents, Evas_Object *win_main, char *path)
1016 sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid");
1018 edje_object_part_unswallow(_EDJ(contents), sw);
1019 evas_object_del(sw);
1022 ic = elm_icon_add(win_main);
1023 elm_object_part_content_set(contents, "swl_cid", ic);
1024 elm_icon_file_set(ic, path, NULL);
1029 void _vcui_set_full_image(Evas_Object *contents, Evas_Object *win_main, char *img_path)
1031 Evas_Object *d_image;
1033 vcui_app_call_data_t *ad = _vcui_get_app_data();
1035 CALL_UI_DEBUG("path:[%s]", img_path);
1037 sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid_background");
1039 edje_object_part_unswallow(_EDJ(contents), sw);
1040 evas_object_del(sw);
1043 d_image = elm_image_add(contents);
1044 elm_image_file_set(d_image, img_path, NULL);
1045 elm_object_part_content_set(contents, "swl_cid_background", d_image);
1048 static void __vcui_videocall_btn_cb(void *data, Evas_Object *obj, void *event_info)
1050 CALL_UI_DEBUG("__vcui_videocall_btn_cb..");
1051 char *tel_num = (char *)data;
1054 kb = bundle_create();
1055 bundle_add(kb, "KEY_CALL_TYPE", "MO");
1056 bundle_add(kb, "number", tel_num);
1057 aul_launch_app("org.tizen.vtmain", kb);
1063 _vcui_view_common_call_end_timer_reset();
1064 evas_object_smart_callback_del(obj, "clicked", __vcui_videocall_btn_cb);
1067 static void __vcui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info)
1069 CALL_UI_DEBUG("__vcui_voicecall_btn_cb..");
1070 vcui_app_call_data_t *ad = _vcui_get_app_data();
1071 char *tel_num = (char *)data;
1072 vcui_call_type_t call_type;
1073 vcui_call_mo_data_t call_data;
1075 _vcui_view_common_timer_redial_reset();
1076 ad->speaker_status = EINA_FALSE;
1077 ad->mute_status = EINA_FALSE;
1079 memset(&call_data, 0, sizeof(call_data));
1080 call_type = VCUI_CALL_TYPE_MO;
1082 snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tel_num);
1084 _vcui_engine_interface_process_mo_call(call_type, &call_data);
1089 evas_object_smart_callback_del(obj, "clicked", __vcui_voicecall_btn_cb);
1092 static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info)
1094 CALL_UI_DEBUG("__vcui_msg_btn_cb..");
1095 char *tel_num = (char *)data;
1097 _vcui_doc_launch_msg_composer(NULL, tel_num);
1102 _vcui_view_common_call_end_timer_reset();
1103 evas_object_smart_callback_del(obj, "clicked", __vcui_msg_btn_cb);
1106 static void __vcui_add_to_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info)
1108 CALL_UI_DEBUG("__vcui_add_to_contacts_btn_cb..");
1109 vcui_app_call_data_t *ad = _vcui_get_app_data();
1110 voice_call_view_data_t *vd = ad->view_st[VIEW_ENDCALL_VIEW];
1111 char *tel_num = (char *)data;
1113 _vcui_doc_launch_add_to_contacts_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data), tel_num);
1118 evas_object_smart_callback_del(obj, "clicked", __vcui_add_to_contacts_btn_cb);
1121 static void __qp_end_btn_cb(void *data, Evas_Object * obj, void *event_info)
1123 CALL_UI_DEBUG("..");
1124 voice_call_view_data_t *vd = (voice_call_view_data_t *) data;
1125 vcui_app_call_data_t *ad = vd->app_data;
1128 vcall_engine_get_group_count(&grp_count);
1129 CALL_UI_DEBUG("No. of groups - %d", grp_count);
1131 if (grp_count > 1) {
1132 CALL_UI_DEBUG("multi-party call");
1133 _vcui_engine_end_active_calls();
1134 } else if (grp_count == 1) {
1135 CALL_UI_DEBUG("single-party call");
1136 int all_calls = 0, call_status = 0;
1137 all_calls = _vcui_doc_get_count();
1138 call_status = _vcui_doc_get_show_callstatus();
1139 CALL_UI_DEBUG("all_calls[%d], call_status[%d]", all_calls, call_status);
1141 if (all_calls > 1) {
1142 CALL_UI_DEBUG("End active conference call");
1143 if (call_status == CALL_HOLD)
1144 _vcui_engine_end_held_calls();
1146 _vcui_engine_end_active_calls();
1147 ad->call_end_type = CALL_END_TYPE_CONF_CALL; /*conf call end screen SHOW*/
1148 } else if (all_calls == 1) {
1149 CALL_UI_DEBUG("End single active call");
1150 _vcui_engine_end_call();
1152 CALL_UI_DEBUG("invalid case");
1155 CALL_UI_DEBUG("dialing/connecting screen end");
1156 _vcui_engine_cancel_call();