TizenRefApp-6100 [Call] Implement animation on End Call view 77/67977/3
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Wed, 20 Apr 2016 12:54:05 +0000 (15:54 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Tue, 10 May 2016 08:44:05 +0000 (11:44 +0300)
Change-Id: I54316e924fc680cfd95d9cf027a72b334756efc9

24 files changed:
CMake/CMakeLists.txt
edje_src/edc/call_edc/callui-view-caller-info.edc
edje_src/edc/call_edc/callui-view-main-layout.edc
edje_src/edc/call_edc/callui-view-multi-call-list.edc
edje_src/edc/call_edc/callui-view-quick-pannel.edc
edje_src/edc/call_edc/callui_view_end_call.edc
edje_src/edc/call_edc/callui_view_incoming_active.edc
edje_src/edc/callui-parts.edc [new file with mode: 0644]
inc/callui-action-bar.h
inc/callui-common-def.h
inc/callui-view-caller-info-defines.h
inc/callui-view-layout.h
res/edje/call.edc
src/callui-action-bar.c
src/callui-common.c
src/callui-view-callend.c
src/callui-view-dialing.c
src/callui-view-elements.c
src/callui-view-incoming-call-noti.c
src/callui-view-incoming-call.c
src/callui-view-manager.c
src/callui-view-multi-call-conf.c
src/callui-view-quickpanel.c
src/callui-view-single-call.c

index fc033ba..8a86cd2 100755 (executable)
@@ -73,6 +73,7 @@ ADD_CUSTOM_COMMAND(
                        ${INC_DIR}/callui-view-caller-info-defines.h
                        ${INC_DIR}/callui-view-elements-defines.h
                        ${EDC_SRC_DIR}/callui-color-classes.edc
+                       ${EDC_SRC_DIR}/callui-parts.edc
                        ${EDC_SRC_DIR}/call_edc/edc_image_macro.edc
                        ${EDC_SRC_DIR}/call_edc/callui-view-button-layout.edc
                        ${EDC_SRC_DIR}/call_edc/callui-view-caller-info.edc
@@ -87,6 +88,7 @@ ADD_CUSTOM_COMMAND(
                        ${EDC_SRC_DIR}/call_edc/callui-view-one-hold-in-conference.edc
                        ${EDC_SRC_DIR}/call_edc/callui-view-elements.edc
 )
+
 ADD_CUSTOM_TARGET(call.edje ALL DEPENDS ${CMAKE_BINARY_DIR}/call.edj)
 
 ADD_CUSTOM_COMMAND(
index 07ca5ac..5b4b7c0 100644 (file)
  *
  */
 
+#define CI_LAYOUT_PAD_LEFT     32
+#define CI_LAYOUT_PAD_RIGHT    32
+
+#define CI_LAYOUT_W_MANAGE_CALLS_PAD_LEFT      104
+#define CI_LAYOUT_W_MANAGE_CALLS_PAD_RIGHT     104
+
+#define CI_STATUS_TEXT_PAD_CONT_ICON   33
+#define CI_CONT_ICON_PAD_TOP                   (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + CI_STATUS_TEXT_PAD_CONT_ICON)
+
+#define CI_CONT_NAME_SIZE_MIN                  0 86
+#define CI_CONT_NAME_PAD_TOP_1LINE             71
+#define CI_CONT_NAME_PAD_TOP_2LINE             42
+#define CI_CONT_NAME_PAD_BOTTOM_1LINE  96
+
+#define CI_PHONE_NUMB_SIZE_MIN                 0 54
+#define CI_PHONE_NUMB_PAD_BOTTOM               63
+#define CI_PHONE_NUMB_PAD_TOP                  8
+
+#define CI_MANAGE_CALLS_PAD_BOTTOM             98
+#define CI_MANAGE_CALLS_PAD_RIGHT              22
+#define CI_MANAGE_CALLS_BTN_SIZE               50 50
+
+#define CI_CONT_NAME_SIZE_MIN                  0 86
+#define CI_PHONE_NUMB_SIZE_MIN                 0 54
+
 styles {
        style {
-               name: "caller_info_name";
-               base: "text_class="ATO002" wrap=mixed ellipsis=1.0";
-               tag: "br" "\n";
-               tag: "tab" "\t";
-       }
-       style {
-               name: "call_name_light";
+               name: "ci_contact_info_first_line";
                base: "font=Tizen:style=Light text_class="ATO002" font_size=64 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0";
        }
        style {
-               name: "call_2line_light";
+               name: "ci_contact_info_second_line";
                base: "font=Tizen:style=Light text_class="ATO002" font_size=24 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0";
        }
 }
 
 group{
-       name: "manage-calls";
+       name: "manage_calls";
        parts {
-               part {
-                       name: "background";
-                       type: RECT;
-                       description {
-                               state: "default" 0.0;
-                               color: COLOR_BG_ALPHA;
-                       }
-               }
-               part {
-                       name: "btn";
-                       type: IMAGE;
-                       scale: 1;
+               CU_PART_SPACER( "bg",
+                       description { state: "default" 0.0; }
+               )
+               CU_PART_IMAGE( "btn",
                        mouse_events: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 {relative: 0.0 0.0; to: "background";}
-                               rel2 {relative: 1.0 1.0; to: "background";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_multi_ic_arrow.png";
-                               }
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0;       to: "bg"; }
+                               rel2 { relative: 1.0 1.0;       to: "bg"; }
+                               image.normal: IMG_SRC_DIR/"call_multi_ic_arrow.png";
                                color_class: "AO026";
-                               align: 0.5 0.5;
                        }
-               }
+               )
        }
 }
 
 group{
-       name: "caller-info";
-       parts{
-               part { name: "background";
-                       type: RECT;
-                       description {
-                               state: "default" 0.0;
-                               color: COLOR_BG_ALPHA;
-                       }
-               }
+       name: "caller_info";
+       parts {
+               CU_PART_SPACER( "bg",
+                       description { state: "default" 0.0; }
+               )
+               CU_PART_PADDING_LEFT_NAME("padding.left", CI_LAYOUT_PAD_LEFT)
+               CU_PART_PADDING_RIGHT_NAME("padding.right", CI_LAYOUT_PAD_RIGHT)
+               CU_PART_PADDING_LEFT_NAME("extend.padding.left", CI_LAYOUT_W_MANAGE_CALLS_PAD_LEFT)
+               CU_PART_PADDING_RIGHT_NAME("extend.padding.right", CI_LAYOUT_W_MANAGE_CALLS_PAD_RIGHT)
+               CU_PART_PADDING_RIGHT_NAME("manage_calls_btn.padding.right", CI_MANAGE_CALLS_PAD_RIGHT)
+               CU_PART_PADDING_BOTTOM_NAME("manage_calls_btn.padding.bottom", CI_MANAGE_CALLS_PAD_BOTTOM)
+               CU_PART_PADDING_TOP_NAME("contact_icon.padding.top", CI_CONT_ICON_PAD_TOP)
+               CU_PART_PADDING_BOTTOM_TO("phone_number.padding.top", "phone_number", CI_PHONE_NUMB_PAD_TOP)
+               CU_PART_PADDING_BOTTOM_NAME("phone_number.padding.bottom", CI_PHONE_NUMB_PAD_BOTTOM)
+               CU_PART_PADDING_BOTTOM_NAME("contact_name.1line.padding.bottom", CI_CONT_NAME_PAD_BOTTOM_1LINE)
 
-               /*CALLER NAME*/
-               part { name: "txt_call_name"; /* call name or number */
-                       type: TEXTBLOCK;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               fixed: 1 1;
-                               rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";}
-                               rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_B; to: "background";}
-                               text {
-                                       style: "call_name_light";
-                               }
-                       }
-                       description {
-                               state: "1line" 0.0;
+               CU_PART_SPACER( "contact_name.padding.top",
+                       description { state: "default" 0.0;
+                               min: 0 CI_CONT_NAME_PAD_TOP_2LINE;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0;       to_y: "contact_name"; }
+                               rel2 { relative: 1.0 0.0;       to_y: "contact_name"; }
+                               align: 0.5 1.0;
+                       }
+                       description { state: "1line" 0.0;
                                inherit: "default" 0.0;
-                               rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_1LINE_T; to: "background";}
-                               rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_1LINE_B; to: "background";}
-                       }
-                       description {
-                               state: "hide" 0.0;
+                               min: 0 CI_CONT_NAME_PAD_TOP_1LINE;
+                       }
+               )
+               CU_PART_TEXTBLOCK( "contact_name",
+                       description { state: "default" 0.0;
+                               min: CI_CONT_NAME_SIZE_MIN;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.0;       to_x: "padding.left";   to_y: "phone_number.padding.top"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "padding.right";  to_y: "phone_number.padding.top"; }
+                               align: 0.5 1.0;
+                               text.style: "ci_contact_info_first_line";
+                       }
+                       description { state: "1line" 0.0;
+                               min: CI_CONT_NAME_SIZE_MIN;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.0;       to_x: "padding.left";   to_y: "contact_name.1line.padding.bottom"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "padding.right";  to_y: "contact_name.1line.padding.bottom"; }
+                               align: 0.5 1.0;
+                               text.style: "ci_contact_info_first_line";
+                       }
+                       description { state: "manage_call_btn_enable" 0.0;
                                inherit: "default" 0.0;
-                               visible: 0;
+                               rel1 { relative: 1.0 0.0;       to_x: "extend.padding.left";    to_y: "phone_number.padding.top"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "extend.padding.right";   to_y: "phone_number.padding.top"; }
                        }
-                       description {
-                               state: "ending_2line" 0.0;
-                               inherit: "default" 0.0;
-                               text {
-                                       text_class: "ATO030";
-                               }
-                               color_class: "ATO030";
-                       }
-                       description {
-                               state: "ending_1line" 0.0;
+                       description { state: "show_1line" 0.0;
                                inherit: "1line" 0.0;
-                               text {
-                                       text_class: "ATO030";
-                               }
-                               color_class: "ATO030";
-                       }
-                       description {
-                               state: "emergency" 0.0;
-                               rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";}
-                               rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_EMERGENCY_B; to: "background";}
-                               text.size: 64;
-                               text.text_class: "AO008";
                        }
-               }
-
-               part { name: "txt_2nd_area";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: CALLER_INFO_NUMBER_L CALLER_INFO_NUMBER_T; to: "background";}
-                               rel2 { relative: CALLER_INFO_NUMBER_R CALLER_INFO_NUMBER_B;  to: "background";}
+                       description { state: "show_2line" 0.0;
+                               inherit: "default" 0.0;
                        }
-               }
-
-               /*CALL NUMBER*/
-               part { name: "txt_phone_num"; /* Phone number*/
-                       type: TEXTBLOCK;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0 0; to: "txt_2nd_area";}
-                               rel2 { relative: 1 1; to: "txt_2nd_area";}
-                               align: 0 0;
+                       description { state: "hide_1line" 0.0;
+                               inherit: "show_1line" 0.0;
+                               color: COLOR_WHITE_TRANSP;
+                       }
+                       description { state: "hide_2line" 0.0;
+                               inherit: "show_2line" 0.0;
+                               color: COLOR_WHITE_TRANSP;
+                       }
+               )
+               CU_PART_TEXTBLOCK( "phone_number",
+                       description { state: "default" 0.0;
+                               min: CI_PHONE_NUMB_SIZE_MIN;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.0;       to_x: "padding.left";   to_y: "phone_number.padding.bottom"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "padding.right";  to_y: "phone_number.padding.bottom"; }
+                               align: 0.5 1.0;
                                text {
                                        fit: 1 1;
-                                       style: "call_2line_light";
+                                       style: "ci_contact_info_second_line";
                                }
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "manage_call_btn_enable" 0.0;
                                inherit: "default" 0.0;
-                               visible: 0;
+                               rel1 { relative: 1.0 0.0;       to_x: "extend.padding.left";    to_y: "phone_number.padding.bottom"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "extend.padding.right";   to_y: "phone_number.padding.bottom"; }
                        }
-                       description {
-                               state: "ending_2line" 0.0;
+                       description { state: "show_2line" 0.0;
                                inherit: "default" 0.0;
-                               text {
-                                       text_class: "ATO031";
-                               }
-                               color_class: "ATO031";
                        }
-                       description {
-                               state: "ending_1line" 0.0;
-                               inherit: "hide" 0.0;
+                       description { state: "hide_2line" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE_TRANSP;
                        }
-               }
-
-               part { name: "caller_id_rect";
-                       type: RECT;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: VC_CALLER_ID_LAYOUT_L VC_CALLER_ID_LAYOUT_T; to: "background";}
-                               rel2 { relative: VC_CALLER_ID_LAYOUT_R VC_CALLER_ID_LAYOUT_B; to: "background";}
-                               color: COLOR_BG_ALPHA;
-                               visible: 1;
+                       description { state: "show_1line" 0.0;
+                               inherit: "hide_2line" 0.0;
                        }
-                       description {
-                               state: "hide" 0.0;
+               )
+               CU_PART_SPACER( "contact_icon_base",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0;       to_y: "contact_icon.padding.top"; }
+                               rel2 { relative: 1.0 0.0;       to_y: "contact_name.padding.top"; }
+                       }
+                       description { state: "maximize" 0.0;
                                inherit: "default" 0.0;
-                               visible: 0;
                        }
-               }
-
-               part { name: "caller_id";
-                       type: SWALLOW;
-                       scale: 1;
+                       description { state: "minimize" 0.0;
+                               min: EC_CONT_ICON_SIZE_MIN;
+                               max: EC_CONT_ICON_SIZE_MIN;
+                               fixed: 1 1;
+                               rel1 { relative: 1.0 1.0;       to_x: "ec_contact_icon.padding.left";   to_y: "ec_contact_icon.padding.top"; }
+                               align: 0.0 0.0;
+                       }
+               )
+               CU_PART_SWALLOW( "contact_icon",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0;       to: "contact_icon_base"; }
+                               rel2 { relative: 1.0 1.0;       to: "contact_icon_base"; }
+                               aspect: 1 1;
+                               aspect_preference: VERTICAL;
+                       }
+               )
+               CU_PART_IMAGE( "contact_icon_bg",
                        description {
                                state: "default" 0.0;
-                               rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
-                               rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
-                               fixed: 1 1;
+                               rel1 { relative: 0.0 0.0;       to: "contact_icon_base"; }
+                               rel2 { relative: 1.0 1.0;       to: "contact_icon_base"; }
+                               image.normal: IMG_SRC_DIR/"call_photo_id_bg.png";
+                               aspect_preference: SOURCE;
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
                                visible: 0;
                        }
-                       description {
-                               state: "show" 0.0;
+                       description { state: "emergency" 0.0;
                                inherit: "default" 0.0;
-                               visible: 1;
+                               color_class: "AO036";
                        }
-               }
-
-               part { name: "caller_id_bg";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
-                               rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_bg.png";
-                               }
+               )
+               CU_PART_IMAGE( "contact_icon_def",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0;       to: "contact_icon_base"; }
+                               rel2 { relative: 1.0 1.0;       to: "contact_icon_base"; }
+                               image.normal: IMG_SRC_DIR/"call_photo_id.png";
                                aspect_preference: SOURCE;
+                               color_class: "AO003L2";
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "emergency" 0.0;
+                               rel1 { relative: 0.0 0.0;       to: "contact_icon_base"; }
+                               rel2 { relative: 1.0 1.0;       to: "contact_icon_base"; }
+                               image.normal: IMG_SRC_DIR/"call_photo_id_emergency.png";
+                               aspect_preference: SOURCE;
+                               //color: 255 255 255 255;
+                       }
+                       description { state: "conference" 0.0;
+                               rel1 { relative: 0.0 0.0;       to: "contact_icon_base"; }
+                               rel2 { relative: 1.0 1.0;       to: "contact_icon_base"; }
+                               image.normal: IMG_SRC_DIR/"call_photo_id_conference.png";
+                               aspect_preference: SOURCE;
+                               color_class: "AO003L2";
+                       }
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
                                visible: 0;
                        }
-                       description {
-                               state: "emergency" 0.0;
-                               inherit: "default" 0.0;
-                               color_class: "AO036";
+               )
+               CU_PART_SWALLOW( "manage_calls_btn",
+                       description { state: "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "manage_calls_btn.padding.right";
+                                       to_y: "manage_calls_btn.padding.bottom";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "manage_calls_btn.padding.right";
+                                       to_y: "manage_calls_btn.padding.bottom";
+                               }
+                               min: CI_MANAGE_CALLS_BTN_SIZE;
+                               max: CI_MANAGE_CALLS_BTN_SIZE;
+                               align: 1 1;
                        }
-                       description {
-                               state: "dim" 0.0;
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
-                               color_class: "AO151";
+                               visible: 0;
                        }
-               }
+               )
 
-               part {  name: "caller_id_img";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
-                               rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id.png";
+               // PARTS FOR END CALL AND ITS ANIMATION
+
+               CU_PART_PADDING_LEFT_NAME("ec_contact_info.padding.left", EC_CONT_INFO_PAD_LEFT)
+               CU_PART_PADDING_TOP_NAME("ec_contact_name.padding.top", EC_CONT_NAME_PAD_TOP)
+               CU_PART_PADDING_TOP_NAME("ec_phone_number.padding.top", EC_PHONE_NUMB_PAD_TOP)
+               CU_PART_PADDING_TOP_NAME("ec_add_cont.padding.top", EC_ADD_CONT_BTN_PAD_TOP)
+               CU_PART_PADDING_RIGHT_NAME("ec_add_cont.padding.left", EC_ADD_CONT_BTN_PAD_RIGHT)
+               CU_PART_PADDING_TOP_NAME("ec_contact_icon.padding.top", EC_CONT_ICON_PAD_TOP)
+               CU_PART_PADDING_LEFT_NAME("ec_contact_icon.padding.left", EC_CONT_ICON_PAD_LEFT)
+
+               CU_PART_SPACER( "ec_contact_info.padding.right",
+                       description { state: "default" 0.0;
+                               min: EC_BG_PAD_RIGHT_MIN 0;
+                               fixed: 1 0;
+                               rel1.relative: 1.0 0.0;
+                               align: 1.0 0.0;
+                       }
+                       description { state: "add_contact_btn_enabled" 0.0;
+                               inherit: "default" 0.0;
+                               min: EC_BG_PAD_RIGHT_MIN_W_ADD_CONT_BTN 0;
+                       }
+               )
+               CU_PART_TEXTBLOCK ("ec_contact_name",
+                       insert_before: "contact_icon_base";
+                       description { state: "default" 0.0;
+                               min: EC_CONT_NAME_SIZE_MIN;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 1.0;       to_x: "ec_contact_info.padding.left";   to_y: "ec_contact_name.padding.top"; }
+                               rel2 { relative: 0.0 1.0;       to_x: "ec_contact_info.padding.right";  to_y: "ec_contact_name.padding.top"; }
+                               text {
+                                       ellipsis: 0.0;
+                                       style:"ec_contact_name";
                                }
-                               aspect_preference: SOURCE;
-                               color_class: "AO003L2";
-                               fixed: 1 1;
-                               align: 0.5 0.5;
-                               visible: 1;
+                               align: 0.0 0.0;
+                               color: COLOR_WHITE_TRANSP;
                        }
-                       description {
-                               state: "emergency" 0.0;
-                               rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
-                               rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_emergency.png";
-                               }
-                               aspect_preference: SOURCE;
-                               fixed: 1 1;
-                               align: 0.5 0.5;
-                               visible: 1;
+                       description { state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE;
                        }
-                       description {
-                               state: "conference" 0.0;
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_conference.png";
+                       }
+               )
+               CU_PART_TEXTBLOCK( "ec_phone_number",
+                       insert_before: "ec_contact_name";
+                       description { state: "default" 0.0;
+                               min: EC_PHONE_NUMB_SIZE_MIN;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 1.0;       to_x: "ec_contact_info.padding.left";   to_y: "ec_phone_number.padding.top"; }
+                               rel2 { relative: 0.0 1.0;       to_x: "ec_contact_info.padding.right";  to_y: "ec_phone_number.padding.top"; }
+                               text {
+                                       ellipsis: 0.0;
+                                       style:"ec_phone_number";
                                }
-                               color_class: "AO003L2";
+                               align: 0.0 0.0;
+                               color: COLOR_WHITE_TRANSP;
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE;
+                       }
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
+                       }
+               )
+               CU_PART_SWALLOW( "ec_add_contact_btn",
+                       description { state: "default" 0.0;
+                               min: EC_ADD_CONT_BTN_SIZE;
+                               max: EC_ADD_CONT_BTN_SIZE;
+                               fixed: 1 1;
+                               rel1 { relative: 0.0 1.0;       to_x: "ec_add_cont.padding.left";       to_y: "ec_add_cont.padding.top"; }
+                               rel2 { relative: 0.0 1.0;       to_x: "ec_add_cont.padding.left"; }
+                               align: 1.0 0.0;
                                visible: 0;
                        }
-               }
-
-               part { name: "manage_calls_icon_swallow";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
+                       description { state: "show" 0.0;
+                               inherit: "default" 0.0;
                                visible: 1;
-                               rel1 { relative: MANAGE_BTN_L MANAGE_BTN_T; to: "background";}
-                               rel2 { relative: MANAGE_BTN_R MANAGE_BTN_B; to: "background";}
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
-                               visible: 0;
                        }
-               }
-
+               )
                programs {
-                       program { name: "portrait_mode_caller_info";
-                               signal: "set_portrait_mode";
-                               source: "hold-caller-info";
-                               action: STATE_SET "default" 0.0;
-                               target: "txt_2nd_area";
-                               target: "txt_call_name";
-                               target: "txt_phone_num";
+                       script {
+                               public show_ec_add_cont_btn;
+                               public cont_info_2line;
                        }
-                       program {
-                               name: "set_portrait_with_bg";
-                               signal: "set_portrait";
-                               source: "caller_info_layout";
-                               in: 0.0 0.0;
-                               action: STATE_SET "default" 0.0;
-                               target: "txt_call_name";
-                               target: "txt_2nd_area";
-                       }
-                       program {
-                               name: "set_portrait_without_bg";
-                               signal: "set_portrait";
-                               source: "caller_info_layout_without_bg";
-                               in: 0.0 0.0;
-                               action: STATE_SET "default" 0.0;
-                               target: "txt_call_name";
-                               target: "txt_2nd_area";
-                       }
-                       program {
-                               name: "show_emergency_icon";
+                       program { name: "show_emergency_icon";
                                signal: "set_emergency_mode";
                                source: "";
                                action: STATE_SET "emergency" 0.0;
-                               target: "caller_id_img";
-                               target: "caller_id_bg";
-                               target: "txt_call_name";
+                               target: "contact_icon_bg";
+                               target: "contact_icon_def";
                        }
-
-                       program {
-                               name: "show_conference_icon";
+                       program { name: "show_conference_icon";
                                signal: "set_conference_mode";
                                source: "";
                                action: STATE_SET "conference" 0.0;
-                               target: "caller_id_img";
+                               target: "contact_icon_def";
                                after: "caller_name_2line";
                        }
-                       program {
-                               name: "hide_default_cid";
+                       program { name: "hide_default_cid";
                                signal: "hide_default_cid";
                                source: "";
                                action: STATE_SET "hide" 0.0;
-                               target: "caller_id_img";
-                               target: "caller_id_bg";
-                       }
-                       program {
-                               name: "show_cid_thumb";
-                               action: STATE_SET "show" 0.0;
-                               target: "caller_id";
+                               target: "contact_icon_bg";
+                               target: "contact_icon_def";
                        }
-
-                       program {
-                               name: "show_default_cid";
+                       program { name: "show_default_cid";
                                signal: "show_default_cid";
                                source: "";
                                action: STATE_SET "default" 0.0;
-                               target: "caller_id_img";
-                               target: "caller_id_bg";
-                       }
-                       program {
-                               name: "hide_cid_thumb";
-                               action: STATE_SET "hide" 0.0;
-                               target: "caller_id";
-                       }
-                       program {
-                               name: "hide_cid_all";
-                               signal: "hide_cid_all";
-                               source: "";
-                               action: STATE_SET "hide" 0.0;
-                               target: "caller_id_img";
-                               target: "caller_id_bg";
-                               target: "caller_id";
-                       }
-                       program {
-                               name: "show_cid_all";
-                               signal: "show_cid_all";
-                               source: "";
-                               action: STATE_SET "default" 0.0;
-                               target: "caller_id_img";
-                               target: "caller_id_bg";
-                               target: "caller_id";
+                               target: "contact_icon_bg";
+                               target: "contact_icon_def";
                        }
-                       program {
-                               name: "caller_name_1line";
+                       program { name: "caller_name_1line";
                                signal: "1line";
                                source: "caller_name";
                                action: STATE_SET "1line" 0.0;
-                               target: "txt_call_name";
+                               target: "contact_name";
+                               target: "contact_name.padding.top";
+                               after: "deinit_cont_info_two_line";
                        }
-                       program {
-                               name: "caller_name_2line";
+                       program { name: "caller_name_2line";
                                signal: "2line";
                                source: "caller_name";
                                action: STATE_SET "default" 0.0;
-                               target: "txt_call_name";
+                               target: "contact_name";
+                               target: "contact_name.padding.top";
+                               after: "init_cont_info_two_line";
                        }
-                       program {
-                               name: "ending_1line";
-                               signal: "ending_1line";
+                       program { name: "show_arrow";
+                               signal: "show_manage_calls_btn";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "manage_calls_btn";
+                               after: "set_txt_bounds_on_arrow_show";
+                       }
+                       program { name: "hide_arrow";
+                               signal: "hide_manage_calls_btn";
+                               source: "";
+                               action: STATE_SET "hide" 0.0;
+                               target: "manage_calls_btn";
+                               after: "set_txt_bounds_on_arrow_hide";
+
+                       }
+                       program { name: "set_txt_bounds_on_arrow_hide";
+                               action: STATE_SET "default" 0.0;
+                               target: "contact_name";
+                               target: "phone_number";
+                       }
+                       program { name: "set_txt_bounds_on_arrow_show";
+                               action: STATE_SET "manage_call_btn_enable" 0.0;
+                               target: "contact_name";
+                               target: "phone_number";
+                       }
+
+                       // END CALL ANIMATION
+
+                       // CALLER INFO ANIMATION LOGIC
+
+                       program { name: "anim_show_cont_info_1line";
+                               action: STATE_SET "show_1line" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_B_S;
+                               target: "contact_name";
+                       }
+                       program { name: "anim_show_cont_info_2line";
+                               action: STATE_SET "show_2line" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_B_S;
+                               target: "contact_name";
+                               target: "phone_number";
+                       }
+                       program { name: "anim_hide_cont_info_1line";
+                               action: STATE_SET "hide_1line" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_B_S;
+                               target: "contact_name";
+                               after: "anim_show_ec_contact_info";
+                       }
+                       program { name: "anim_hide_cont_info_2line";
+                               action: STATE_SET "hide_2line" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_B_S;
+                               target: "contact_name";
+                               target: "phone_number";
+                               after: "anim_show_ec_contact_info";
+                       }
+
+                       // END CALL CALLER INFO ANIMATION LOGIC
+
+                       program { name: "anim_show_ec_contact_info";
+                               action: STATE_SET "show" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_S_B;
+                               target: "ec_contact_name";
+                               target: "ec_phone_number";
+                       }
+                       program { name: "anim_hide_ec_contact_info";
+                               action: STATE_SET "hide" 0.0;
+                               transition: LINEAR EC_ANIM_DUR_CONT_INFO_S_B;
+                               target: "ec_contact_name";
+                               target: "ec_phone_number";
+                               after: "select_show_cont_info_type";
+                       }
+                       program { name: "select_show_cont_info_type";
+                               script {
+                                       if (get_int(cont_info_2line) == 1) {
+                                               run_program(PROGRAM:"anim_show_cont_info_2line");
+                                       } else {
+                                               run_program(PROGRAM:"anim_show_cont_info_1line");
+                                       }
+                               }
+                       }
+                       program { name: "select_hide_cont_info_type";
+                               script {
+                                       if (get_int(cont_info_2line) == 1) {
+                                               run_program(PROGRAM:"anim_hide_cont_info_2line");
+                                       } else {
+                                               run_program(PROGRAM:"anim_hide_cont_info_1line");
+                                       }
+                               }
+                       }
+
+                       // END CALL ADD CONTACT BUTTON
+
+                       program { name: "set_ec_add_cont_btn_enabled";
+                               signal: "set_ec_add_cont_btn_enabled";
                                source: "caller_info";
-                               action: STATE_SET "ending_1line" 0.0;
-                               target: "txt_call_name";
-                               target: "txt_phone_num";
-                               after: "dim_caller_id";
+
+                               action: STATE_SET "add_contact_btn_enabled" 0.0;
+                               target: "ec_contact_info.padding.right";
+                               after: "init_show_ec_add_cont_btn_state";
                        }
-                       program {
-                               name: "ending_2line";
-                               signal: "ending_2line";
+                       program { name: "show_ec_add_cont_btn";
+                               action: STATE_SET "show" 0.0;
+                               target: "ec_add_contact_btn";
+                       }
+                       program { name: "hide_add_contact_btn";
+                               action: STATE_SET "hide" 0.0;
+                               target: "ec_add_contact_btn";
+                       }
+                       program { name: "try_show_ec_add_cont_btn";
+                               script {
+                                       if (get_int(show_ec_add_cont_btn) == 1) {
+                                               run_program(PROGRAM:"show_ec_add_cont_btn");
+                                       }
+                               }
+                       }
+                       program { name: "try_hide_add_contact_btn";
+                               script {
+                                       if (get_int(show_ec_add_cont_btn) == 1) {
+                                               run_program(PROGRAM:"hide_add_contact_btn");
+                                       }
+                               }
+                       }
+
+                       // MINIMIZE / MAXIMIZE START LOGIC
+
+                       program { name: "minimize";
+                               signal: "minimize";
+                               source: "caller_info";
+
+                               after: "try_hide_add_contact_btn";
+                               after: "run_minimize_animation";
+                               after: "select_hide_cont_info_type";
+                       }
+                       program { name: "maximize";
+                               signal: "maximize";
                                source: "caller_info";
-                               action: STATE_SET "ending_2line" 0.0;
-                               target: "txt_call_name";
-                               target: "txt_phone_num";
-                               after: "dim_caller_id";
+
+                               after: "try_hide_add_contact_btn";
+                               after: "run_maximize_animation";
+                               after: "anim_hide_ec_contact_info";
+                       }
+                       program { name: "run_minimize_animation";
+                               action: STATE_SET "minimize" 0.0;
+                               transition: LINEAR EC_ANIM_DUR;
+                               target: "contact_icon_base";
+                               after: "try_show_ec_add_cont_btn";
+                               after: "minimize_anim_finished";
+                       }
+                       program { name: "run_maximize_animation";
+                               action: STATE_SET "maximize" 0.0;
+                               transition: LINEAR EC_ANIM_DUR;
+                               target: "contact_icon_base";
+                               after: "maximize_anim_finished";
+                       }
+                       program { name: "minimize_anim_finished";
+                               action: SIGNAL_EMIT "minimize.anim.finished" "caller_info";
+                       }
+                       program { name: "maximize_anim_finished";
+                               action: SIGNAL_EMIT "maximize.anim.finished" "caller_info";
                        }
                        program {
-                               name: "dim_caller_id";
-                               action: STATE_SET "dim" 0.0;
-                               target: "caller_id_bg";
+                               name: "init_show_ec_add_cont_btn_state";
+                               script { set_int(show_ec_add_cont_btn, 1); }
                        }
                        program {
-                               name: "show_arrow";
-                               signal: "show,arrow";
-                               source: "";
-                               action: STATE_SET "default" 0.0;
-                               target: "manage_calls_icon_swallow";
+                               name: "init_cont_info_two_line";
+                               script { set_int(cont_info_2line, 1); }
                        }
                        program {
-                               name: "hide_arrow";
-                               signal: "hide,arrow";
-                               source: "";
-                               action: STATE_SET "hide" 0.0;
-                               target: "manage_calls_icon_swallow";
+                               name: "deinit_cont_info_two_line";
+                               script { set_int(cont_info_2line, 0); }
                        }
                }
        }
index 2cdb1f4..ecd529d 100644 (file)
  *
  */
 
+#define VML_LAYOUT_PAD_LEFT                    32
+#define VML_LAYOUT_PAD_RIGHT           32
+#define VML_CALLER_INFO_PAD_BOTTOM     (ACTION_BAR_LAYOUT_HEIGHT + ENDCALL_BTN_BG_H)
+
 group {
     name: "app_main_ly";
        parts {
-               part { name: "bg";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
+               CU_PART_SPACER( "bg",
+                       description { state: "default" 0.0; }
+               )
+               CU_PART_SWALLOW( "elm.swallow.content",
+                       description { state: "default" 0.0; }
+               )
+               CU_PART_SWALLOW( "action_bar",
+                       clip_to: "keypadarea.clipper";
+                       description { state: "default" 0.0;
+                               rel1{ relative: ACTION_BAR_LAYOUT_L ACTION_BAR_LAYOUT_T; }
+                               rel2{ relative: ACTION_BAR_LAYOUT_R ACTION_BAR_LAYOUT_B; }
+                               align: 0.5 0.0;
                        }
-               }
-               part { name: "pad.bottom";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
+               )
+               CU_PART_SPACER( "keypadarea.clipper.maximized",
+                       description { state: "default" 0.0;
                                rel1.relative: 0.0 1.0;
                                min: 0 ENDCALL_BTN_BG_H;
                                fixed: 0 1;
                                align: 0 1;
                        }
-               }
-               part { name: "elm.swallow.content";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                       }
-               }
-               part { name: "action_bar";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1{ relative: ACTION_BAR_LAYOUT_L ACTION_BAR_LAYOUT_T; }
-                               rel2{ relative: ACTION_BAR_LAYOUT_R ACTION_BAR_LAYOUT_B; }
-                               align: 0.5 0.0;
-                       }
-               }
-               part { name: "keypadarea.clipper";
-                       type: RECT;
+               )
+
+               CU_PART_PADDING_TOP_NAME("keypadarea.clipper.minimized", EC_LAYOUT_MINIMIZE_SIZE)
+
+               CU_PART_RECT( "keypadarea.clipper",
                        mouse_events: 0;
                        repeat_events: 1;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1.relative: 0.0 0.0;
-                               rel2 {
-                                       relative: 1.0 0.0;
-                                       to: "pad.bottom";
-                               }
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; to: "keypadarea.clipper.maximized"; }
                        }
-               }
-               part { name: PART_SWALLOW_KEYPAD_LAYOUT_AREA;
-                       type: SWALLOW;
-                       scale: 1;
+                       description { state: "maximize" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description { state: "minimize" 0.0;
+                               inherit: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "keypadarea.clipper.minimized"; }
+                               rel2 { relative: 1.0 1.0; to: "keypadarea.clipper.minimized"; }
+                       }
+               )
+               CU_PART_SWALLOW( PART_SWALLOW_KEYPAD_LAYOUT_AREA,
                        clip_to: "keypadarea.clipper";
                        description {
                                state: "default" 0.0;
-                               rel1 {
-                                       relative: 0.0 0.0;
-                                       to: "keypadarea.clipper";
-                               }
-                               rel2 {
-                                       relative: 1.0 1.0;
-                                       to: "keypadarea.clipper";
-                               }
+                               rel1 { relative: 0.0 0.0; to: "keypadarea.clipper"; }
+                               rel2 { relative: 1.0 1.0; to: "keypadarea.clipper"; }
                        }
+               )
+       }
+       programs {
+               program { name: "anim_minimize_main_clipper";
+                       action: STATE_SET "minimize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR;
+                       target: "keypadarea.clipper";
+                       after: "minimize_anim_finished";
                }
+               program { name: "anim_maximize_main_clipper";
+                       action: STATE_SET "maximize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR;
+                       target: "keypadarea.clipper";
+                       after: "maximize_anim_finished";
+               }
+               program { name: "maximize_main_clipper";
+                       action: STATE_SET "maximize" 0.0;
+                       target: "keypadarea.clipper";
+                       after: "maximize_anim_finished";
+               }
+               program { name: "minimize";
+                       signal: "minimize";
+                       source: "app_main_ly";
+                       after: "anim_minimize_main_clipper";
+               }
+               program { name: "maximize";
+                       signal: "maximize";
+                       source: "app_main_ly";
+                       after: "anim_maximize_main_clipper";
+               }
+               program { name: "maximize_no_anim";
+                       signal: "maximize_no_anim";
+                       source: "app_main_ly";
+                       after: "maximize_main_clipper";
+               }
+               program { name: "minimize_anim_finished";
+                       action: SIGNAL_EMIT "minimize.anim.finished" "app_main_ly";
+               }
+               program { name: "maximize_anim_finished";
+                       action: SIGNAL_EMIT "maximize.anim.finished" "app_main_ly";
+               }
+       }
+}
+
+styles {
+       style {
+               name: "call_timer_style";
+               base: "font="VC_FONT_REGULAR" align=left font_size=40 color=#FFFFFF ellipsis=1.0";
        }
 }
 
 group {
-    name: "main_ly";
+    name: "view_main_ly";
        parts {
-               part { name: "background";
-                       type: IMAGE;
-                       description {
-                               state: "default" 0.0;
+               CU_PART_IMAGE( "dim_bg",
+                       description { state: "default" 0.0;
+                               image.normal: IMG_SRC_DIR/"background_dim.png";
+                       }
+               )
+               CU_PART_IMAGE( "bg",
+                       clip_to: "content.clipper";
+                       description { state: "default" 0.0;
                                image.normal: IMG_SRC_DIR/"background.png";
                        }
-               }
-               part { name: "call_txt_status";
-                       type: TEXT;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: CALLER_INFO_STATUS_L CALLER_INFO_STATUS_T; to: "background"; }
-                               rel2 { relative: CALLER_INFO_STATUS_R CALLER_INFO_STATUS_B; to: "background"; }
-                               fixed: 1 1;
-                               text {
-                                       align: 0 0.5;
-                                       text_class: "ATO001";
-                               }
-                               align: 0 0.5;
-                               color_class: "ATO001";
+               )
+               CU_PART_SPACER( "content.clipper.maximized",
+                       description { state: "default" 0.0;
+                               rel1.relative: 0.0 1.0;
+                               min: 0 ENDCALL_BTN_BG_H;
+                               fixed: 0 1;
+                               align: 0 1;
                        }
-               }
+               )
+               CU_PART_PADDING_TOP_NAME("content.clipper.minimized", EC_LAYOUT_MINIMIZE_SIZE)
 
-               part { name: "caller_info_rect";
-                       type: SPACER;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";}
-                               rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";}
+               CU_PART_RECT( "content.clipper",
+                       description { state: "default" 0.0;
+                               rel2 { relative: 1.0 0.0; to: "content.clipper.maximized"; }
                        }
-               }
+                       description { state: "maximize" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description { state: "minimize" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "content.clipper.minimized"; }
+                               rel2 { relative: 1.0 1.0; to: "content.clipper.minimized"; }
+                       }
+               )
+
+               CU_PART_PADDING_LEFT(VML_LAYOUT_PAD_LEFT)
+               CU_PART_PADDING_RIGHT(VML_LAYOUT_PAD_RIGHT)
+               CU_PART_PADDING_TOP_NAME("title_txt.padding.top", CALL_STATUS_TXT_PAD_TOP)
 
-               part { name: "caller_info";
-                       type: SWALLOW;
-                       scale: 1;
+               CU_PART_TEXTBLOCK( "call_txt_status",
+                       description { state: "default" 0.0;
+                               min: 0 CALL_STATUS_TXT_HEIGHT;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "padding.left";
+                                       to_y: "title_txt.padding.top";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "padding.right";
+                                       to_y: "title_txt.padding.top";
+                               }
+                               text.style:"call_timer_style";
+                               align: 0.0 0.0;
+                       }
+               )
+               CU_PART_PADDING_BOTTOM_NAME( "caller_info.padding.bottom", VML_CALLER_INFO_PAD_BOTTOM)
+               CU_PART_SWALLOW( "caller_info",
+                       clip_to: "content.clipper";
                        description {
                                state: "default" 0.0;
                                visible: 1;
-                               rel1 { relative: 0.0 0.0; to: "caller_info_rect";}
-                               rel2 { relative: 1.0 1.0; to: "caller_info_rect";}
+                               rel2 { relative: 1.0 0.0; to: "caller_info.padding.bottom"; }
                        }
-                       description {
-                               state: "show" 0.0;
+                       description { state: "show" 0.0;
                                inherit: "default" 0.0;
                                visible: 1;
                        }
-                       description {
-                               state: "hide" 0.0;
+                       description { state: "hide" 0.0;
                                inherit: "default" 0.0;
                                visible: 0;
                        }
-               }
-
-               part { name: "circle_btn_area";
-                       type: RECT;
-                       scale: 1;
+               )
+               CU_PART_RECT( "circle_btn_area",
+                       clip_to: "content.clipper";
                        description {
                                state: "default" 0.0;
-                               rel1{ relative: 0.0 1.0; to: "caller_info_rect";}
-                               rel2{ relative: 1.0 1.0;}
-                               min: MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT;
+                               rel1{ relative: 0.0 0.0; to: "caller_info.padding.bottom"; }
                                color: 255 255 255 255;
                                align: 0.5 0.0;
                        }
-               }
-
-               part { name: "end_btn_area";
-                       type: RECT;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1.relative: ENDCALL_BTN_BG_L ENDCALL_BTN_BG_T;
-                               rel2.relative: ENDCALL_BTN_BG_R ENDCALL_BTN_BG_B;
-                               color: 255 255 255 255;
+               )
+               CU_PART_RECT( "end_btn.bg",
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       clip_to: "end_btn_area.clipper";
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "content.clipper"; }
+                               rel2 { relative: 1.0 1.0; to: "content.clipper"; }
+                               min: 0 ENDCALL_BTN_BG_H;
+                               fixed: 0 1;
+                               align: 0.5 0;
                        }
-               }
-
-               part { name: PART_END_BTN;
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 {
-                                       relative: ENDCALL_BTN_L ENDCALL_BTN_T;
-                                       to: "end_btn_area";
-                               }
-                               rel2 {
-                                       relative: ENDCALL_BTN_R ENDCALL_BTN_B;
-                                       to: "end_btn_area";
-                               }
+                       description { state: "hide_reply_btns" 0.0;
+                               inherit: "default" 0.0;
                        }
-               }
+                       description { state: "show_reply_btns" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "content.clipper"; }
+                               rel2 { relative: 1.0 1.0; to: "content.clipper"; }
+                               min: 0 EC_REPLY_BTN_HEIGHT;
+                               fixed: 0 1;
+                               align: 0.5 0;
+                       }
+               )
+               CU_PART_RECT( "end_btn_area.clipper",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "end_btn.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "end_btn.bg"; }
+                               color: COLOR_WHITE;
+                       }
+                       description { state: "maximize" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description { state: "minimize" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE_TRANSP;
+                       }
+               )
+               CU_PART_RECT( "end_btn.clipper",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "end_btn"; }
+                               rel2 { relative: 1.0 1.0; to: "end_btn"; }
+                               color: COLOR_WHITE;
+                       }
+                       description { state: "maximize" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description { state: "minimize" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE_TRANSP;
+                       }
+               )
+               CU_PART_SWALLOW( "end_btn",
+                       clip_to: "end_btn.clipper";
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "end_btn.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "end_btn.bg"; }
+                               min: ENDCALL_BTN_SIZE ENDCALL_BTN_SIZE;
+                               max: ENDCALL_BTN_SIZE ENDCALL_BTN_SIZE;
+                               fixed: 1 1;
+                       }
+               )
+               CU_PART_RECT( "reply_btns_area.clipper",
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "reply_btns"; }
+                               rel2 { relative: 1.0 1.0; to: "reply_btns"; }
+                               color: COLOR_WHITE_TRANSP;
+                       }
+                       description { state: "hide_reply_btns" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description { state: "show_reply_btns" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_WHITE;
+                       }
+               )
+               CU_PART_SWALLOW( "reply_btns",
+                       clip_to: "reply_btns_area.clipper";
+                       description { state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "end_btn.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "end_btn.bg"; }
+                       }
+               )
        }
-
        programs {
+               script {
+                       public show_reply_btns;
+               }
                program { name: "show_keypadbtn_no_effect";
                        signal: "SHOW";
                        source: "KEYPAD_BTN";
@@ -199,14 +304,124 @@ group {
                        target: "caller_info";
                }
 
-               program {
-                       name: "set_portrait";
-                       signal: "set_portrait";
-                       source: "incall_layout";
-                       in: 0.0 0.0;
-                       action: STATE_SET "default" 0.0;
-                       target: "background";
-                       target: "caller_info";
+               // REPLY BUTTONS
+
+               program { name: "show_reply_btns_signal";
+                       signal: "show_reply_btns";
+                       source: "view_main_ly";
+
+                       script { set_int(show_reply_btns, 1); }
+               }
+               program { name: "try_show_reply_btns";
+                       script {
+                               if (get_int(show_reply_btns) == 1) {
+                                       run_program(PROGRAM:"show_reply_btns");
+                               }
+                       }
+               }
+               program { name: "try_hide_reply_btns";
+                       script {
+                               if (get_int(show_reply_btns) == 1) {
+                                       run_program(PROGRAM:"hide_reply_btns");
+                               }
+                       }
+               }
+               program { name: "show_reply_btns";
+                       in: EC_DELAY_SHOW_REPLY_BTNS;
+                       action: STATE_SET "show_reply_btns" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_REPLY_BTNS;
+                       target: "end_btn.bg";
+                       target: "reply_btns_area.clipper";
+               }
+               program { name: "hide_reply_btns";
+                       in: EC_DELAY_HIDE_REPLY_BTNS;
+                       action: STATE_SET "hide_reply_btns" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_REPLY_BTNS;
+                       target: "end_btn.bg";
+                       target: "reply_btns_area.clipper";
+               }
+
+               // END CALL BUTTON
+
+               program { name: "show_end_call_btn";
+                       in: EC_DELAY_SHOW_ENDCALL_BTN;
+                       action: STATE_SET "maximize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_ENDCALL_BTN;
+                       target: "end_btn.clipper";
+               }
+               program { name: "hide_end_call_btn";
+                       in: EC_DELAY_HIDE_ENDCALL_BTN;
+                       action: STATE_SET "minimize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_ENDCALL_BTN;
+                       target: "end_btn.clipper";
+               }
+               program { name: "try_show_end_call_btn_area";
+                       script {
+                               if (get_int(show_reply_btns) != 1) {
+                                       run_program(PROGRAM:"show_end_call_btn_area");
+                               }
+                       }
+               }
+               program { name: "try_hide_end_call_btn_area";
+                       script {
+                               if (get_int(show_reply_btns) != 1) {
+                                       run_program(PROGRAM:"hide_end_call_btn_area");
+                               }
+                       }
+               }
+
+               // END CALL BACKGROUND
+
+               program { name: "show_end_call_btn_area";
+                       in: EC_DELAY_SHOW_ENDCALL_BTN_AREA;
+                       action: STATE_SET "maximize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_ENDCALL_BTN_AREA;
+                       target: "end_btn_area.clipper";
+               }
+               program { name: "hide_end_call_btn_area";
+                       in: EC_DELAY_HIDE_ENDCALL_BTN_AREA;
+                       action: STATE_SET "minimize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR_ENDCALL_BTN_AREA;
+                       target: "end_btn_area.clipper";
+               }
+
+               // MINIMIZE / MAXIMIZE START LOGIC
+
+               program { name: "minimize";
+                       signal: "minimize";
+                       source: "view_main_ly";
+
+                       after: "hide_end_call_btn";
+                       after: "try_show_reply_btns";
+                       after: "try_hide_end_call_btn_area";
+                       after: "run_minimize_animation";
+               }
+               program { name: "maximize";
+                       signal: "maximize";
+                       source: "view_main_ly";
+
+                       after: "show_end_call_btn";
+                       after: "try_hide_reply_btns";
+                       after: "try_show_end_call_btn_area";
+                       after: "run_maximize_animation";
+               }
+               program { name: "run_minimize_animation";
+                       action: STATE_SET "minimize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR;
+                       target: "content.clipper";
+                       after: "minimize_anim_finished";
+               }
+               program { name: "run_maximize_animation";
+                       action: STATE_SET "maximize" 0.0;
+                       transition: LINEAR EC_ANIM_DUR;
+                       target: "content.clipper";
+                       after: "maximize_anim_finished";
+               }
+               program { name: "minimize_anim_finished";
+                       action: SIGNAL_EMIT "minimize.anim.finished" "view_main_ly";
+               }
+               program { name: "maximize_anim_finished";
+                       action: SIGNAL_EMIT "maximize.anim.finished" "view_main_ly";
                }
        }
 }
index c4445af..fe23a63 100644 (file)
@@ -75,7 +75,7 @@ group {
                        description {
                                state: "default" 0.0;
                                rel1 { relative: 0 (INDICATOR_HEIGHT+72)/MULTI_LIST_HEIGHT; to: "background"; }
-                               rel2 { relative: 1 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; }
+                               rel2 { relative: 1 (MULTI_LIST_HEIGHT-ENDCALL_BTN_BG_H)/MULTI_LIST_HEIGHT; to: "background"; }
                        }
                }
 
@@ -84,7 +84,7 @@ group {
                        type: RECT;
                        description {
                                state: "default" 0.0;
-                               rel1 { relative: 0 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; }
+                               rel1 { relative: 0 (MULTI_LIST_HEIGHT-ENDCALL_BTN_BG_H)/MULTI_LIST_HEIGHT; to: "background"; }
                                rel2 { relative: 1 1; to: "background"; }
                                color: 255 255 255 255;
                        }
index 53b5c4f..9b91926 100644 (file)
@@ -179,8 +179,8 @@ group {
                                fixed: 1 0;
                                min: QP_CONTACT_ICON_PAD_R 0;
                                max: QP_CONTACT_ICON_PAD_R -1;
-                               rel1 { relative: 1 0; to_x: "caller_id"; }
-                               rel2 { relative: 1 1; to_x: "caller_id"; }
+                               rel1 { relative: 1 0; to_x: "contact_icon"; }
+                               rel2 { relative: 1 1; to_x: "contact_icon"; }
                                align: 0 0.5;
                        }
                }
@@ -313,7 +313,7 @@ group {
                                visible: 1;
                        }
                }
-               part { name: "txt_call_name";
+               part { name: "contact_name";
                        type: TEXTBLOCK;
                        scale: 1;
                        description {
@@ -346,11 +346,11 @@ group {
                                state: "default" 0.0;
                                rel1 {
                                        relative: 0.0 1.0;
-                                       to: "txt_call_name";
+                                       to: "contact_name";
                                }
                                rel2 {
                                        relative: 1.0 1.0;
-                                       to: "txt_call_name";
+                                       to: "contact_name";
                                }
                                min: 0 QP_TIMER_TXT_H;
                                fixed: 0 1;
@@ -364,7 +364,7 @@ group {
                                color_class: "ATO006QP";
                        }
                }
-               part { name: "caller_id";
+               part { name: "contact_icon";
                        type: SWALLOW;
                        scale: 1;
                        description {
@@ -416,8 +416,8 @@ group {
                        description {
                                visible: 0;
                                fixed: 1 1;
-                               rel1 { relative: 0.0 0.0; to: "caller_id"; }
-                               rel2 { relative: 1.0 1.0; to: "caller_id"; }
+                               rel1 { relative: 0.0 0.0; to: "contact_icon"; }
+                               rel2 { relative: 1.0 1.0; to: "contact_icon"; }
                                image {
                                        normal: IMG_SRC_DIR/"call_photo_id_mask.png";
                                }
@@ -454,14 +454,14 @@ group {
                                visible: 0;
                        }
                }
-               part {  name: "caller_id_img";
+               part {  name: "contact_icon_def";
                        type: IMAGE;
                        scale: 1;
                        description {
                                visible: 0;
                                fixed: 1 1;
-                               rel1 { relative: 0.0 0.0; to: "caller_id"; }
-                               rel2 { relative: 1.0 1.0; to: "caller_id"; }
+                               rel1 { relative: 0.0 0.0; to: "contact_icon"; }
+                               rel2 { relative: 1.0 1.0; to: "contact_icon"; }
                                image {
                                        normal: IMG_SRC_DIR/"call_photo_id.png";
                                }
@@ -515,9 +515,9 @@ group {
                        target: "swallow.resume_button";
                        target: "swallow.call_button";
                        target: "swallow.speaker_button";
-                       target: "caller_id_img";
+                       target: "contact_icon_def";
                        target: "caller_id_mask";
-                       target: "caller_id";
+                       target: "contact_icon";
                        target: "txt_area";
                }
                program {
@@ -554,9 +554,9 @@ group {
                        target: "swallow.resume_button";
                        target: "swallow.call_button";
                        target: "swallow.speaker_button";
-                       target: "caller_id_img";
+                       target: "contact_icon_def";
                        target: "caller_id_mask";
-                       target: "caller_id";
+                       target: "contact_icon";
                        target: "txt_area";
                }
                program {
@@ -565,7 +565,7 @@ group {
                        source: "*";
                        action: STATE_SET "show" 0.0;
                        target: "caller_id_mask";
-                       target: "caller_id_img";
+                       target: "contact_icon_def";
                }
                program {
                        name: "hide_image";
@@ -573,7 +573,7 @@ group {
                        source: "*";
                        action: STATE_SET "hide" 0.0;
                        target: "caller_id_mask";
-                       target: "caller_id_img";
+                       target: "contact_icon_def";
                }
        }
 }
index 7267772..aea4c13 100644 (file)
  *
  */
 
+// ANIMATION DEFINES
+
+#define EC_ANIM_DUR                                                    0.5
+
+#define EC_ANIM_DUR_ENDCALL_BTN                                (EC_ANIM_DUR / 3)
+#define EC_ANIM_DUR_ENDCALL_BTN_AREA           (EC_ANIM_DUR / 3)
+#define EC_ANIM_DUR_CONT_INFO_B_S                      (EC_ANIM_DUR / 2)
+#define EC_ANIM_DUR_CONT_INFO_S_B                      (EC_ANIM_DUR - EC_ANIM_DUR_CONT_INFO_B_S)
+#define EC_ANIM_DUR_REPLY_BTNS                         (EC_ANIM_DUR - EC_ANIM_DUR_ENDCALL_BTN)
+
+#define EC_DELAY_HIDE_ENDCALL_BTN                      0.0 0.0
+#define EC_DELAY_SHOW_ENDCALL_BTN                      (EC_ANIM_DUR - EC_ANIM_DUR_ENDCALL_BTN) 0.0
+#define EC_DELAY_HIDE_ENDCALL_BTN_AREA         (EC_ANIM_DUR - EC_ANIM_DUR_ENDCALL_BTN_AREA) 0.0
+#define EC_DELAY_SHOW_ENDCALL_BTN_AREA         0.0 0.0
+#define EC_DELAY_SHOW_REPLY_BTNS                       EC_ANIM_DUR_ENDCALL_BTN 0.0
+#define EC_DELAY_HIDE_REPLY_BTNS                       0.0 0.0
+
+// CALLER INFO DEFINES
+
+#define EC_ADD_CONT_BTN_DIMENT                         80
+#define EC_ADD_CONT_BTN_PAD_RIGHT                      17
+#define EC_ADD_CONT_BTN_PAD_LEFT                       32
+#define EC_ADD_CONT_BTN_PAD_TOP                                (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + EC_STATE_TXT_PAD_EC_ADD_CONT_BTN)
+#define EC_ADD_CONT_BTN_SIZE                           EC_ADD_CONT_BTN_DIMENT EC_ADD_CONT_BTN_DIMENT
+#define EC_ADD_CONT_BTN_IMAGE_SIZE                     46 46
+#define EC_ADD_CONT_BTN_IMAGE_BORDER           17
+
+#define EC_STATE_TXT_PAD_EC_CONT_NAME          50
+#define EC_STATE_TXT_PAD_EC_ADD_CONT_BTN       74
+#define EC_STATE_TXT_PAD_CONT_ICON                     30
+
+#define EC_CONT_ICON_DIMENT                                    168
+#define EC_CONT_ICON_SIZE_MIN                          EC_CONT_ICON_DIMENT EC_CONT_ICON_DIMENT
+#define EC_CONT_ICON_PAD_TOP                           (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + EC_STATE_TXT_PAD_CONT_ICON)
+#define EC_CONT_ICON_PAD_BOTTOM                                44
+#define EC_CONT_ICON_PAD_RIGHT                         32
+#define EC_CONT_ICON_PAD_LEFT                          32
+
+#define EC_BG_PAD_RIGHT_MIN                                    CI_LAYOUT_PAD_RIGHT
+#define EC_BG_PAD_RIGHT_MIN_W_ADD_CONT_BTN     (EC_ADD_CONT_BTN_PAD_RIGHT + EC_ADD_CONT_BTN_DIMENT + EC_ADD_CONT_BTN_PAD_LEFT)
+
+#define EC_CONT_NAME_SIZE_MIN                          0 76
+#define EC_CONT_INFO_PAD_LEFT                          (EC_CONT_ICON_PAD_LEFT + EC_CONT_ICON_DIMENT + EC_CONT_ICON_PAD_RIGHT)
+#define EC_CONT_NAME_PAD_TOP                           (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + EC_STATE_TXT_PAD_EC_CONT_NAME)
+#define EC_CONT_NAME_PAD_BOTTOM                                6
+
+#define EC_PHONE_NUMB_SIZE_MIN                         0 46
+#define EC_PHONE_NUMB_PAD_TOP                          (EC_CONT_NAME_PAD_TOP + EC_CONT_NAME_SIZE_MIN + EC_CONT_NAME_PAD_BOTTOM)
+
+// APPLICATION AND VIEW MAIN LAYOUT DEFINES
+
+#define EC_LAYOUT_MINIMIZE_SIZE                                (CALL_STATUS_TXT_PAD_TOP + CALL_STATUS_TXT_HEIGHT + EC_STATE_TXT_PAD_CONT_ICON + EC_CONT_ICON_DIMENT + EC_CONT_ICON_PAD_BOTTOM)
+
+#define EC_REPLY_BTN_HEIGHT                                    190
+#define EC_REPLY_BTN_ICON_PAD_TOP                      36
+#define EC_REPLY_BTN_ICON_DIMENT                       64
+#define EC_REPLY_BTN_TXT_HEIGHT                                38
+#define EC_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON    20
+#define EC_REPLY_BTN_TXT_PAD_TOP                       (EC_REPLY_BTN_ICON_PAD_TOP + EC_REPLY_BTN_ICON_DIMENT + EC_REPLY_BTN_TXT_PAD_REPLY_BTN_ICON)
+#define EC_REPLY_BTN_ICON_SIZE                         EC_REPLY_BTN_ICON_DIMENT EC_REPLY_BTN_ICON_DIMENT
+
 styles {
-       style {
-               name: "call_timer_style";
-               base: "font=Tizen:style=Regular align=left font_size=40 color=#FFFFFF ellipsis=1.0";
+       style { name: "ec_reply_btn_default";
+               base: "font=Tizen:style=Regular align=center font_size=34 color=#808080 ellipsis=1.0";
        }
-       style {
-               name: "call_name";
+       style { name: "ec_reply_btn_pressed";
+               base: "font=Tizen:style=Regular align=center font_size=34 color=#3DB9CC ellipsis=1.0";
+       }
+       style { name: "ec_contact_name";
                base: "font=Tizen:style=Regular align=left font_size=56 color=#FFFFFF ellipsis=1.0";
        }
-       style {
-               name: "call_number";
+       style { name: "ec_phone_number";
                base: "font=Tizen:style=Regular align=left font_size=34 color=#FFFFFF ellipsis=1.0";
        }
-       style {
-               name: "button_style";
-               base: "font=Tizen:style=Regular align=center font_size=34 color=#808080 ellipsis=1.0";
-       }
-       style {
-               name: "button_style_pressed";
-               base: "font=Tizen:style=Regular align=center font_size=34 color=#3DB9CC ellipsis=1.0";
-       }
 }
 
-#define MAIN_WIDTH                                     MAIN_SCREEN_W
-#define MAIN_HEIGHT                                    MAIN_SCREEN_H
-#define MAIN_WIDTH_TWO                         (MAIN_WIDTH/2)
-
-#define EC_MAIN_TITLE_T_PAD                    30
-#define EC_MAIN_TITLE_H                                54
-#define EC_CONTACT_IMAGE_T_PAD         30
-#define EC_CONTACT_IMAGE_SIZE          168
-#define EC_BOTTOM_BTN_T_PAD                    44
-#define EC_BOTTOM_BTN_H                                190
-#define EC_MAIN_BG_H                           (INDICATOR_HEIGHT+EC_MAIN_TITLE_T_PAD+EC_MAIN_TITLE_H+EC_CONTACT_IMAGE_T_PAD+EC_CONTACT_IMAGE_SIZE+EC_BOTTOM_BTN_T_PAD)
-
-#define EC_MAIN_TITLE_R_PAD                    32
-
-#define EC_CONTACT_NAME_T_PAD          50
-#define EC_CONTACT_NAME_H                      76
-
-#define EC_CONTACT_NUMBER_T_PAD                6
-#define EC_CONTACT_NUMBER_H                    46
-
-#define EC_ADD_BTN_ICON_SIZE           80
-#define EC_ADD_BTN_ICON_B_PAD          88
-#define EC_ADD_BTN_SIZE                                120
-#define EC_ADD_BUTTON_R_PAD                    20
-
-#define EC_ADD_ICON_BTN_L_PAD          32
-#define EC_ADD_ICON_BTN_R_PAD          17
-
-#define EC_BOTTOM_BTN_ICON_SIZE                64
-#define EC_BOTTOM_BTN_TEXT_W           132
-#define EC_BOTTOM_BTN_ICON_T_PAD       36
-#define EC_BOTTOM_BTN_ICON_L_PAD       ((MAIN_WIDTH_TWO-EC_BOTTOM_BTN_ICON_SIZE)/2)
-#define EC_BOTTOM_BTN_R_PAD                    (EC_BOTTOM_BTN_R_PAD+EC_BOTTOM_BTN_ICON_SIZE)
-
-#define EC_BOTTOM_BTN_TEXT_B_PAD       38
-#define EC_BOTTOM_BTN_TEXT_R_PAD       ((MAIN_WIDTH_TWO-EC_BOTTOM_BTN_TEXT_W)/2)
-#define EC_BOTTOM_BTN_TEXT_L_PAD       (EC_BOTTOM_BTN_TEXT_R_PAD+EC_BOTTOM_BTN_TEXT_W)
-
-#define EC_MAIN_TITLE_X0               ((EC_MAIN_TITLE_R_PAD)/MAIN_WIDTH)
-#define EC_MAIN_TITLE_Y0               ((INDICATOR_HEIGHT+EC_MAIN_TITLE_T_PAD)/EC_MAIN_BG_H)
-#define EC_MAIN_TITLE_Y1               ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD)/EC_MAIN_BG_H)
-
-#define EC_CONTACT_IMAGE_X0            (EC_MAIN_TITLE_R_PAD/MAIN_WIDTH)
-#define EC_CONTACT_IMAGE_Y0            ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_IMAGE_T_PAD)/EC_MAIN_BG_H)
-#define EC_CONTACT_IMAGE_X1            ((EC_MAIN_TITLE_R_PAD+EC_CONTACT_IMAGE_SIZE)/MAIN_WIDTH)
-#define EC_CONTACT_IMAGE_Y1            ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_IMAGE_T_PAD+EC_CONTACT_IMAGE_SIZE)/EC_MAIN_BG_H)
-
-#define EC_RECT_BUTTON_X0              0.0
-#define EC_RECT_BUTTON_Y0              (EC_MAIN_BG_H/EC_MAIN_BG_H)
-#define EC_RECT_BUTTON_Y1              ((EC_MAIN_BG_H+EC_BOTTOM_BTN_H)/EC_MAIN_BG_H)
-
-#define EC_CONTACT_NAME_X0             (EC_CONTACT_IMAGE_X1+(EC_MAIN_TITLE_R_PAD/MAIN_WIDTH))
-#define EC_CONTACT_NAME_Y0             ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_NAME_T_PAD)/EC_MAIN_BG_H)
-#define EC_CONTACT_NAME_X1             ((MAIN_WIDTH-EC_ADD_ICON_BTN_R_PAD-EC_ADD_BTN_ICON_SIZE-EC_ADD_ICON_BTN_L_PAD)/MAIN_WIDTH)
-#define EC_CONTACT_NAME_Y1             ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_NAME_T_PAD+EC_CONTACT_NAME_H)/EC_MAIN_BG_H)
-
-#define EC_CONTACT_NUMBER_X0   (EC_CONTACT_IMAGE_X1+(EC_MAIN_TITLE_R_PAD/MAIN_WIDTH))
-#define EC_CONTACT_NUMBER_Y0   ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_NAME_T_PAD+EC_CONTACT_NAME_H+EC_CONTACT_NUMBER_T_PAD)/EC_MAIN_BG_H)
-#define EC_CONTACT_NUMBER_X1   ((MAIN_WIDTH-EC_ADD_ICON_BTN_R_PAD-EC_ADD_BTN_ICON_SIZE-EC_ADD_ICON_BTN_L_PAD)/MAIN_WIDTH)
-#define EC_CONTACT_NUMBER_Y1   ((INDICATOR_HEIGHT+EC_MAIN_TITLE_H+EC_MAIN_TITLE_T_PAD+EC_CONTACT_NAME_T_PAD+EC_CONTACT_NAME_H+EC_CONTACT_NUMBER_T_PAD+EC_CONTACT_NUMBER_H)/EC_MAIN_BG_H)
-
-#define EC_CREATE_CONTACT_X0   ((MAIN_WIDTH-EC_ADD_ICON_BTN_R_PAD-EC_ADD_BTN_ICON_SIZE)/MAIN_WIDTH)
-#define EC_CREATE_CONTACT_Y0   ((EC_MAIN_BG_H-EC_ADD_BTN_ICON_B_PAD-EC_ADD_BTN_ICON_SIZE)/EC_MAIN_BG_H)
-#define EC_CREATE_CONTACT_X1   ((MAIN_WIDTH-EC_ADD_ICON_BTN_R_PAD)/MAIN_WIDTH)
-#define EC_CREATE_CONTACT_Y1   ((EC_MAIN_BG_H-EC_ADD_BTN_ICON_B_PAD)/EC_MAIN_BG_H)
-
-#define EC_BUTTON_ICON_X0              (EC_BOTTOM_BTN_ICON_L_PAD/MAIN_WIDTH_TWO)
-#define EC_BUTTON_ICON_Y0              (EC_BOTTOM_BTN_ICON_T_PAD/EC_BOTTOM_BTN_H)
-#define EC_BUTTON_ICON_X1              ((EC_BOTTOM_BTN_ICON_L_PAD+EC_BOTTOM_BTN_ICON_SIZE)/MAIN_WIDTH_TWO)
-#define EC_BUTTON_ICON_Y1              (EC_BOTTOM_BTN_ICON_T_PAD+EC_BOTTOM_BTN_ICON_SIZE)/EC_BOTTOM_BTN_H
-
-#define EC_BUTTON_TEXT_X0              (EC_BOTTOM_BTN_TEXT_R_PAD/MAIN_WIDTH_TWO)
-#define EC_BUTTON_TEXT_Y0              ((EC_BOTTOM_BTN_ICON_T_PAD+EC_BOTTOM_BTN_ICON_SIZE)/EC_BOTTOM_BTN_H)
-#define EC_BUTTON_TEXT_X1              (EC_BOTTOM_BTN_TEXT_L_PAD/MAIN_WIDTH_TWO)
-#define EC_BUTTON_TEXT_Y1              ((EC_BOTTOM_BTN_ICON_T_PAD+EC_BOTTOM_BTN_ICON_SIZE+EC_BOTTOM_BTN_TEXT_B_PAD)/EC_BOTTOM_BTN_H)
-
-#define EC_ADD_BTN_ICON_X0             (EC_ADD_BUTTON_R_PAD/EC_ADD_BTN_SIZE)
-#define EC_ADD_BTN_ICON_Y0             (EC_ADD_BUTTON_R_PAD/EC_ADD_BTN_SIZE)
-#define EC_ADD_BTN_ICON_X1             ((EC_ADD_BTN_ICON_SIZE + EC_ADD_BUTTON_R_PAD)/EC_ADD_BTN_SIZE)
-#define EC_ADD_BTN_ICON_Y1             ((EC_ADD_BTN_ICON_SIZE + EC_ADD_BUTTON_R_PAD)/EC_ADD_BTN_SIZE)
-
-#define EC_MAIN_BG_Y1                  (EC_MAIN_BG_H/MAIN_HEIGHT)
-#define EC_EMERG_MAIN_BG_Y1            (EC_EMERG_MAIN_BG_H/MAIN_HEIGHT)
-
-#define END_BOTTOM_BUTTON(style_name, img_path) \
+#define EC_REPLY_BUTTON(style_name, img_path) \
 group { \
        name: style_name; \
        parts { \
-               part { name: "bg"; \
-                       type: RECT; \
-                       scale: 1; \
-                       description { \
-                               state: "default" 0.0; \
+               CU_PART_RECT( "bg", \
+                       mouse_events: 1; \
+                       repeat_events: 0; \
+                       description { state: "default" 0.0; } \
+                       description { state: "pressed" 0.0; \
+                               inherit: "default" 0.0; \
                                color_class: "AO001"; \
                        } \
-               } \
-               part { name: "click_bg"; \
-                       type: RECT; \
-                       scale: 1; \
-                       description { \
-                               state: "default" 0.0; \
-                               color: 255 255 255 255; \
+               ) \
+               CU_PART_RECT( "click_bg", \
+                       mouse_events: 1; \
+                       repeat_events: 0; \
+                       description { state: "default" 0.0; \
+                               color: COLOR_WHITE; \
                        } \
-                       description { \
-                               state: "pressed" 0.0; \
+                       description { state: "pressed" 0.0; \
                                color: 0 0 0 76; \
                        } \
-               } \
-               part { name: "end_btn_text"; \
-                       type: TEXTBLOCK; \
-                       scale: 1; \
-                       description { \
-                               state: "default" 0.0; \
-                               rel1 { relative: EC_BUTTON_TEXT_X0 EC_BUTTON_TEXT_Y0; to: "bg";} \
-                               rel2 { relative: EC_BUTTON_TEXT_X1 EC_BUTTON_TEXT_Y1; to: "bg";} \
-                               text { \
-                                       fit: 1 1; \
-                                       style:"button_style"; \
-                               } \
+               ) \
+               CU_PART_SPACER( "sizer", \
+                       description { state: "default" 0.0; \
+                               min: 0 EC_REPLY_BTN_HEIGHT; \
+                               max: -1 EC_REPLY_BTN_HEIGHT; \
+                               fixed: 1 1; \
                        } \
-                       description { \
-                               state: "pressed" 0.0; \
-                               inherit: "default" 0.0; \
-                               text.style:"button_style_pressed"; \
+               ) \
+               CU_PART_SPACER( "icon.padding.top", \
+                       description { state: "default" 0.0; \
+                               min: 0 EC_REPLY_BTN_ICON_PAD_TOP; \
+                               fixed: 0 1; \
+                               rel1 { relative: 0.0 0.0; to: "sizer"; } \
+                               rel2 { relative: 1.0 0.0; to: "sizer"; } \
+                               align: 0.0 0.0; \
                        } \
-               } \
-               part { name: "end_btn_icon"; \
-                       type: IMAGE; \
-                       scale: 1; \
-                       description { \
-                               state: "default" 0.0; \
-                               rel1 { relative: EC_BUTTON_ICON_X0 EC_BUTTON_ICON_Y0; to: "bg";} \
-                               rel2 { relative: EC_BUTTON_ICON_X1 EC_BUTTON_ICON_Y1; to: "bg";} \
-                               image { \
-                                       normal: img_path; \
-                               } \
+               ) \
+               CU_PART_IMAGE( "icon", \
+                       description { state: "default" 0.0; \
+                               rel1 { relative: 0.0 1.0; to: "icon.padding.top"; } \
+                               rel2 { relative: 1.0 1.0; to: "icon.padding.top"; } \
+                               min: EC_REPLY_BTN_ICON_SIZE; \
+                               max: EC_REPLY_BTN_ICON_SIZE; \
+                               fixed: 1 1; \
+                               image.normal: img_path; \
                                color_class: "AO009"; \
+                               align: 0.5 0.0; \
                        } \
                        description { \
                                state: "pressed" 0.0; \
                                inherit: "default" 0.0; \
                                color_class: "AO001"; \
                        } \
-               } \
+               ) \
+               CU_PART_SPACER( "text.padding.top", \
+                       description { state: "default" 0.0; \
+                               min: 0 EC_REPLY_BTN_TXT_PAD_TOP; \
+                               fixed: 0 1; \
+                               rel1 { relative: 0.0 0.0; to: "sizer"; } \
+                               rel2 { relative: 1.0 0.0; to: "sizer"; } \
+                               align: 0.0 0.0; \
+                       } \
+               ) \
+               CU_PART_TEXTBLOCK( "text", \
+                       description { state: "default" 0.0; \
+                               rel1 { relative: 0.0 1.0; to: "text.padding.top"; } \
+                               rel2 { relative: 1.0 1.0; to: "text.padding.top"; } \
+                               min: 0 EC_REPLY_BTN_TXT_HEIGHT; \
+                               text { \
+                                       fit: 1 1; \
+                                       style:"ec_reply_btn_default"; \
+                               } \
+                       } \
+                       description { state: "pressed" 0.0; \
+                               inherit: "default" 0.0; \
+                               text.style:"ec_reply_btn_pressed"; \
+                       } \
+               ) \
        } \
        programs { \
                program { name: "clicked"; \
@@ -194,17 +183,19 @@ group { \
                        signal: "mouse,down,*"; \
                        source: "*"; \
                        action: STATE_SET "pressed" 0.0; \
+                       target: "bg"; \
                        target: "click_bg"; \
-                       target: "end_btn_icon"; \
-                       target: "end_btn_text"; \
+                       target: "icon"; \
+                       target: "text"; \
                } \
                program { name: "unpressed"; \
                        signal: "mouse,up,*"; \
                        source: "*"; \
                        action: STATE_SET "default" 0.0; \
+                       target: "bg"; \
                        target: "click_bg"; \
-                       target: "end_btn_icon"; \
-                       target: "end_btn_text"; \
+                       target: "icon"; \
+                       target: "text"; \
                } \
                program { name: "touch_snd"; \
                        action: RUN_PLUGIN "touch_sound"; \
@@ -212,50 +203,44 @@ group { \
        } \
 } \
 
-END_BOTTOM_BUTTON("call_back", IMG_SRC_DIR/"call_button_icon_03.png")
-END_BOTTOM_BUTTON("message_button", IMG_SRC_DIR/"call_button_icon_04.png")
+EC_REPLY_BUTTON("call_back", IMG_SRC_DIR/"call_button_icon_03.png")
+EC_REPLY_BUTTON("message_button", IMG_SRC_DIR/"call_button_icon_04.png")
 
 group {
-       name: "create_contact_button";
+       name: "add_contact_button";
        parts {
-               part { name: "bg";
-                       type: RECT;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               color_class: "W0113";
+               CU_PART_RECT( "bg",
+                       description { state: "default" 0.0;
+                               color: COLOR_BG_ALPHA;
                        }
-                       description {
-                               state: "pressed" 0.0;
+                       description { state: "pressed" 0.0;
                                inherit: "default" 0.0;
                                color_class: "W0113P";
                        }
-               }
-
-               part { name: "icon";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_ADD_BTN_ICON_X0 EC_ADD_BTN_ICON_Y0; to: "bg";}
-                               rel2 { relative: EC_ADD_BTN_ICON_X1 EC_ADD_BTN_ICON_Y1; to: "bg";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_button_add.png";
-                               }
-                               color: 255 255 255 255;
-                       }
-               }
+               )
+               CU_PART_PADDING_TOP(EC_ADD_CONT_BTN_IMAGE_BORDER)
+               CU_PART_PADDING_LEFT(EC_ADD_CONT_BTN_IMAGE_BORDER)
+               CU_PART_PADDING_BOTTOM(EC_ADD_CONT_BTN_IMAGE_BORDER)
+               CU_PART_PADDING_RIGHT(EC_ADD_CONT_BTN_IMAGE_BORDER)
+               CU_PART_IMAGE( "icon",
+                       description { state: "default" 0.0;
+                               min: EC_ADD_CONT_BTN_IMAGE_SIZE;
+                               max: EC_ADD_CONT_BTN_IMAGE_SIZE;
+                               rel1 { relative: 1.0 1.0;       to_x: "padding.left";   to_y: "padding.top"; }
+                               rel2 { relative: 0.0 0.0;       to_x: "padding.right";  to_y: "padding.bottom"; }
+                               image.normal: IMG_SRC_DIR/"call_button_add.png";
+                               color: COLOR_WHITE;
+                       }
+               )
        }
        programs {
-               program {
-                       name: "pressed";
+               program { name: "pressed";
                        signal: "mouse,down,*";
                        source: "*";
                        action: STATE_SET "pressed" 0.0;
                        target: "bg";
                }
-               program {
-                       name: "unpressed";
+               program { name: "unpressed";
                        signal: "mouse,up,*";
                        source: "*";
                        action: STATE_SET "default" 0.0;
@@ -263,265 +248,3 @@ group {
                }
        }
 }
-
-group {
-       name: "main_end_call";
-       parts {
-               part { name: "background";
-                       type: IMAGE;
-                       description {
-                               state: "default" 0.0;
-                               image.normal: IMG_SRC_DIR/"background_dim.png";
-                       }
-               }
-
-               part { name: "contact_ly";
-                       type: RECT;
-                       description {
-                               state: "default" 0.0;
-                               color_class: "AO001";
-                               rel1 { relative: 0.0 0.0; to: "background"; }
-                               rel2 { relative: 1.0 EC_MAIN_BG_Y1; to: "background"; }
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
-               part { name: "caller_id";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_CONTACT_IMAGE_X0 EC_CONTACT_IMAGE_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_IMAGE_X1 EC_CONTACT_IMAGE_Y1; to: "contact_ly";}
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
-               part {  name: "caller_id_mask";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               visible: 0;
-                               rel1 { relative: EC_CONTACT_IMAGE_X0 EC_CONTACT_IMAGE_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_IMAGE_X1 EC_CONTACT_IMAGE_Y1; to: "contact_ly";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_mask.png";
-                               }
-                               aspect_preference: SOURCE;
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-                       description {
-                               state: "emergency" 0.0;
-                               inherit: "default" 0.0;
-                               color_class: "AO036";
-                       }
-                       description {
-                               state: "conference" 0.0;
-                               inherit: "show" 0.0;
-                       }
-               }
-
-               part {  name: "caller_id_img";
-                       type: IMAGE;
-                       scale: 1;
-                       description {
-                               visible: 0;
-                               rel1 { relative: EC_CONTACT_IMAGE_X0 EC_CONTACT_IMAGE_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_IMAGE_X1 EC_CONTACT_IMAGE_Y1; to: "contact_ly";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id.png";
-                               }
-                               aspect_preference: SOURCE;
-                               color_class: "AO001";
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-                       description {
-                               state: "emergency" 0.0;
-                               rel1 { relative: EC_CONTACT_IMAGE_X0 EC_CONTACT_IMAGE_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_IMAGE_X1 EC_CONTACT_IMAGE_Y1; to: "contact_ly";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_emergency.png";
-                               }
-                               aspect_preference: SOURCE;
-                       }
-                       description {
-                               state: "conference" 0.0;
-                               rel1 { relative: EC_CONTACT_IMAGE_X0 EC_CONTACT_IMAGE_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_IMAGE_X1 EC_CONTACT_IMAGE_Y1; to: "contact_ly";}
-                               image {
-                                       normal: IMG_SRC_DIR/"call_photo_id_conference.png";
-                               }
-                               color_class: "AO003L2";
-                               aspect_preference: SOURCE;
-                       }
-               }
-
-               part { name: "contact_name";
-                       type: TEXTBLOCK;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_CONTACT_NAME_X0 EC_CONTACT_NAME_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_NAME_X1 EC_CONTACT_NAME_Y1; to: "contact_ly";}
-                               text {
-                                       ellipsis: 0.0;
-                                       style:"call_name";
-                               }
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
-               part { name: "contact_number";
-                       type: TEXTBLOCK;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_CONTACT_NUMBER_X0 EC_CONTACT_NUMBER_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CONTACT_NUMBER_X1 EC_CONTACT_NUMBER_Y1; to: "contact_ly";}
-                               text {
-                                       ellipsis: 1.0;
-                                       style:"call_number";
-                               }
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
-               part { name: "swallow.create_contact";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_CREATE_CONTACT_X0 EC_CREATE_CONTACT_Y0; to: "contact_ly";}
-                               rel2 { relative: EC_CREATE_CONTACT_X1 EC_CREATE_CONTACT_Y1; to: "contact_ly";}
-                       }
-                       description {
-                               state: "show" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 1;
-                       }
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
-               part { name: "button_call_back";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0.0 EC_RECT_BUTTON_Y0; to: "contact_ly";}
-                               rel2 { relative: 0.5 EC_RECT_BUTTON_Y1; to: "contact_ly";}
-                       }
-               }
-
-               part { name: "button_message_back";
-                       type: SWALLOW;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0.5 EC_RECT_BUTTON_Y0; to: "contact_ly";}
-                               rel2 { relative: 1.0 EC_RECT_BUTTON_Y1; to: "contact_ly";}
-                       }
-               }
-               part { name: "call_txt_status";
-                       type: TEXTBLOCK;
-                       scale: 1;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: EC_MAIN_TITLE_X0 EC_MAIN_TITLE_Y0; to: "contact_ly";}
-                               rel2 { relative: 1.0 EC_MAIN_TITLE_Y1; to: "contact_ly";}
-                               text.style:"call_timer_style";
-                       }
-               }
-       }
-       programs{
-               program {
-                       name: "show_def_caller_id";
-                       signal: "show_def_caller_id";
-                       source: "main_end_call";
-                       action: STATE_SET "show" 0.0;
-                       target: "caller_id_mask";
-                       target: "caller_id_img";
-               }
-               program {
-                       name: "hide_def_caller_id";
-                       signal: "hide_def_caller_id";
-                       source: "main_end_call";
-                       action: STATE_SET "hide" 0.0;
-                       target: "caller_id_mask";
-                       target: "caller_id_img";
-               }
-               program {
-                       name: "show_emergency_icon";
-                       signal: "set_emergency_mode";
-                       source: "main_end_call";
-                       action: STATE_SET "emergency" 0.0;
-                       target: "caller_id_mask";
-                       target: "caller_id_img";
-               }
-               program {
-                       name: "show_conference_icon";
-                       signal: "set_conference_mode";
-                       source: "main_end_call";
-                       action: STATE_SET "conference" 0.0;
-                       target: "caller_id_img";
-                       target: "caller_id_mask";
-               }
-       }
-}
index 58a0cad..7a32a1a 100644 (file)
@@ -37,9 +37,7 @@ styles {
 #define IAC_MAIN_HEIGHT                                (INDICATOR_HEIGHT+IAC_REC_MAIN_INFO+IAC_REC_BTN_H+IAC_IAC_SWAP_BTN_Y) // 350
 #define IAC_MAIN_WIDTH                         MAIN_SCREEN_W
 #define IAC_MAIN_HEIGHT_REJECT         MAIN_SCREEN_H
-
 #define IAC_MAIN_HEIGHT_RECT_REJECT    IAC_MAIN_HEIGHT
-#define IAC_MAIN_HEIGHT_REJECT         MAIN_SCREEN_H
 
 #define IAH_SPACE_BTN                  186
 #define IAC_SPACE_BETWEEN_BTNS 16
@@ -244,7 +242,7 @@ group {
                        }
                }
 
-               part { name: "caller_id";
+               part { name: "contact_icon";
                        type: SWALLOW;
                        scale: 1;
                        description { state: "default" 0.0;
@@ -454,12 +452,12 @@ group {
                program {
                        name: "show_caller_id";
                        action: STATE_SET "show" 0.0;
-                       target: "caller_id";
+                       target: "contact_icon";
                }
                program {
                        name: "hide_caller_id";
                        action: STATE_SET "hide" 0.0;
-                       target: "caller_id";
+                       target: "contact_icon";
                }
                program {
                        name: "show_def_caller_id";
diff --git a/edje_src/edc/callui-parts.edc b/edje_src/edc/callui-parts.edc
new file mode 100644 (file)
index 0000000..d3e2f2a
--- /dev/null
@@ -0,0 +1,223 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define CU_PART_SPACER(_name, _description) \
+               part { name: _name; \
+                       scale: 1; \
+                       mouse_events: 0; \
+                       type: SPACER; \
+                       _description \
+               }
+
+#define CU_PART_RECT(_name, _description) \
+               part { name: _name; \
+                       mouse_events: 0; \
+                       scale: 1; \
+                       type: RECT; \
+                       _description \
+               }
+
+#define CU_PART_IMAGE(_name, _description) \
+               part { name: _name; \
+                       scale: 1; \
+                       type: IMAGE; \
+                       _description \
+               }
+
+#define CU_PART_SWALLOW(_name, _description) \
+               part { name: _name; \
+                       scale: 1; \
+                       type: SWALLOW; \
+                       _description \
+               }
+
+#define CU_PART_TEXT(_name, _description) \
+               part { name: _name; \
+                       scale: 1; \
+                       type: TEXT; \
+                       mouse_events: 0; \
+                       _description \
+               }
+
+#define CU_PART_TEXTBLOCK(_name, _description) \
+               part { name: _name; \
+                       scale: 1; \
+                       type: TEXTBLOCK; \
+                       mouse_events: 0; \
+                       _description \
+               }
+
+#define CU_PART_BASE_H(_height) \
+               CU_PART_SPACER("base", \
+                       description { state: "default" 0.0; \
+                               min: 0 _height; \
+                       } \
+               )
+
+#define CU_PART_BASE_WH(_width, _height) \
+               CU_PART_SPACER("base", \
+                       description { state: "default" 0.0; \
+                               min: _width _height; \
+                               max: _width _height; \
+                       } \
+               )
+
+#define CU_PART_BASE \
+               CU_PART_BASE_H(0)
+
+#define CU_PART_BG(_color_name) \
+               CU_PART_RECT("bg", \
+                       mouse_events: 0; \
+                       description { state: "default" 0.0; \
+                               color: _color_name; \
+                       } \
+               )
+
+#define E_SWALLOW_BG \
+               CU_PART_SWALLOW("email.swallow.bg", \
+                       mouse_events: 0; \
+                       description { state: "default" 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_TOP(_size) \
+               CU_PART_SPACER("padding.top", \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 _size; \
+                               fixed: 0 1; \
+                               rel2.relative: 1.0 0.0; \
+                               align: 0.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_TOP_NAME(_name, _size) \
+               CU_PART_SPACER(_name, \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 _size; \
+                               fixed: 0 1; \
+                               rel2.relative: 1.0 0.0; \
+                               align: 0.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_TOP_TO(_name, _dest, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               fixed: 0 1; \
+                               min: 0 _size; \
+                               rel1 { relative: 0 1; to: _dest; } \
+                               rel2 { relative: 1 1; to: _dest; } \
+                               align: 0.5 0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_BOTTOM(_size) \
+               CU_PART_SPACER("padding.bottom", \
+                       description { state: "default" 0.0; \
+                               min: 0 _size; \
+                               fixed: 0 1; \
+                               rel1.relative: 0.0 1.0; \
+                               align: 0.0 1.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_BOTTOM_NAME(_name, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               min: 0 _size; \
+                               fixed: 0 1; \
+                               rel1.relative: 0.0 1.0; \
+                               align: 0.0 1.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_BOTTOM_TO(_name, _dest, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               fixed: 0 1; \
+                               min: 0 _size; \
+                               rel1 { relative: 0 0; to: _dest; } \
+                               rel2 { relative: 1 0; to: _dest; } \
+                               align: 0.5 1; \
+                       } \
+               )
+
+#define CU_PART_PADDING_LEFT(_size) \
+               CU_PART_SPACER("padding.left", \
+                       description { state: "default" 0.0; \
+                               min: _size 0; \
+                               fixed: 1 0; \
+                               rel2.relative: 0.0 1.0; \
+                               align: 0.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_LEFT_NAME(_name, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               min: _size 0; \
+                               fixed: 1 0; \
+                               rel2.relative: 0.0 1.0; \
+                               align: 0.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_LEFT_TO(_name, _dest, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               fixed: 1 0; \
+                               min: _size 0; \
+                               max: _size -1; \
+                               rel1 { relative: 1 0; to_x: _dest; } \
+                               rel2 { relative: 1 1; to_x: _dest; } \
+                               align: 0 0.5; \
+                       } \
+               )
+
+#define CU_PART_PADDING_RIGHT(_size) \
+               CU_PART_SPACER("padding.right", \
+                       description { state: "default" 0.0; \
+                               min: _size 0; \
+                               fixed: 1 0; \
+                               rel1.relative: 1.0 0.0; \
+                               align: 1.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_RIGHT_NAME(_name, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               min: _size 0; \
+                               fixed: 1 0; \
+                               rel1.relative: 1.0 0.0; \
+                               align: 1.0 0.0; \
+                       } \
+               )
+
+#define CU_PART_PADDING_RIGHT_TO(_name, _dest, _size) \
+               CU_PART_SPACER(_name, \
+                       description { state: "default" 0.0; \
+                               fixed: 1 0; \
+                               min: _size 0; \
+                               max: _size -1; \
+                               rel1 { relative: 0 0; to_x: _dest; } \
+                               rel2 { relative: 0 1; to_x: _dest; } \
+                               align: 1 0.5; \
+                       } \
+               )
\ No newline at end of file
index b204a76..a59f246 100644 (file)
@@ -19,6 +19,7 @@
 #define __CALLUI_ACTION_BAR_H__
 
 #include <Elementary.h>
+#include <stdbool.h>
 
 typedef struct _callui_action_bar *callui_action_bar_h;
 
@@ -58,4 +59,20 @@ void _callui_action_bar_show(callui_action_bar_h action_bar);
  */
 void _callui_action_bar_hide(callui_action_bar_h action_bar);
 
+/**
+ * @brief Set disabled state on action bar
+ *
+ * @param[in]  action_bar      Action bar handler
+ * @param[in]  is_disable      Disable state
+ */
+void _callui_action_bar_set_disabled_state(callui_action_bar_h action_bar, bool is_disabled);
+
+/**
+ * @brief Get disabled state on action bar
+ *
+ * @param[in]  action_bar      Action bar handler
+ * @param[in]  is_disable      Disable state
+ */
+bool _callui_action_bar_get_disabled_state(callui_action_bar_h action_bar);
+
 #endif /* __CALLUI_ACTION_BAR_H__ */
index 233f279..0037b3a 100644 (file)
@@ -39,7 +39,7 @@
 #undef _
 #define _(s) gettext(s)
 
-#define GRP_MAIN_LY "main_ly"
+#define GRP_VIEW_MAIN_LY "view_main_ly"
 #define GRP_KEYPAD "keypad"
 #define GRP_MULTICALL "multicall-list"
 #define GRP_REJECT_MSG "reject_with_msg"
@@ -63,7 +63,7 @@
 #define GRP_ENDCALL_MAIN_LAYOUT "main_end_call"
 #define GRP_ENDCALL_CALL_BACK_BTN "call_back"
 #define GRP_ENDCALL_MSG_BTN "message_button"
-#define GRP_ENDCALL_CREATE_CONT_BTN "create_contact_button"
+#define GRP_ENDCALL_ADD_CONTACT_BTN "add_contact_button"
 
 #define        CALLUI_DISPLAY_NAME_LENGTH_MAX                  (255+1)                 /**< Voiecall Display Name Max Length  */
 #define        CALLUI_IMAGE_PATH_LENGTH_MAX                    (255+1)                 /**< Max File length for image */
index b9ce4ff..bc061be 100644 (file)
@@ -28,8 +28,8 @@
 #define PART_SWALLOW_CALLER_ID                         "swallow.caller_id"
 #define PART_TEXT_MAIN                                         "text.main"
 #define PART_TEXT_SUB                                          "text.sub"
-#define SIGNAL_SHOW_ARROW                                      "show,arrow"
-#define SIGNAL_HIDE_ARROW                                      "hide,arrow"
+#define SIGNAL_SHOW_ARROW                                      "show_manage_calls_btn"
+#define SIGNAL_HIDE_ARROW                                      "hide_manage_calls_btn"
 
 #define PART_TOP_FIRST_BTN                                     "top_first_button"
 #define PART_TOP_SECOND_BTN                                    "top_second_button"
index c541f32..1731bcb 100755 (executable)
 #ifndef _CALLUI_VIEW_LAYOUT_H_
 #define _CALLUI_VIEW_LAYOUT_H_
 
-#define COLOR_BG_ALPHA 0 0 0 0
+#define COLOR_BG_ALPHA                 0 0 0 0
+
+#define COLOR_WHITE                            255 255 255 255
+#define COLOR_WHITE_TRANSP             255 255 255 0
 
 #define VC_FONT_REGULAR                        "Tizen:style=Regular"
-#define VC_TEXT_CLASS_REGULAR  "tizen"
 
 /*
  * NBEAT-HD GUI Widget Dimensions
@@ -35,7 +37,7 @@
 #define MAIN_LAYOUT_W          MAIN_SCREEN_W
 #define MAIN_LAYOUT_H          MAIN_SCREEN_H
 
-#define NORMAL_HOLD_FONT_SIZE  36
+#define NORMAL_HOLD_FONT_SIZE          36
 
 #define CALLER_INFO_L_PAD                      0
 #define CALLER_INFO_WIDTH                      MAIN_SCREEN_W
 #define CALLER_INFO_HEIGHT                     (CALLER_INFO_HEIGHT_LAYOUT_H+INDICATOR_HEIGHT)
 #define CALLER_INFO_MAIN_WIDTH         656
 
-#define CALLER_INFO_STATUS_L_PAD       32
-#define CALLER_INFO_STATUS_T_PAD       (INDICATOR_HEIGHT+24)
-#define CALLER_INFO_STATUS_WIDTH       CALLER_INFO_MAIN_WIDTH
-#define CALLER_INFO_STATUS_HEIGHT      54
+#define CALL_STATUS_TXT_PAD_LEFT       32
+#define CALL_STATUS_TXT_PAD_TOP                (INDICATOR_HEIGHT+24)
+#define CALL_STATUS_TXT_WIDTH          CALLER_INFO_MAIN_WIDTH
+#define CALL_STATUS_TXT_HEIGHT         54
 
 #define CALL_STATUS_MAX_TEXT_WIDTH     CALLER_INFO_MAIN_WIDTH
 
-#define VC_CALLER_ID_LAYOUT_L_PAD      CALLER_INFO_STATUS_L_PAD
+#define VC_CALLER_ID_LAYOUT_L_PAD      CALL_STATUS_TXT_PAD_LEFT
 #define VC_CALLER_ID_LAYOUT_WIDTH      CALLER_INFO_MAIN_WIDTH
-#define VC_CALLER_ID_LAYOUT_T_PAD      (CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT+33)
+#define VC_CALLER_ID_LAYOUT_T_PAD      (CALL_STATUS_TXT_PAD_TOP+CALL_STATUS_TXT_HEIGHT+33)
 #define VC_CALLER_ID_LAYOUT_HEIGHT     348
 
-#define CALLER_INFO_NAME_L_PAD         CALLER_INFO_STATUS_L_PAD
+#define CALLER_INFO_NAME_L_PAD         CALL_STATUS_TXT_PAD_LEFT
 #define CALLER_INFO_NAME_WIDTH         CALLER_INFO_MAIN_WIDTH
 #define CALLER_INFO_NAME_T_PAD         (VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+42)
 #define CALLER_INFO_NAME_HEIGHT                86
 
 #define MULTI_LIST_HEIGHT MAIN_LAYOUT_H
 
-/* Bottom reject call button*/
-#define BOTTOM_BTN_BG_L_PAD            0
-#define BOTTOM_BTN_BG_WIDTH            MAIN_SCREEN_W
-#define BOTTOM_BTN_BG_T_PAD            (CALLER_INFO_HEIGHT+ACTION_BAR_LAYOUT_HEIGHT)
-#define BOTTOM_BTN_BG_HEIGHT   ENDCALL_BTN_BG_H
-
 /* Six buttons layout*/
 #define ACTION_BAR_LAYOUT_L_PAD        0
 #define ACTION_BAR_LAYOUT_WIDTH        MAIN_SCREEN_W
 #define CALLER_INFO_NUMBER_T   REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD)
 #define CALLER_INFO_NUMBER_B   REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD+CALLER_INFO_NUMBER_HEIGHT)
 
-#define CALLER_INFO_STATUS_L   REL_W(CALLER_INFO_STATUS_L_PAD)
-#define CALLER_INFO_STATUS_R   REL_W(CALLER_INFO_STATUS_WIDTH)
-#define CALLER_INFO_STATUS_T   REL_H(CALLER_INFO_STATUS_T_PAD)
-#define CALLER_INFO_STATUS_B   REL_H(CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)
+#define CALLER_INFO_STATUS_L   REL_W(CALL_STATUS_TXT_PAD_LEFT)
+#define CALLER_INFO_STATUS_R   REL_W(CALL_STATUS_TXT_WIDTH)
+#define CALLER_INFO_STATUS_T   REL_H(CALL_STATUS_TXT_PAD_TOP)
+#define CALLER_INFO_STATUS_B   REL_H(CALL_STATUS_TXT_PAD_TOP+CALL_STATUS_TXT_HEIGHT)
+
 /*
  * End of Caller info layout
  */
index f3b0317..fd88fe6 100644 (file)
@@ -20,6 +20,7 @@
 #include "../../inc/callui-view-caller-info-defines.h"
 
 #include "../../edje_src/edc/callui-color-classes.edc"
+#include "../../edje_src/edc/callui-parts.edc"
 #include "../../edje_src/edc/call_edc/edc_image_macro.edc"
 
 #define        IMG_SRC_DIR "call_edc"
@@ -88,13 +89,13 @@ collections {
        RESOURCE_IMAGE("call_button_icon_04.png", IMG_SRC_DIR/"call_button_icon_04.png");
        RESOURCE_IMAGE("call_inline_btn_close.png", IMG_SRC_DIR/"call_inline_btn_close.png");
 
+       #include "../../edje_src/edc/call_edc/callui_view_end_call.edc"
        #include "../../edje_src/edc/call_edc/callui-view-button-layout.edc"
-       #include "../../edje_src/edc/call_edc/callui-view-caller-info.edc"
        #include "../../edje_src/edc/call_edc/callui-view-incoming-lock.edc"
        #include "../../edje_src/edc/call_edc/callui-view-multi-call-list.edc"
        #include "../../edje_src/edc/call_edc/callui-keypad.edc"
+       #include "../../edje_src/edc/call_edc/callui-view-caller-info.edc"
        #include "../../edje_src/edc/call_edc/callui-view-main-layout.edc"
-       #include "../../edje_src/edc/call_edc/callui_view_end_call.edc"
        #include "../../edje_src/edc/call_edc/callui-view-lock-screen.edc"
        #include "../../edje_src/edc/call_edc/callui-view-quick-pannel.edc"
        #include "../../edje_src/edc/call_edc/callui_view_incoming_active.edc"
index 18d9937..830e769 100644 (file)
@@ -46,6 +46,7 @@ struct _callui_action_bar {
        Evas_Object *buttons[CALLUI_ACTION_BTN_COUNT];
        bool is_available[CALLUI_ACTION_BTN_COUNT];
        callui_app_data_t *ad;
+       bool is_disabled;
 };
 typedef struct _callui_action_bar _callui_action_bar_t;
 
@@ -419,6 +420,11 @@ static void __audio_state_changed_cb(void *user_data, callui_audio_state_type_e
 
        callui_action_bar_h action_bar = user_data;
 
+       if (action_bar->is_disabled) {
+               dbg("Ignored. Action bar is in disabled state.");
+               return;
+       }
+
        __update_speaker_btn(action_bar);
        __update_bluetooth_btn(action_bar);
 }
@@ -429,6 +435,11 @@ static void __mute_state_changed_cb(void *user_data, bool is_enable)
 
        callui_action_bar_h action_bar = user_data;
 
+       if (action_bar->is_disabled) {
+               dbg("Ignored. Action bar is in disabled state.");
+               return;
+       }
+
        __update_mute_btn(action_bar);
 }
 
@@ -477,6 +488,11 @@ static void __call_state_event_cb(void *user_data,
 
        callui_action_bar_h action_bar = user_data;
 
+       if (action_bar->is_disabled) {
+               dbg("Ignored. Action bar is in disabled state.");
+               return;
+       }
+
        __update_btns_state(action_bar);
 
        __update_all_btns(action_bar);
@@ -485,7 +501,9 @@ static void __call_state_event_cb(void *user_data,
 static callui_result_e __callui_action_bar_init(callui_action_bar_h action_bar,        callui_app_data_t *ad)
 {
        CALLUI_RETURN_VALUE_IF_FAIL(ad->sound_manager, CALLUI_RESULT_FAIL);
+
        action_bar->ad = ad;
+       action_bar->is_disabled = false;
        Evas_Object *parent = ad->main_ly;
 
        _callui_sdm_add_audio_state_changed_cb(ad->sound_manager, __audio_state_changed_cb, action_bar);
@@ -580,3 +598,30 @@ void _callui_action_bar_hide(callui_action_bar_h action_bar)
        elm_object_part_content_unset(parent, PART_SWALLOW_ACTION_BAR);
        evas_object_hide(action_bar->main_layout);
 }
+
+void _callui_action_bar_set_disabled_state(callui_action_bar_h action_bar, bool is_disabled)
+{
+       CALLUI_RETURN_IF_FAIL(action_bar);
+
+       if (action_bar->is_disabled == is_disabled) {
+               return;
+       }
+       action_bar->is_disabled = is_disabled;
+
+       if (is_disabled) {
+               int i = 0;
+               for (; i < CALLUI_ACTION_BTN_COUNT; i++) {
+                       action_bar->is_available[i] = !is_disabled;
+               }
+       } else {
+               __update_btns_state(action_bar);
+       }
+       __update_all_btns(action_bar);
+}
+
+bool _callui_action_bar_get_disabled_state(callui_action_bar_h action_bar)
+{
+       CALLUI_RETURN_VALUE_IF_FAIL(action_bar, false);
+
+       return action_bar->is_disabled;
+}
index 5d63d19..150102d 100755 (executable)
@@ -284,8 +284,8 @@ void _callui_common_reset_main_ly_text_fields(Evas_Object *contents)
 
        caller_info = elm_object_part_content_get(contents, "caller_info");
        if (caller_info) {
-               elm_object_part_text_set(caller_info, "txt_call_name", "");
-               elm_object_part_text_set(caller_info, "txt_phone_num", "");
+               elm_object_part_text_set(caller_info, "contact_name", "");
+               elm_object_part_text_set(caller_info, "phone_number", "");
        }
 }
 
index 61e09ba..126df68 100644 (file)
 #define ENDING_TIMER_INTERVAL 2.0
 #define BLINKING_TIMER_INTERVAL 0.5
 #define BLINKING_MAX_COUNT 5
+#define REPLY_BTNS_DIVIDER_WIDTH 2
+
+#define AO016 217, 217, 217, 255
 
 struct _callui_view_callend {
        call_view_data_base_t base_view;
 
+       Evas_Object *caller_info;
+
        Evas_Object *create_update_popup;
+       Evas_Object *reply_btns_box;
+       Ecore_Idler *min_anim_idler;
 
        char call_number[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX];
 
@@ -70,14 +77,22 @@ static void __delete_ending_timer(callui_view_callend_h vd);
 
 static callui_result_e __set_single_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data);
 
-static callui_result_e __create_call_back_btn(callui_view_callend_h vd);
-static callui_result_e __create_message_btn(callui_view_callend_h vd);
+static callui_result_e __create_reply_btns_panel(callui_view_callend_h vd);
+static Evas_Object *__create_call_back_btn(callui_view_callend_h vd);
+static Evas_Object *__create_message_btn(callui_view_callend_h vd);
+static Evas_Object *__create_reply_btns_divider(callui_view_callend_h vd);
+
 static callui_result_e __create_single_contact_info(callui_view_callend_h vd, const callui_call_data_t *call_data);
 
 static void __set_emergency_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data);
 static void __set_conference_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data);
 
-static void __bg_mouse_down_cb(void *data, Evas_Object *o, const char *emission, const char *source);
+static void __bg_mouse_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __minimize_anim_completed_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __maximize_anim_completed_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+static void __run_minimize_animation(callui_view_callend_h vd);
+static void __run_maximize_animation(callui_view_callend_h vd);
 
 static void __launch_contact_app(const char *operation, const char *call_number);
 
@@ -92,6 +107,19 @@ callui_view_callend_h _callui_view_callend_new()
        return callend_view;
 }
 
+static Eina_Bool __minimize_animation_idler_cb(void *data)
+{
+       CALLUI_RETURN_VALUE_IF_FAIL(data, ECORE_CALLBACK_CANCEL);
+
+       callui_view_callend_h vd = data;
+
+       vd->min_anim_idler = NULL;
+
+       __run_minimize_animation(vd);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
 static callui_result_e __callui_view_callend_oncreate(call_view_data_base_t *view_data, void *appdata)
 {
        CALLUI_RETURN_VALUE_IF_FAIL(view_data, CALLUI_RESULT_INVALID_PARAM);
@@ -107,10 +135,15 @@ static callui_result_e __callui_view_callend_oncreate(call_view_data_base_t *vie
        callui_result_e res = __create_main_content(vd);
        CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
-       return __update_displayed_data(vd);
+       res = __update_displayed_data(vd);
+       CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+       vd->min_anim_idler = ecore_idler_add(__minimize_animation_idler_cb, vd);
+
+       return res;
 }
 
-static void __bg_mouse_down_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+static void __bg_mouse_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
        CALLUI_RETURN_IF_FAIL(data);
 
@@ -127,6 +160,10 @@ static callui_result_e __callui_view_callend_ondestroy(call_view_data_base_t *vi
 
        free(vd->time_string);
 
+       if (vd->min_anim_idler) {
+               ecore_idler_del(vd->min_anim_idler);
+       }
+
        edje_object_signal_callback_del_full(_EDJ(vd->base_view.contents), "mouse,down,*", "background", __bg_mouse_down_cb, vd);
 
        DELETE_EVAS_OBJECT(vd->create_update_popup);
@@ -140,38 +177,59 @@ static callui_result_e __callui_view_callend_ondestroy(call_view_data_base_t *vi
 static callui_result_e __create_main_content(callui_view_callend_h vd)
 {
        callui_app_data_t *ad = vd->base_view.ad;
+       CALLUI_RETURN_VALUE_IF_FAIL(ad->main_ly, CALLUI_RESULT_FAIL);
 
-       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_ENDCALL_MAIN_LAYOUT);
+       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_VIEW_MAIN_LY);
        CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
        elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
 
-       edje_object_signal_callback_add(_EDJ(vd->base_view.contents), "mouse,down,*", "background", __bg_mouse_down_cb, vd);
+       elm_object_signal_callback_add(vd->base_view.contents,
+                       "mouse,down,*", "dim_bg", __bg_mouse_down_cb, vd);
+       elm_object_signal_callback_add(vd->base_view.contents,
+                       "minimize.anim.finished", "view_main_ly", __minimize_anim_completed_cb, vd);
+       elm_object_signal_callback_add(vd->base_view.contents,
+                       "maximize.anim.finished", "view_main_ly", __maximize_anim_completed_cb, vd);
+
+       vd->caller_info = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_CALLER_INFO);
+       CALLUI_RETURN_VALUE_IF_FAIL(vd->caller_info, CALLUI_RESULT_ALLOCATION_FAIL);
+       elm_object_part_content_set(vd->base_view.contents, "caller_info", vd->caller_info);
+
+       _callui_action_bar_show(ad->action_bar);
+       _callui_action_bar_set_disabled_state(ad->action_bar, true);
+
+       Evas_Object *end_call_btn = _callui_create_end_call_button(vd->base_view.contents, NULL, NULL);
+       CALLUI_RETURN_VALUE_IF_FAIL(end_call_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+       evas_object_freeze_events_set(end_call_btn, EINA_TRUE);
 
        return CALLUI_RESULT_OK;
 }
 
-static callui_result_e __create_call_back_btn(callui_view_callend_h vd)
+static Evas_Object *__create_call_back_btn(callui_view_callend_h vd)
 {
-       Evas_Object *button_call_back = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_CALL_BACK_BTN);
-       CALLUI_RETURN_VALUE_IF_FAIL(button_call_back, CALLUI_RESULT_ALLOCATION_FAIL);
+       Evas_Object *button_call_back = _callui_load_edj(vd->reply_btns_box, EDJ_NAME, GRP_ENDCALL_CALL_BACK_BTN);
+       CALLUI_RETURN_NULL_IF_FAIL(button_call_back);
        edje_object_signal_callback_add(_EDJ(button_call_back), "clicked", "edje", __call_back_btn_click_cb, vd);
-       elm_object_translatable_part_text_set(button_call_back,
-                       "end_btn_text", "IDS_CALL_BUTTON_CALL");
-       elm_object_part_content_set(vd->base_view.contents, "button_call_back", button_call_back);
+       elm_object_translatable_part_text_set(button_call_back, "text", "IDS_CALL_BUTTON_CALL");
 
-       return CALLUI_RESULT_OK;
+       evas_object_size_hint_weight_set(button_call_back, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(button_call_back, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(button_call_back);
+
+       return button_call_back;
 }
 
-static callui_result_e __create_message_btn(callui_view_callend_h vd)
+static Evas_Object *__create_message_btn(callui_view_callend_h vd)
 {
-       Evas_Object *button_message = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_MSG_BTN);
-       CALLUI_RETURN_VALUE_IF_FAIL(button_message,  CALLUI_RESULT_ALLOCATION_FAIL);
+       Evas_Object *button_message = _callui_load_edj(vd->reply_btns_box, EDJ_NAME, GRP_ENDCALL_MSG_BTN);
+       CALLUI_RETURN_NULL_IF_FAIL(button_message);
        edje_object_signal_callback_add(_EDJ(button_message), "clicked", "edje", __msg_btn_click_cb, vd);
-       elm_object_translatable_part_text_set(button_message,
-                       "end_btn_text", "IDS_COM_BODY_MESSAGE");
-       elm_object_part_content_set(vd->base_view.contents, "button_message_back", button_message);
+       elm_object_translatable_part_text_set(button_message, "text", "IDS_COM_BODY_MESSAGE");
 
-       return CALLUI_RESULT_OK;
+       evas_object_size_hint_weight_set(button_message, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(button_message, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(button_message);
+
+       return button_message;
 }
 
 static callui_result_e __create_single_contact_info(callui_view_callend_h vd, const callui_call_data_t *call_data)
@@ -179,21 +237,74 @@ static callui_result_e __create_single_contact_info(callui_view_callend_h vd, co
        const char *call_name = call_data->call_ct_info.call_disp_name;
 
        if (!(call_name && call_name[0] != '\0')) {
-               Evas_Object *button_create = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_CREATE_CONT_BTN);
-               CALLUI_RETURN_VALUE_IF_FAIL(button_create,  CALLUI_RESULT_ALLOCATION_FAIL);
-               evas_object_event_callback_add(button_create, EVAS_CALLBACK_MOUSE_UP, __add_contact_btn_click_cb, vd);
-               elm_object_part_content_set(vd->base_view.contents, "swallow.create_contact", button_create);
+               Evas_Object *add_contact_btn = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_ENDCALL_ADD_CONTACT_BTN);
+               CALLUI_RETURN_VALUE_IF_FAIL(add_contact_btn,  CALLUI_RESULT_ALLOCATION_FAIL);
+               evas_object_event_callback_add(add_contact_btn, EVAS_CALLBACK_MOUSE_UP, __add_contact_btn_click_cb, vd);
+
+               elm_object_part_content_set(vd->caller_info, "ec_add_contact_btn", add_contact_btn);
+               elm_object_signal_emit(vd->caller_info, "set_ec_add_cont_btn_enabled", "caller_info");
+
+               /* maximized contact info */
+               elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
+               elm_object_part_text_set(vd->caller_info, "contact_name", vd->call_number);
+
+               /* minimized contact info */
+               elm_object_part_text_set(vd->caller_info, "ec_contact_name", vd->call_number);
+               elm_object_translatable_part_text_set(vd->caller_info, "ec_phone_number", "IDS_COM_OPT_ADD_TO_CONTACTS");
 
-               elm_object_part_text_set(vd->base_view.contents, "contact_name", vd->call_number);
-               elm_object_translatable_part_text_set(vd->base_view.contents, "contact_number", "IDS_COM_OPT_ADD_TO_CONTACTS");
        } else {
-               elm_object_part_text_set(vd->base_view.contents, "contact_name", call_name);
-               elm_object_part_text_set(vd->base_view.contents, "contact_number", vd->call_number);
+               /* maximized contact info */
+               elm_object_signal_emit(vd->caller_info, "2line", "caller_name");
+               elm_object_part_text_set(vd->caller_info, "contact_name", call_name);
+               elm_object_part_text_set(vd->caller_info, "phone_number", vd->call_number);
+
+               /* minimized contact info */
+               elm_object_part_text_set(vd->caller_info, "ec_contact_name", call_name);
+               elm_object_part_text_set(vd->caller_info, "ec_phone_number", vd->call_number);
        }
 
        return CALLUI_RESULT_OK;
 }
 
+static Evas_Object *__create_reply_btns_divider(callui_view_callend_h vd)
+{
+       Evas_Object *divider = evas_object_rectangle_add(vd->reply_btns_box);
+       CALLUI_RETURN_NULL_IF_FAIL(divider);
+
+       evas_object_size_hint_fill_set(divider, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_color_set(divider, AO016);
+       evas_object_size_hint_min_set(divider, ELM_SCALE_SIZE(REPLY_BTNS_DIVIDER_WIDTH), 0);
+       evas_object_show(divider);
+
+       return divider;
+}
+
+static callui_result_e __create_reply_btns_panel(callui_view_callend_h vd)
+{
+       vd->reply_btns_box = elm_box_add(vd->base_view.contents);
+       CALLUI_RETURN_VALUE_IF_FAIL(vd->reply_btns_box, CALLUI_RESULT_ALLOCATION_FAIL);
+       elm_box_horizontal_set(vd->reply_btns_box, EINA_TRUE);
+
+       Evas_Object *call_back_btn = __create_call_back_btn(vd);
+       CALLUI_RETURN_VALUE_IF_FAIL(call_back_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+
+       Evas_Object *message_btn = __create_message_btn(vd);
+       CALLUI_RETURN_VALUE_IF_FAIL(message_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+
+       Evas_Object *divider = __create_reply_btns_divider(vd);
+       CALLUI_RETURN_VALUE_IF_FAIL(divider, CALLUI_RESULT_ALLOCATION_FAIL);
+
+       elm_box_pack_end(vd->reply_btns_box, call_back_btn);
+       elm_box_pack_end(vd->reply_btns_box, divider);
+       elm_box_pack_end(vd->reply_btns_box, message_btn);
+       evas_object_show(vd->reply_btns_box);
+
+       evas_object_freeze_events_set(vd->reply_btns_box, EINA_TRUE);
+       elm_object_part_content_set(vd->base_view.contents, "reply_btns", vd->reply_btns_box);
+
+       return CALLUI_RESULT_OK;
+}
+
 static callui_result_e __set_single_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data)
 {
        const char *file_path = call_data->call_ct_info.caller_id_path;
@@ -208,48 +319,59 @@ static callui_result_e __set_single_call_info(callui_view_callend_h vd, const ca
 
        if (strcmp(file_path, "default") != 0) {
                Evas_Object *layout = _callui_create_thumbnail(vd->base_view.contents, file_path, THUMBNAIL_138);
-               elm_object_part_content_set(vd->base_view.contents, "caller_id", layout);
-               elm_object_signal_emit(vd->base_view.contents, "hide_def_caller_id", "main_end_call");
+               elm_object_part_content_set(vd->caller_info, "contact_icon", layout);
+               elm_object_signal_emit(vd->caller_info, "hide_default_cid", "");
        } else {
-               elm_object_signal_emit(vd->base_view.contents, "show_def_caller_id", "main_end_call");
+               elm_object_signal_emit(vd->caller_info, "show_default_cid", "");
        }
 
        if (!(call_name && call_name[0] != '\0') && !(call_number && call_number[0] != '\0')) {
-               elm_object_translatable_part_text_set(vd->base_view.contents,
-                               "contact_name", "IDS_CALL_BODY_UNKNOWN");
+               elm_object_translatable_part_text_set(vd->caller_info, "contact_name", "IDS_CALL_BODY_UNKNOWN");
+               elm_object_translatable_part_text_set(vd->caller_info, "ec_contact_name", "IDS_CALL_BODY_UNKNOWN");
                return CALLUI_RESULT_OK;
        }
-
        strncpy(vd->call_number, call_number, sizeof(vd->call_number));
 
-       callui_result_e res = __create_call_back_btn(vd);
-       CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
-       res = __create_message_btn(vd);
+       callui_result_e res = __create_single_contact_info(vd, call_data);
        CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
-       res = __create_single_contact_info(vd, call_data);
+       res = __create_reply_btns_panel(vd);
        CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
+       elm_object_signal_emit(vd->base_view.contents, "show_reply_btns", "view_main_ly");
+
        return res;
 }
 
 static void __set_emergency_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data)
 {
-       elm_object_signal_emit(vd->base_view.contents, "set_emergency_mode", "main_end_call");
-       elm_object_translatable_part_text_set(vd->base_view.contents, "contact_name", "IDS_COM_BODY_EMERGENCY_NUMBER");
+       elm_object_signal_emit(vd->caller_info, "set_emergency_mode", "");
+
+       // maximized contact info
+       elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
+       elm_object_translatable_part_text_set(vd->caller_info, "contact_name", "IDS_COM_BODY_EMERGENCY_NUMBER");
+
+       // minimized contact info
+       elm_object_translatable_part_text_set(vd->caller_info, "ec_contact_name", "IDS_COM_BODY_EMERGENCY_NUMBER");
 }
 
 static void __set_conference_call_info(callui_view_callend_h vd, const callui_call_data_t *call_data)
 {
-       elm_object_signal_emit(vd->base_view.contents, "set_conference_mode", "main_end_call");
-       elm_object_translatable_part_text_set(vd->base_view.contents,
-                       "contact_name", "IDS_CALL_BODY_CONFERENCE");
+       elm_object_signal_emit(vd->caller_info, "set_conference_mode", "");
 
        char *status = _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB");
        char buf[CALLUI_BUF_MEMBER_SIZE] = { 0 };
        snprintf(buf, CALLUI_BUF_MEMBER_SIZE, status, call_data->conf_member_count);
-       elm_object_part_text_set(vd->base_view.contents, "contact_number", buf);
+
+       // maximized contact info
+       elm_object_signal_emit(vd->caller_info, "2line", "caller_name");
+       elm_object_translatable_part_text_set(vd->caller_info, "contact_name", "IDS_CALL_BODY_CONFERENCE");
+       elm_object_part_text_set(vd->caller_info, "phone_number", buf);
+
+       // minimized contact info
+       elm_object_translatable_part_text_set(vd->caller_info, "ec_contact_name", "IDS_CALL_BODY_CONFERENCE");
+       elm_object_part_text_set(vd->caller_info, "ec_phone_number", buf);
 }
 
 static callui_result_e __set_ended_call_duration_sting(callui_view_callend_h vd, callui_call_data_t *call_data)
@@ -265,6 +387,57 @@ static callui_result_e __set_ended_call_duration_sting(callui_view_callend_h vd,
        return CALLUI_RESULT_OK;
 }
 
+static void __minimize_anim_completed_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       callui_view_callend_h vd = data;
+
+       if (vd->reply_btns_box) {
+               evas_object_freeze_events_set(vd->reply_btns_box, EINA_FALSE);
+       }
+
+       callui_result_e res = __create_ending_timer(vd);
+       CALLUI_RETURN_IF_FAIL(res == CALLUI_RESULT_OK);
+}
+
+static void __maximize_anim_completed_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       callui_view_callend_h vd = data;
+
+       callui_result_e res = _callui_manager_dial_voice_call(vd->base_view.ad->call_manager, vd->call_number, CALLUI_SIM_SLOT_DEFAULT);
+       if (res != CALLUI_RESULT_OK) {
+               err("_callui_manager_dial_voice_call() failed. res[%d]", res);
+               _callui_common_exit_app();
+       }
+}
+
+static void __run_minimize_animation(callui_view_callend_h vd)
+{
+       callui_app_data_t *ad = vd->base_view.ad;
+
+       elm_object_signal_emit(vd->caller_info, "minimize", "caller_info");
+       elm_object_signal_emit(vd->base_view.contents, "minimize", "view_main_ly");
+       elm_object_signal_emit(ad->main_ly, "minimize", "app_main_ly");
+}
+
+static void __run_maximize_animation(callui_view_callend_h vd)
+{
+       callui_app_data_t *ad = vd->base_view.ad;
+
+       __delete_ending_timer(vd);
+       elm_object_part_text_set(vd->base_view.contents, "call_txt_status", "");
+
+       if (vd->reply_btns_box) {
+               evas_object_freeze_events_set(vd->reply_btns_box, EINA_TRUE);
+       }
+
+       _callui_action_bar_show(ad->action_bar);
+       _callui_action_bar_set_disabled_state(ad->action_bar, true);
+
+       elm_object_signal_emit(vd->caller_info, "maximize", "caller_info");
+       elm_object_signal_emit(vd->base_view.contents, "maximize", "view_main_ly");
+       elm_object_signal_emit(ad->main_ly, "maximize", "app_main_ly");
+}
+
 static callui_result_e __update_displayed_data(callui_view_callend_h vd)
 {
        callui_app_data_t *ad = vd->base_view.ad;
@@ -281,13 +454,9 @@ static callui_result_e __update_displayed_data(callui_view_callend_h vd)
                res = __set_single_call_info(vd, call_data);
                CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
        }
-
        res = __set_ended_call_duration_sting(vd, call_data);
        CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
-       res = __create_ending_timer(vd);
-       CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
-
        evas_object_show(vd->base_view.contents);
 
        evas_object_hide(ad->main_ly);
@@ -299,16 +468,8 @@ static callui_result_e __update_displayed_data(callui_view_callend_h vd)
 static void __call_back_btn_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
        CALLUI_RETURN_IF_FAIL(data);
-       callui_view_callend_h vd = (callui_view_callend_h)data;
-
-       edje_object_signal_callback_del_full(_EDJ(obj), "clicked", "edje", __call_back_btn_click_cb, vd);
-
-       __delete_ending_timer(vd);
 
-       callui_result_e res = _callui_manager_dial_voice_call(vd->base_view.ad->call_manager, vd->call_number, CALLUI_SIM_SLOT_DEFAULT);
-       if (res != CALLUI_RESULT_OK) {
-               err("_callui_manager_dial_voice_call() failed. res[%d]", res);
-       }
+       __run_maximize_animation(data);
 }
 
 static char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part)
@@ -427,6 +588,8 @@ static void __msg_btn_click_cb(void *data, Evas_Object *obj, const char *emissio
        edje_object_signal_callback_del_full(_EDJ(obj), "clicked", "edje", __msg_btn_click_cb, vd);
 
        _callui_common_launch_msg_composer(ad, vd->call_number);
+
+       _callui_common_exit_app();
 }
 
 static Eina_Bool __ending_timer_expired_cb(void *data)
index 93ca02e..5b9f7c3 100644 (file)
@@ -77,7 +77,7 @@ static callui_result_e __create_main_content(callui_view_dialing_h vd)
 {
        callui_app_data_t *ad = vd->base_view.ad;
 
-       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_VIEW_MAIN_LY);
        CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
        elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
 
@@ -166,7 +166,7 @@ static callui_result_e __update_displayed_data(callui_view_dialing_h vd)
        if (strlen(call_name) == 0) {
                _callui_show_caller_info_name(ad, disp_number);
                elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
-       } else if (now_call_data->is_emergency == EINA_TRUE) {
+       } else if (now_call_data->is_emergency) {
                _callui_show_caller_info_name(ad, call_name);
                elm_object_signal_emit(vd->caller_info, "1line", "caller_name");
        } else {
@@ -177,7 +177,7 @@ static callui_result_e __update_displayed_data(callui_view_dialing_h vd)
 
        _callui_show_caller_info_status(ad, "IDS_CALL_POP_DIALLING");
 
-       if (now_call_data->is_emergency == EINA_TRUE) {
+       if (now_call_data->is_emergency) {
                elm_object_signal_emit(vd->caller_info, "set_emergency_mode", "");
        } else {
                if (strcmp(file_path, "default") != 0) {
index 82554f7..e7390c4 100755 (executable)
@@ -114,7 +114,6 @@ static Evas_Object *__callui_get_caller_info_layout(void *data)
 Evas_Object *_callui_create_end_call_button(Evas_Object *parent, Evas_Smart_Cb cb_func, void *data)
 {
        CALLUI_RETURN_VALUE_IF_FAIL(parent != NULL, NULL);
-       CALLUI_RETURN_VALUE_IF_FAIL(cb_func != NULL, NULL);
 
        Evas_Object *btn = elm_object_part_content_get(parent, PART_END_BTN);
        if (!btn) {
@@ -126,7 +125,9 @@ Evas_Object *_callui_create_end_call_button(Evas_Object *parent, Evas_Smart_Cb c
                elm_object_part_content_set(btn, "elm.swallow.content", icon);
                elm_object_part_content_set(parent, PART_END_BTN, btn);
 
-               evas_object_smart_callback_add(btn, "clicked", cb_func, data);
+               if (cb_func) {
+                       evas_object_smart_callback_add(btn, "clicked", cb_func, data);
+               }
        }
        evas_object_show(btn);
 
@@ -170,14 +171,14 @@ Evas_Object *_callui_create_thumbnail_with_size(Evas_Object *parent, const char
 void _callui_show_caller_info_name(void *data, const char *name)
 {
        Evas_Object *layout = __callui_get_caller_info_layout(data);
-       elm_object_translatable_part_text_set(layout, "txt_call_name", name);
+       elm_object_translatable_part_text_set(layout, "contact_name", name);
 }
 
 /* Caller info number */
 void _callui_show_caller_info_number(void *data, const char *number)
 {
        Evas_Object *layout = __callui_get_caller_info_layout(data);
-       elm_object_part_text_set(layout, "txt_phone_num", number);
+       elm_object_part_text_set(layout, "phone_number", number);
 }
 
 /* Caller info status*/
@@ -195,7 +196,7 @@ Evas_Object *_callui_show_caller_id(Evas_Object *contents, const char *path)
        dbg("..");
        Evas_Object *layout = _callui_create_thumbnail(contents, path, THUMBNAIL_138);
 
-       elm_object_part_content_set(contents, "caller_id", layout);
+       elm_object_part_content_set(contents, "contact_icon", layout);
 
        /*Hide default caller-ID*/
        elm_object_signal_emit(contents, "hide_default_cid", "");
index 0c2bab7..989d1c1 100644 (file)
@@ -460,7 +460,7 @@ static callui_result_e __update_displayed_data(callui_view_incoming_call_noti_h
 
        if (strcmp(file_path, "default") != 0) {
                Evas_Object *layout = _callui_create_thumbnail(vd->base_view.contents, file_path, THUMBNAIL_98);
-               elm_object_part_content_set(vd->base_view.contents, "caller_id", layout);
+               elm_object_part_content_set(vd->base_view.contents, "contact_icon", layout);
                elm_object_signal_emit(vd->base_view.contents, "hide_def_caller_id", "main_active_noti_call");
        } else {
                elm_object_signal_emit(vd->base_view.contents, "show_def_caller_id", "main_active_noti_call");
index 4278f99..b3a74d8 100644 (file)
@@ -776,7 +776,7 @@ static callui_result_e __create_main_content(callui_view_incoming_call_h vd)
 {
        callui_app_data_t *ad = vd->base_view.ad;
 
-       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_VIEW_MAIN_LY);
        CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
        elm_object_part_content_set(ad->main_ly, "elm.swallow.content",  vd->base_view.contents);
 
index 12b7006..dc29e00 100644 (file)
@@ -183,10 +183,22 @@ static void __call_state_event_cb(void *user_data,
        CALLUI_RETURN_IF_FAIL(user_data);
 
        callui_vm_h vm = user_data;
+       callui_app_data_t *ad = vm->ad;
 
-       if (!(vm->cur_view_type == CALLUI_VIEW_ENDCALL && call_event_type == CALLUI_CALL_EVENT_END)) {
-               __auto_change_view(vm, event_info);
+       if (vm->cur_view_type == CALLUI_VIEW_ENDCALL) {
+               switch (call_event_type) {
+               case CALLUI_CALL_EVENT_END:
+                       dbg("Ignored. Already in end call view.");
+                       return;
+               case CALLUI_CALL_EVENT_INCOMING:
+                       elm_object_signal_emit(ad->main_ly, "maximize_no_anim", "app_main_ly");
+                       break;
+               default:
+                       break;
+               }
+               _callui_action_bar_set_disabled_state(ad->action_bar, false);
        }
+       __auto_change_view(vm, event_info);
 }
 
 static void __end_call_called_cb(void *user_data, unsigned int call_id, callui_call_release_type_e release_type)
index 15cf5f4..348a2ae 100755 (executable)
@@ -69,7 +69,7 @@ static callui_result_e __create_main_content(callui_view_mc_conf_h vd)
        callui_app_data_t *ad = vd->base_view.ad;
 
        /* Main Layout */
-       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_VIEW_MAIN_LY);
        CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
        elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);
 
@@ -84,7 +84,7 @@ static callui_result_e __create_main_content(callui_view_mc_conf_h vd)
        /* Manage button Layout */
        Evas_Object *manage_calls_ly = _callui_load_edj(vd->base_view.contents, EDJ_NAME, GRP_MANAGE_CALLS);
        CALLUI_RETURN_VALUE_IF_FAIL(manage_calls_ly, CALLUI_RESULT_ALLOCATION_FAIL);
-       elm_object_part_content_set(vd->caller_info, "manage_calls_icon_swallow", manage_calls_ly);
+       elm_object_part_content_set(vd->caller_info, "manage_calls_btn", manage_calls_ly);
        edje_object_signal_callback_add(_EDJ(manage_calls_ly), "mouse,clicked,1", "btn", __manage_calls_btn_clicked_cb, vd);
 
        _callui_action_bar_show(ad->action_bar);
@@ -190,11 +190,11 @@ static callui_result_e __update_displayed_data(callui_view_mc_conf_h vd)
        FREE(vd->base_view.call_duration_tm);
 
        if (is_held) {
-               elm_object_signal_emit(vd->caller_info, "hide,arrow", "");
+               elm_object_signal_emit(vd->caller_info, "hide_manage_calls_btn", "");
                _callui_show_caller_info_status(ad, "IDS_CALL_BODY_ON_HOLD_ABB");
 
        } else {
-               elm_object_signal_emit(vd->caller_info, "show,arrow", "");
+               elm_object_signal_emit(vd->caller_info, "show_manage_calls_btn", "");
 
                vd->base_view.call_duration_tm = _callui_stp_get_call_duration(ad->state_provider, CALLUI_CALL_DATA_ACTIVE);
                CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.call_duration_tm, CALLUI_RESULT_ALLOCATION_FAIL);
index 0e019bd..6272f69 100755 (executable)
@@ -333,14 +333,14 @@ static void __update_caller_info(Evas_Object *eo, const callui_call_data_t *call
        if (strlen(call_name) == 0) {
                if (strlen(call_number) == 0) {
                        elm_object_translatable_part_text_set(eo,
-                                       "txt_call_name", "IDS_CALL_BODY_UNKNOWN");
+                                       "contact_name", "IDS_CALL_BODY_UNKNOWN");
                } else {
-                       elm_object_part_text_set(eo, "txt_call_name", call_number);
+                       elm_object_part_text_set(eo, "contact_name", call_number);
                }
        } else {
                char *convert_text = evas_textblock_text_utf8_to_markup(NULL, call_name);
                if (convert_text) {
-                       elm_object_part_text_set(eo, "txt_call_name", convert_text);
+                       elm_object_part_text_set(eo, "contact_name", convert_text);
                        free(convert_text);
                        convert_text = NULL;
                } else {
@@ -678,7 +678,7 @@ static void __update_text_components(char *txt_status, int count, Evas_Object *e
        }
        if (count > 1) {
                elm_object_translatable_part_text_set(eo,
-                               "txt_call_name", "IDS_CALL_OPT_CONFERENCE_CALL");
+                               "contact_name", "IDS_CALL_OPT_CONFERENCE_CALL");
        }
 }
 
index 6d1f5b4..5ca78ee 100644 (file)
@@ -239,7 +239,7 @@ static callui_result_e __create_main_content(call_view_single_call_h vd)
        callui_app_data_t *ad = vd->base_view.ad;
        CALLUI_RETURN_VALUE_IF_FAIL(ad->main_ly, CALLUI_RESULT_FAIL);
 
-       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_MAIN_LY);
+       vd->base_view.contents = _callui_load_edj(ad->main_ly, EDJ_NAME, GRP_VIEW_MAIN_LY);
        CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
        elm_object_part_content_set(ad->main_ly, "elm.swallow.content", vd->base_view.contents);