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-dialing.h"
20 #include "vcui-view-elements.h"
22 static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3);
23 static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2);
24 static int __vcui_view_dialing_onhide(voice_call_view_data_t *view_data);
25 static int __vcui_view_dialing_onshow(voice_call_view_data_t *view_data);
26 static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data);
28 static voice_call_view_data_t s_view = {
29 .type = VIEW_DIALLING_VIEW,
32 .onCreate = __vcui_view_dialing_oncreate,
33 .onUpdate = __vcui_view_dialing_onupdate,
34 .onHide = __vcui_view_dialing_onhide,
35 .onShow = __vcui_view_dialing_onshow,
36 .onDestroy = __vcui_view_dialing_ondestroy,
40 voice_call_view_data_t *_vcui_view_dialing_new(vcui_app_call_data_t *ad)
44 s_view.priv = calloc(1, sizeof(vcui_view_dialing_priv_t));
47 CALL_UI_DEBUG("ERROR!!!!!!!!!!! ");
53 void _vcui_view_dialing_draw_txt_ended(voice_call_view_data_t *vd, int end_type)
55 /* ============ Check valid Evas Object ============= */
57 CALL_UI_DEBUG("View Data is NULL");
61 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
64 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
66 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
68 char data[VC_DATA_LENGTH_MAX] = { 0, };
69 edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _(_vcui_get_endcause_string(end_type, data)));
71 /* ============ Check valid Evas Object ============= */
74 void _vcui_view_dialing_draw_txt_connecting(voice_call_view_data_t *vd)
76 /* ============ Check valid Evas Object ============= */
78 CALL_UI_DEBUG("View Data is NULL");
82 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
85 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
87 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
89 edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_CONNECTING"));
91 /* ============ Check valid Evas Object ============= */
94 void _vcui_view_dialing_draw_txt_dialing(voice_call_view_data_t *vd)
96 /* ============ Check valid Evas Object ============= */
98 CALL_UI_DEBUG("View Data is NULL");
102 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
105 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
107 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
109 edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING"));
111 /* ============ Check valid Evas Object ============= */
114 static void __vcui_view_dialing_update_screen(Evas_Object *eo, void *data)
118 voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
119 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
121 call_data_t *now_call_data = _vcui_doc_get_recent_mo();
123 /* ============ Check valid Evas Object ============= */
125 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
127 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
130 /* ============ Check valid Evas Object ============= */
132 if (now_call_data == NULL) {
133 CALL_UI_DEBUG("Now Data is NULL");
138 if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) {
139 _vcui_show_wallpaper_image(priv->contents);
141 CALL_UI_DEBUG("there is caller image.");
143 _vcui_show_wallpaper_image(priv->contents);
144 priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path);
147 /* call name (if nothing, call number) */
148 if (strlen((char *)priv->now_data->call_display) == 0) {
149 edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num);
151 edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display);
152 edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num);
155 _vcui_create_top_left_button_disabled(vd);
156 _vcui_create_top_middle_button_disabled(vd);
157 _vcui_create_top_right_button_disabled(vd);
158 _vcui_create_bottom_left_button(vd);
159 _vcui_create_bottom_middle_button_disabled(vd);
160 _vcui_create_bottom_right_button_disabled(vd);
162 _vcui_create_button_bigend(vd);
164 evas_object_show(eo);
167 static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data)
171 voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
172 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
174 call_data_t *now_call_data = _vcui_doc_get_recent_mo();
176 /* ============ Check valid Evas Object ============= */
178 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
180 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
183 /* ============ Check valid Evas Object ============= */
185 if (now_call_data == NULL) {
186 CALL_UI_DEBUG("Now Data is NULL");
191 if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) {
192 _vcui_show_wallpaper_image(priv->contents);
194 CALL_UI_DEBUG("there is caller image.");
196 _vcui_show_wallpaper_image(priv->contents);
197 priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path);
200 /* call name (if nothing, call number) */
201 if (strlen((char *)priv->now_data->call_display) == 0) {
202 edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num);
204 edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display);
205 edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num);
208 edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING"));
210 _vcui_create_top_left_button_disabled(vd);
211 _vcui_create_top_middle_button_disabled(vd);
212 _vcui_create_top_right_button_disabled(vd);
213 _vcui_create_bottom_left_button(vd);
214 _vcui_create_bottom_middle_button_disabled(vd);
215 _vcui_create_bottom_right_button_disabled(vd);
217 _vcui_create_button_bigend(vd);
219 evas_object_show(eo);
222 static Evas_Object *__vcui_view_dialing_create_contents(void *data)
224 CALL_UI_KPI("__vcui_view_dialing_create_contents start");
225 voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
226 Evas_Object *eo = NULL;
229 eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_MOVIEW);
232 CALL_UI_KPI("__vcui_view_dialing_create_contents done");
236 static Evas_Object *__vcui_view_dialing_create_layout_main(Evas_Object *parent)
238 CALL_UI_KPI("__vcui_view_dialing_create_layout_main start");
239 if (parent == NULL) {
240 CALL_UI_DEBUG("ERROR");
245 ly = elm_layout_add(parent);
246 retvm_if(ly == NULL, NULL, "Failed elm_layout_add.");
248 elm_layout_theme_set(ly, "standard", "window", "integration");
249 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
250 elm_win_resize_object_add(parent, ly);
252 edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm");
253 edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm");
254 evas_object_show(ly);
255 CALL_UI_KPI("__vcui_view_dialing_create_layout_main done");
259 static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3)
261 CALL_UI_DEBUG("dialling view create!!");
263 vcui_app_call_data_t *ad = view_data->app_data;
264 vcui_view_dialing_priv_t *priv = view_data->priv;
266 if (!view_data->layout) {
268 /* Create Main Layout */
269 view_data->layout = __vcui_view_dialing_create_layout_main(ad->win_main);
271 if (view_data->layout == NULL) {
272 CALL_UI_DEBUG("ERROR");
275 /* Create Contents */
276 priv->contents = __vcui_view_dialing_create_contents(view_data);
277 elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents);
279 evas_object_name_set(priv->contents, "DIALVIEW");
280 CALL_UI_DEBUG("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
283 __vcui_view_dialing_onshow(view_data);
287 static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2)
289 CALL_UI_DEBUG("dialling view update");
290 vcui_view_dialing_priv_t *priv = view_data->priv;
292 __vcui_view_dialing_update_screen(priv->contents, view_data);
296 static int __vcui_view_dialing_onhide(voice_call_view_data_t *view_data)
298 CALL_UI_DEBUG("dialling view hide");
301 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)view_data->priv;
302 valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
305 CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
308 evas_object_hide(view_data->layout);
312 static int __vcui_view_dialing_onshow(voice_call_view_data_t *view_data)
314 CALL_UI_KPI("__vcui_view_dialing_onshow start");
315 CALL_UI_DEBUG("dialling view show");
317 vcui_view_dialing_priv_t *priv = view_data->priv;
318 priv->now_data = _vcui_doc_get_recent_mo();
319 if (priv->now_data == NULL) {
320 CALL_UI_DEBUG("call data is null");
324 __vcui_view_dialing_draw_screen(priv->contents, view_data);
326 evas_object_hide(view_data->layout);
327 evas_object_show(view_data->layout);
329 if (_vcui_is_idle_lock() == CALL_LOCK)
330 _vcui_app_win_set_noti_type(EINA_TRUE);
332 _vcui_app_win_set_noti_type(EINA_FALSE);
334 CALL_UI_KPI("__vcui_view_dialing_onshow done");
339 static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data)
341 CALL_UI_DEBUG("dialling view destroy");
343 vcui_app_call_data_t *ad = _vcui_get_app_data();
345 voice_call_view_data_t *vd = ad->view_st[VIEW_DIALLING_VIEW];
346 vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
349 if (priv->contents) {
350 evas_object_del(priv->contents);
351 priv->contents = NULL;
358 if (vd->layout != NULL) {
359 evas_object_hide(vd->layout);
360 evas_object_del(vd->layout);
364 ad->view_st[VIEW_DIALLING_VIEW] = NULL;