Make TIZEN 2.0
[apps/home/call.git] / ui / src / vcui-view-dialing.c
similarity index 60%
rename from ui/vcui-view-dialing.c
rename to ui/src/vcui-view-dialing.c
index b18a144..4d8c1b3 100755 (executable)
 #include "vcui-application.h"
 #include "vcui-view-dialing.h"
 #include "vcui-view-elements.h"
+#include "vcui-view-common.h"
+#include "vcui-app-window.h"
+#include "vcui-view-keypad.h"
+
+#define        VIEW_DIALING_LAYOUT_ID "DIALVIEW"
+typedef struct {
+       Evas_Object *contents;
+       Evas_Object *caller_info;
+       Evas_Object *btn_ly;
+       Evas_Object *ic;
+} vcui_view_dialing_priv_t;
 
 static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3);
 static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2);
@@ -59,111 +70,20 @@ void _vcui_view_dialing_draw_txt_ended(voice_call_view_data_t *vd, int end_type)
        }
 
        vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
+       vcui_app_call_data_t *ad = _vcui_get_app_data();
 
        int valid = 0;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
+       valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID);
        if (valid == -1) {
                CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
        } else {
                char data[VC_DATA_LENGTH_MAX] = { 0, };
-               edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _(_vcui_get_endcause_string(end_type, data)));
+               edje_object_part_text_set(_EDJ(priv->caller_info), "txt_status", _(_vcui_get_endcause_string(end_type, data)));
+               ad->quickpanel_text = data;
        }
        /* ============ Check valid Evas Object ============= */
 }
 
-void _vcui_view_dialing_draw_txt_connecting(voice_call_view_data_t *vd)
-{
-       /* ============ Check valid Evas Object ============= */
-       if (vd == NULL) {
-               CALL_UI_DEBUG("View Data is NULL");
-               return;
-       }
-
-       vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
-
-       int valid = 0;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
-       if (valid == -1) {
-               CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
-       } else {
-               edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_CONNECTING"));
-       }
-       /* ============ Check valid Evas Object ============= */
-}
-
-void _vcui_view_dialing_draw_txt_dialing(voice_call_view_data_t *vd)
-{
-       /* ============ Check valid Evas Object ============= */
-       if (vd == NULL) {
-               CALL_UI_DEBUG("View Data is NULL");
-               return;
-       }
-
-       vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
-
-       int valid = 0;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
-       if (valid == -1) {
-               CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
-       } else {
-               edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING"));
-       }
-       /* ============ Check valid Evas Object ============= */
-}
-
-static void __vcui_view_dialing_update_screen(Evas_Object *eo, void *data)
-{
-       CALL_UI_DEBUG("..");
-
-       voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
-       vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
-
-       call_data_t *now_call_data = _vcui_doc_get_recent_mo();
-
-       /* ============ Check valid Evas Object ============= */
-       int valid = 0;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
-       if (valid == -1) {
-               CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
-               return;
-       }
-       /* ============ Check valid Evas Object ============= */
-
-       if (now_call_data == NULL) {
-               CALL_UI_DEBUG("Now Data is NULL");
-               return;
-       }
-
-       /* call image */
-       if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) {
-               _vcui_show_wallpaper_image(priv->contents);
-       } else {
-               CALL_UI_DEBUG("there is caller image.");
-
-               _vcui_show_wallpaper_image(priv->contents);
-               priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path);
-       }
-
-       /* call name (if nothing, call number) */
-       if (strlen((char *)priv->now_data->call_display) == 0) {
-               edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num);
-       } else {
-               edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display);
-               edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num);
-       }
-
-       _vcui_create_top_left_button_disabled(vd);
-       _vcui_create_top_middle_button_disabled(vd);
-       _vcui_create_top_right_button_disabled(vd);
-       _vcui_create_bottom_left_button(vd);
-       _vcui_create_bottom_middle_button_disabled(vd);
-       _vcui_create_bottom_right_button_disabled(vd);
-
-       _vcui_create_button_bigend(vd);
-
-       evas_object_show(eo);
-}
-
 static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data)
 {
        CALL_UI_DEBUG("..");
@@ -171,11 +91,12 @@ static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data)
        voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
        vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
 
-       call_data_t *now_call_data = _vcui_doc_get_recent_mo();
+       call_data_t *now_call_data = _vcui_doc_get_recent_mo_call_data();
+       Eina_Bool bshift_alert = EINA_FALSE;
 
        /* ============ Check valid Evas Object ============= */
        int valid = 0;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
+       valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID);
        if (valid == -1) {
                CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
                return;
@@ -187,46 +108,57 @@ static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data)
                return;
        }
 
+       char *file_path = _vcui_doc_get_caller_id_file_path(now_call_data);
+       CALL_UI_DEBUG("file_path: %s", file_path);
+
        /* call image */
-       if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) {
-               _vcui_show_wallpaper_image(priv->contents);
+       _vcui_delete_contact_image(priv->contents);
+       if (strcmp(file_path, NOIMG_ICON) == 0) {
+               _vcui_view_common_show_noid_image(priv->contents);
+               bshift_alert = EINA_TRUE;
        } else {
-               CALL_UI_DEBUG("there is caller image.");
-
-               _vcui_show_wallpaper_image(priv->contents);
-               priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path);
+               {
+                       _vcui_show_wallpaper_image(priv->contents);
+                       priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, file_path);
+               }
        }
 
+       _vcui_show_call_bg_img(priv->contents);
+
+       char *call_number = _vcui_doc_get_call_number(now_call_data);
+       char *call_name = _vcui_doc_get_call_display_name(now_call_data);
        /* call name (if nothing, call number) */
-       if (strlen((char *)priv->now_data->call_display) == 0) {
-               edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num);
+       if (strlen(call_name) == 0) {
+               _vcui_show_caller_info_name(vd, call_number, EINA_FALSE);
        } else {
-               edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display);
-               edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num);
+               _vcui_show_caller_info_name(vd, call_name, EINA_FALSE);
+               _vcui_show_caller_info_number(vd, call_number, EINA_FALSE);
        }
 
-       edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING"));
+       _vcui_show_caller_info_icon(vd, EINA_FALSE);
+       _vcui_show_caller_info_status(vd, _("IDS_CALL_POP_CALLING"), EINA_FALSE);
 
        _vcui_create_top_left_button_disabled(vd);
-       _vcui_create_top_middle_button_disabled(vd);
-       _vcui_create_top_right_button_disabled(vd);
+       _vcui_create_top_middle_button(vd);
+       _vcui_create_top_right_button(vd);
        _vcui_create_bottom_left_button(vd);
        _vcui_create_bottom_middle_button_disabled(vd);
-       _vcui_create_bottom_right_button_disabled(vd);
 
-       _vcui_create_button_bigend(vd);
+       _vcui_create_bottom_right_button(vd);
+
+       _vcui_elements_check_keypad_n_hide(vd);
 
        evas_object_show(eo);
 }
 
-static Evas_Object *__vcui_view_dialing_create_contents(void *data)
+static Evas_Object *__vcui_view_dialing_create_contents(void *data, char *grpname)
 {
        CALL_UI_KPI("__vcui_view_dialing_create_contents start");
        voice_call_view_data_t *vd = (voice_call_view_data_t *)data;
        Evas_Object *eo = NULL;
 
        /* load edje */
-       eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_MOVIEW);
+       eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grpname);
        if (eo == NULL)
                return NULL;
        CALL_UI_KPI("__vcui_view_dialing_create_contents done");
@@ -262,6 +194,7 @@ static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int p
 
        vcui_app_call_data_t *ad = view_data->app_data;
        vcui_view_dialing_priv_t *priv = view_data->priv;
+       Evas_Object *sep_ly = NULL;
 
        if (!view_data->layout) {
 
@@ -273,10 +206,19 @@ static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int p
                        return VC_ERROR;
                }
                /* Create Contents */
-               priv->contents = __vcui_view_dialing_create_contents(view_data);
+               priv->contents = __vcui_view_dialing_create_contents(view_data, GRP_MOVIEW);
                elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents);
 
-               evas_object_name_set(priv->contents, "DIALVIEW");
+               priv->caller_info = __vcui_view_dialing_create_contents(view_data, GRP_CALLER_INFO);
+               elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+
+               sep_ly = __vcui_view_dialing_create_contents(view_data, GRP_SEPARATOR_LAYOUT);
+               elm_object_part_content_set(priv->contents, "btn_bg", sep_ly);
+
+               priv->btn_ly = __vcui_view_dialing_create_contents(view_data, GRP_BUTTON_LAYOUT);
+               elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
+
+               evas_object_name_set(priv->contents, VIEW_DIALING_LAYOUT_ID);
                CALL_UI_DEBUG("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
        }
 
@@ -289,7 +231,7 @@ static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void
        CALL_UI_DEBUG("dialling view update");
        vcui_view_dialing_priv_t *priv = view_data->priv;
 
-       __vcui_view_dialing_update_screen(priv->contents, view_data);
+       __vcui_view_dialing_draw_screen(priv->contents, view_data);
        return VC_NO_ERROR;
 }
 
@@ -299,7 +241,7 @@ static int __vcui_view_dialing_onhide(voice_call_view_data_t *view_data)
 
        int valid = 0;
        vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)view_data->priv;
-       valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW");
+       valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID);
 
        if (valid == -1) {
                CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents);
@@ -315,11 +257,6 @@ static int __vcui_view_dialing_onshow(voice_call_view_data_t *view_data)
        CALL_UI_DEBUG("dialling view show");
 
        vcui_view_dialing_priv_t *priv = view_data->priv;
-       priv->now_data = _vcui_doc_get_recent_mo();
-       if (priv->now_data == NULL) {
-               CALL_UI_DEBUG("call data is null");
-               return VC_ERROR;
-       }
 
        __vcui_view_dialing_draw_screen(priv->contents, view_data);
 
@@ -346,6 +283,19 @@ static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data)
        vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv;
 
        if (priv != NULL) {
+               if (priv->btn_ly) {
+                       evas_object_del(priv->btn_ly);
+                       priv->btn_ly = NULL;
+               }
+
+               if (priv->caller_info) {
+                       evas_object_del(priv->caller_info);
+                       priv->caller_info = NULL;
+               }
+
+               /*Delete keypad layout*/
+               _vcui_keypad_delete_layout(priv->contents);
+
                if (priv->contents) {
                        evas_object_del(priv->contents);
                        priv->contents = NULL;
@@ -366,3 +316,55 @@ static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data)
        _vcui_cache_flush();
        return VC_NO_ERROR;
 }
+
+int    _vc_ui_view_dialing_check_valid_eo(voice_call_view_data_t *vd)
+{
+       CALL_UI_DEBUG("..");
+
+       vcui_view_dialing_priv_t *priv = NULL;
+       int valid = -1;
+
+       VCUI_RETURN_VALUE_IF_FAIL(vd , -1);
+       priv = (vcui_view_dialing_priv_t *) vd->priv;
+
+       valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID);
+
+       return valid;
+}
+
+Evas_Object *_vc_ui_view_dialing_get_layout(voice_call_view_data_t *vd)
+{
+       CALL_UI_DEBUG("..");
+       vcui_view_dialing_priv_t *priv = NULL;
+
+       VCUI_RETURN_NULL_IF_FAIL(vd);
+       priv = (vcui_view_dialing_priv_t *) vd->priv;
+
+       VCUI_RETURN_NULL_IF_FAIL(priv);
+       return priv->contents;
+}
+
+Evas_Object *_vc_ui_view_dialing_get_button_layout(voice_call_view_data_t *vd)
+{
+       CALL_UI_DEBUG("..");
+       vcui_view_dialing_priv_t *priv = NULL;
+
+       VCUI_RETURN_NULL_IF_FAIL(vd);
+       priv = (vcui_view_dialing_priv_t *) vd->priv;
+
+       VCUI_RETURN_NULL_IF_FAIL(priv);
+       return priv->btn_ly;
+}
+
+Evas_Object *_vc_ui_view_dialing_get_caller_info(voice_call_view_data_t *vd)
+{
+       CALL_UI_DEBUG("..");
+       vcui_view_dialing_priv_t *priv = NULL;
+
+       VCUI_RETURN_NULL_IF_FAIL(vd);
+       priv = (vcui_view_dialing_priv_t *) vd->priv;
+
+       VCUI_RETURN_NULL_IF_FAIL(priv);
+       return priv->caller_info;
+}
+