Evas_Object *parent;
- Evas_Object *layout;
+ Evas_Object *main_ly;
+ Evas_Object *rm_btn;
Evas_Object *rm_scroller;
Evas_Object *rm_scroller_anchor;
Evas_Object *rm_scroller_stroke;
static void __disappear_transit_del_cb(void *data, Elm_Transit *transit);
static Eina_Bool __appear_effect_activated_cb(void *data);
static Eina_Bool __disappear_effect_activated_cb(void *data);
-static void __show_reject_msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
+static void __reject_msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
static void __layout_changed_hints_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void __call_action_btn_click_cb(void *data, Evas_Object *obj, void *event_info);
static Evas_Event_Flags __gesture_layer_flick_end_cb(void *data, void *event_info);
-static Evas_Object *__create_gesture_layer(callui_view_incoming_call_noti_h vd);
static void __contact_info_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
static callui_result_e __create_main_content(callui_view_incoming_call_noti_h vd, Evas_Object *parent);
-static Evas_Object *__create_btn(callui_view_incoming_call_noti_h vd,
+static callui_result_e __create_dim_rectangle(callui_view_incoming_call_noti_h vd, Evas_Object *parent);
+static callui_result_e __create_main_layout(callui_view_incoming_call_noti_h vd, Evas_Object *parent);
+static callui_result_e __create_answer_call_btn(callui_view_incoming_call_noti_h vd);
+static callui_result_e __create_reject_call_btn(callui_view_incoming_call_noti_h vd);
+static callui_result_e __create_reject_message_btn(callui_view_incoming_call_noti_h vd);
+static callui_result_e __create_gesture_layer(callui_view_incoming_call_noti_h vd);
+static Evas_Object *__create_action_btn(callui_view_incoming_call_noti_h vd,
const char *style, const char *icon_name, const char *txt, Evas_Smart_Cb click_cb, void *cb_data);
+
static callui_result_e __update_displayed_data(callui_view_incoming_call_noti_h vd);
static void __move_active_noti(callui_view_incoming_call_noti_h vd);
static void __parent_resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __update_caller_info_text(callui_view_incoming_call_noti_h vd, const callui_call_data_t *call_data);
static void __rm_create_content(callui_view_incoming_call_noti_h vd);
static void __rm_destroy_content(callui_view_incoming_call_noti_h vd);
static void __set_caller_info_phone_number(callui_view_incoming_call_noti_h vd, const char *call_number);
static void __set_caller_info_phone_number_and_name(callui_view_incoming_call_noti_h vd, const callui_call_data_t *call_data, const char *call_number);
-static void __register_def_accessibility_rout(callui_view_incoming_call_noti_h vd);
+static callui_result_e __create_accessible_objects(callui_view_incoming_call_noti_h vd);
-static Evas_Object *__create_btn(callui_view_incoming_call_noti_h vd,
+static Evas_Object *__create_action_btn(callui_view_incoming_call_noti_h vd,
const char *style,
const char *icon_name,
const char *txt,
DELETE_ECORE_IDLE_ENTERER(vd->transit_effect_idler);
DELETE_ELM_TRANSIT_HARD(vd->transit);
- DELETE_EVAS_OBJECT(vd->layout);
+ DELETE_EVAS_OBJECT(vd->main_ly);
DELETE_EVAS_OBJECT(vd->rm_scroller_stroke);
_callui_window_set_size_type(ad->window, CALLUI_WIN_SIZE_FULLSCREEN);
static void __reset_params_after_transit(callui_view_incoming_call_noti_h vd)
{
vd->transit = NULL;
- evas_object_freeze_events_set(vd->layout, EINA_FALSE);
+ evas_object_freeze_events_set(vd->main_ly, EINA_FALSE);
}
static void __appear_transit_del_cb(void *data, Elm_Transit *transit)
callui_view_incoming_call_noti_h vd = data;
int height = 0;
- evas_object_geometry_get(vd->layout, NULL, NULL, NULL, &height);
+ evas_object_geometry_get(vd->main_ly, NULL, NULL, NULL, &height);
DELETE_ELM_TRANSIT_HARD(vd->transit);
vd->transit = elm_transit_add();
return ECORE_CALLBACK_CANCEL;
}
elm_transit_del_cb_set(vd->transit, __appear_transit_del_cb, vd);
- elm_transit_object_add(vd->transit, vd->layout);
+ elm_transit_object_add(vd->transit, vd->main_ly);
elm_transit_effect_translation_add(vd->transit, 0, -height, 0, 0);
elm_transit_duration_set(vd->transit, CALLUI_MOVE_TRANSITION_TIME_SEC);
elm_transit_objects_final_state_keep_set(vd->transit, EINA_TRUE);
elm_transit_go(vd->transit);
vd->transit_effect_idler = NULL;
- evas_object_freeze_events_set(vd->layout, EINA_TRUE);
+ evas_object_freeze_events_set(vd->main_ly, EINA_TRUE);
return ECORE_CALLBACK_DONE;
}
int ypos = 0;
int width = 0;
int height = 0;
- evas_object_geometry_get(vd->layout, &xpos, &ypos, &width, &height);
+ evas_object_geometry_get(vd->main_ly, &xpos, &ypos, &width, &height);
int transit_y = -(height + ypos);
DELETE_ELM_TRANSIT_HARD(vd->transit);
return ECORE_CALLBACK_CANCEL;
}
elm_transit_del_cb_set(vd->transit, __disappear_transit_del_cb, vd);
- elm_transit_object_add(vd->transit, vd->layout);
+ elm_transit_object_add(vd->transit, vd->main_ly);
elm_transit_effect_translation_add(vd->transit, xpos, ypos, xpos, transit_y);
elm_transit_duration_set(vd->transit, CALLUI_MOVE_TRANSITION_TIME_SEC);
elm_transit_objects_final_state_keep_set(vd->transit, EINA_TRUE);
elm_transit_go(vd->transit);
vd->transit_effect_idler = NULL;
- evas_object_freeze_events_set(vd->layout, EINA_TRUE);
+ evas_object_freeze_events_set(vd->main_ly, EINA_TRUE);
return ECORE_CALLBACK_CANCEL;
}
vd->rm_actualize_state |= CALLUI_REJ_MSG_ANCHOR_MOVED;
}
-static void __show_reject_msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+static void __reject_msg_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
{
CALLUI_RETURN_IF_FAIL(data);
if (vd->rm_turned_on) {
dbg("Hide reject messages request");
+ elm_atspi_accessible_description_set(vd->rm_btn, "IDS_CALL_TBBODY_DOUBLE_TAP_TO_OPEN_REJECT_MESSAGE_LIST");
+
__rm_reset_anim_params(vd);
if (vd->rm_state == CALLUI_REJ_MSG_SHOW_IN_PROG ||
vd->rm_state == CALLUI_REJ_MSG_SHOW_REQ) {
} else {
dbg("Show reject messages request");
+ elm_atspi_accessible_description_set(vd->rm_btn, "IDS_CALL_TBBODY_DOUBLE_TAP_TO_CLOSE_REJECT_MESSAGE_LIST");
+
__rm_reset_anim_params(vd);
if (vd->rm_state == CALLUI_REJ_MSG_HIDE_IN_PROG ||
vd->rm_state == CALLUI_REJ_MSG_HIDE_REQ) {
Evas_Coord w = 0;
Evas_Coord h = 0;
- evas_object_size_hint_min_get(vd->layout, &w, &h);
+ evas_object_size_hint_min_get(vd->main_ly, &w, &h);
dbg("LY hint min size - w[%d] h[%d]", w, h);
if (w == 0 || h == 0) {
evas_object_size_hint_align_set(item_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_layout_signal_callback_add(item_ly, "cu,action,clicked", "active_noti_main", _rm_message_item_clicked_cb, SAFE_C_CAST(void *, i));
+ evas_object_data_set(item_ly, CALLUI_REJ_MSG_GENLIST_DATA, vd);
+
char *txt = _callui_common_get_reject_msg_by_index(i);
elm_object_part_text_set(item_ly, "callui.text.main", txt);
- free(txt);
- evas_object_data_set(item_ly, CALLUI_REJ_MSG_GENLIST_DATA, vd);
+ Evas_Object *ao = elm_access_object_register(item_ly, vd->main_ly);
+ if (ao) {
+ elm_atspi_accessible_reading_info_type_set(ao, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
+ elm_atspi_accessible_translation_domain_set(ao, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(ao, txt);
+ elm_atspi_accessible_description_set(ao, "IDS_CALL_BODY_DOUBLE_TAP_TO_SEND_MESSAGE_TTS");
+ } else {
+ err("Failed to register accessible object");
+ }
+ free(txt);
evas_object_show(item_ly);
elm_box_pack_end(box, item_ly);
-
- if (elm_access_object_register(item_ly, vd->layout)) {
- err("Failed to register accessible object");
- }
}
*insert_item_count = item_count;
return res;
static callui_result_e __rm_create_compose_item(callui_view_incoming_call_noti_h vd, Evas_Object *box)
{
- Evas_Object *item_ly = _callui_create_layout(vd->layout, CALLUI_LY_STYLE_REJ_MSG_ITEM_COMPOSE);
+ Evas_Object *item_ly = _callui_create_layout(vd->main_ly, CALLUI_LY_STYLE_REJ_MSG_ITEM_COMPOSE);
CALLUI_RETURN_VALUE_IF_FAIL(item_ly, CALLUI_RESULT_FAIL);
evas_object_size_hint_weight_set(item_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_translatable_part_text_set(item_ly, "callui.text.main", "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB");
- evas_object_show(item_ly);
- elm_box_pack_end(box, item_ly);
-
- if (elm_access_object_register(item_ly, vd->layout)) {
+ Evas_Object *ao = elm_access_object_register(item_ly, vd->main_ly);
+ if (ao) {
+ elm_atspi_accessible_reading_info_type_set(ao, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
+ elm_atspi_accessible_translation_domain_set(ao, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(ao, "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB");
+ elm_atspi_accessible_description_set(ao, "IDS_CALL_BODY_DOUBLE_TAP_TO_SEND_MESSAGE_TTS");
+ } else {
err("Failed to register accessible object");
}
+ evas_object_show(item_ly);
+ elm_box_pack_end(box, item_ly);
+
return CALLUI_RESULT_OK;
}
static void __rm_create_content(callui_view_incoming_call_noti_h vd)
{
/* Reject message list background gradient color layout */
- vd->rm_scroller_bg = _callui_create_layout(vd->layout, CALLUI_LY_STYLE_REJ_MSG_SCROLLER_BG);
+ vd->rm_scroller_bg = _callui_create_layout(vd->main_ly, CALLUI_LY_STYLE_REJ_MSG_SCROLLER_BG);
evas_object_event_callback_add(vd->rm_scroller_bg, EVAS_CALLBACK_RESIZE, __rm_scroller_bg_resize_cb, vd);
evas_object_event_callback_add(vd->rm_scroller_bg, EVAS_CALLBACK_MOVE, __rm_scroller_bg_move_cb, vd);
CALLUI_RETURN_IF_FAIL(vd->rm_scroller_bg);
evas_object_show(vd->rm_scroller_bg);
/* Reject message scroller */
- vd->rm_scroller = elm_scroller_add(vd->layout);
+ vd->rm_scroller = elm_scroller_add(vd->main_ly);
if (!vd->rm_scroller) {
err("rm_scroller is NULL");
return __rm_destroy_content(vd);
evas_object_show(vd->rm_scroller_stroke);
/* Reject message scroller/list background EDJE anchor */
- vd->rm_scroller_anchor = evas_object_rectangle_add(evas_object_evas_get(vd->layout));
+ vd->rm_scroller_anchor = evas_object_rectangle_add(evas_object_evas_get(vd->main_ly));
if (!vd->rm_scroller_anchor) {
return __rm_destroy_content(vd);
}
evas_object_event_callback_add(vd->rm_scroller_anchor, EVAS_CALLBACK_MOVE, __rm_scroller_anchor_move_cb, vd);
evas_object_color_set(vd->rm_scroller_anchor, 0, 0, 0, 0);
- elm_object_part_content_set(vd->layout, "swallow.reject_msg_gl_anchor", vd->rm_scroller_anchor);
+ elm_object_part_content_set(vd->main_ly, "swallow.reject_msg_gl_anchor", vd->rm_scroller_anchor);
vd->rm_scroller_max_h = ELM_SCALE_SIZE(ACTIVE_NOTI_RM_ITEM_HEIGHT) * rm_item_count;
vd->rm_actualize_state &= ~CALLUI_REJ_MSG_UPDATE_GL_HINT;
return EVAS_EVENT_FLAG_ON_HOLD;
}
-static Evas_Object *__create_gesture_layer(callui_view_incoming_call_noti_h vd)
+static callui_result_e __create_gesture_layer(callui_view_incoming_call_noti_h vd)
{
- Evas_Object *gesture_layer = elm_gesture_layer_add(vd->layout);
- CALLUI_RETURN_NULL_IF_FAIL(gesture_layer);
+ Evas_Object *gesture_layer = elm_gesture_layer_add(vd->main_ly);
+ CALLUI_RETURN_VALUE_IF_FAIL(gesture_layer, CALLUI_RESULT_ALLOCATION_FAIL);
- elm_gesture_layer_attach(gesture_layer, vd->layout);
+ elm_gesture_layer_attach(gesture_layer, vd->main_ly);
elm_gesture_layer_flick_time_limit_ms_set(gesture_layer, CALLUI_REJ_MSG_FLICK_TIME_LIMIT_MS);
elm_gesture_layer_cb_set(gesture_layer, ELM_GESTURE_N_LINES , ELM_GESTURE_STATE_END, __gesture_layer_flick_end_cb, vd);
evas_object_show(gesture_layer);
- return gesture_layer;
-}
-
-static void __contact_info_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
- CALLUI_RETURN_IF_FAIL(data);
-
- callui_view_incoming_call_noti_h vd = data;
-
- _callui_vm_change_view(vd->base_view.ad->view_manager, CALLUI_VIEW_INCOMING_CALL);
-}
-
-static void __register_def_accessibility_rout(callui_view_incoming_call_noti_h vd)
-{
- Evas_Object *ao = _callui_au_register_and_append_accessible_object(vd->layout, NULL, vd->layout, "contact_icon.access");
- CALLUI_RETURN_IF_FAIL(ao);
-
- ao = _callui_au_register_and_append_accessible_object(vd->layout, ao, vd->layout, "call_status.access");
- CALLUI_RETURN_IF_FAIL(ao);
-
- ao = _callui_au_register_and_append_accessible_object(vd->layout, ao, vd->layout, "contact_info.access");
- CALLUI_RETURN_IF_FAIL(ao);
+ return CALLUI_RESULT_OK;
}
static callui_result_e __create_main_content(callui_view_incoming_call_noti_h vd, Evas_Object *parent)
{
- vd->base_view.contents = evas_object_rectangle_add(evas_object_evas_get(parent));
- CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
- evas_object_size_hint_weight_set(vd->base_view.contents, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(vd->base_view.contents, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_color_set(vd->base_view.contents, CALLUI_REJ_MSG_DIMMER_COLOR, CALLUI_REJ_MSG_DIMMER_ALPHA_START);
- elm_object_part_content_set(parent, "elm.swallow.content", vd->base_view.contents);
- evas_object_show(vd->base_view.contents);
+ callui_result_e res = __create_dim_rectangle(vd, parent);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- vd->layout = elm_layout_add(parent);
- CALLUI_RETURN_VALUE_IF_FAIL(vd->layout, CALLUI_RESULT_ALLOCATION_FAIL);
- evas_object_event_callback_add(vd->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, __layout_changed_hints_cb, vd);
- elm_layout_theme_set(vd->layout, "layout", "callui", CALLUI_LY_STYLE_ACTIVE_NOTI_CALL_MAIN);
- evas_object_size_hint_weight_set(vd->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(vd->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_object_signal_callback_add(vd->layout, "contact_info.clicked", "active_noti_main", __contact_info_click_cb, vd);
- elm_object_part_content_set(parent, "elm.swallow.active_noti", vd->layout);
-
- Evas_Object *answer_btn = __create_btn(vd,
- CALLUI_BTN_STYLE_AN_ACCEPT_CALL,
- CALLUI_GROUP_AN_ACCEPT_CALL_ICON,
- NULL,
- __call_action_btn_click_cb,
- CALLUI_APP_CONTROL_OPERATION_DURING_CALL);
- CALLUI_RETURN_VALUE_IF_FAIL(answer_btn, CALLUI_RESULT_ALLOCATION_FAIL);
- elm_object_part_content_set(vd->layout, "swallow.call_accept_btn", answer_btn);
-
- Evas_Object *reject_btn = __create_btn(vd,
- CALLUI_BTN_STYLE_AN_REJECT_CALL,
- CALLUI_GROUP_AN_REJECT_CALL_ICON,
- NULL,
- __call_action_btn_click_cb,
- CALLUI_APP_CONTROL_OPERATION_END_CALL);
- CALLUI_RETURN_VALUE_IF_FAIL(reject_btn, CALLUI_RESULT_ALLOCATION_FAIL);
- elm_object_part_content_set(vd->layout, "swallow.call_reject_btn", reject_btn);
+ res = __create_main_layout(vd, parent);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- CALLUI_RETURN_VALUE_IF_FAIL(__create_gesture_layer(vd), CALLUI_RESULT_ALLOCATION_FAIL);
+ res = __create_answer_call_btn(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
+
+ res = __create_reject_call_btn(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
- elm_object_signal_emit(vd->layout, "start_swipe_anim", "active_noti_main");
+ res = __create_gesture_layer(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
vd->rm_state = CALLUI_REJ_MSG_HIDDEN;
vd->parent = parent;
evas_object_event_callback_add(vd->parent, EVAS_CALLBACK_RESIZE, __parent_resize_cb, vd);
- __register_def_accessibility_rout(vd);
+ elm_object_signal_emit(vd->main_ly, "start_swipe_anim", "active_noti_main");
- return CALLUI_RESULT_OK;
+ if (__create_accessible_objects(vd) != CALLUI_RESULT_OK) {
+ err("Register accessible objects failed");
+ }
+
+ return res;
}
-static Evas_Object *__create_btn(callui_view_incoming_call_noti_h vd,
+static Evas_Object *__create_action_btn(callui_view_incoming_call_noti_h vd,
const char *style,
const char *icon_name,
const char *txt,
Evas_Smart_Cb click_cb,
void *cb_data)
{
- Evas_Object *button = elm_button_add(vd->layout);
+ Evas_Object *button = elm_button_add(vd->main_ly);
CALLUI_RETURN_NULL_IF_FAIL(button);
elm_object_style_set(button, style);
evas_object_smart_callback_add(button, "clicked", click_cb, cb_data);
static void __set_caller_info_unknown_number(callui_view_incoming_call_noti_h vd)
{
- elm_object_signal_emit(vd->layout, "show_two_lines", "active_noti_main");
- elm_object_signal_emit(vd->layout, "hide_reject_msg_btn", "active_noti_main");
- elm_object_translatable_part_text_set(vd->layout, "text.contact_name", "IDS_CALL_BODY_UNKNOWN");
+ elm_object_signal_emit(vd->main_ly, "show_two_lines", "active_noti_main");
+ elm_object_signal_emit(vd->main_ly, "hide_reject_msg_btn", "active_noti_main");
+ elm_object_translatable_part_text_set(vd->main_ly, "text.contact_name", "IDS_CALL_BODY_UNKNOWN");
+
+ elm_atspi_accessible_name_set(vd->base_view.ao_caller_info, "IDS_CALL_BODY_UNKNOWN");
}
static void __set_caller_info_phone_number(callui_view_incoming_call_noti_h vd, const char *call_number)
{
- elm_object_signal_emit(vd->layout, "show_two_lines", "active_noti_main");
- elm_object_part_text_set(vd->layout, "text.contact_name", call_number);
+ elm_object_signal_emit(vd->main_ly, "show_two_lines", "active_noti_main");
+ elm_object_part_text_set(vd->main_ly, "text.contact_name", call_number);
+
+ elm_atspi_accessible_name_set(vd->base_view.ao_caller_info, call_number);
}
static void __set_caller_info_phone_number_and_name(callui_view_incoming_call_noti_h vd, const callui_call_data_t *call_data, const char *call_number)
{
const char *call_name = call_data->call_ct_info.call_disp_name;
- elm_object_signal_emit(vd->layout, "show_three_lines", "active_noti_main");
+ elm_object_signal_emit(vd->main_ly, "show_three_lines", "active_noti_main");
if (_callui_common_is_display_contact_name_support_rtl(call_data->call_ct_info.call_disp_name_type)) {
- elm_object_part_text_set(vd->layout, "text.contact_name", call_name);
+ elm_object_part_text_set(vd->main_ly, "text.contact_name", call_name);
} else {
char *enclosed_call_name = _callui_bidi_text_utils_enclose_text(call_name, CALLUI_BIDI_TEXT_ENCLOSE_LRM);
- elm_object_part_text_set(vd->layout, "text.contact_name", enclosed_call_name);
+ elm_object_part_text_set(vd->main_ly, "text.contact_name", enclosed_call_name);
free(enclosed_call_name);
}
- elm_object_part_text_set(vd->layout, "text.contact_number", call_number);
+ elm_object_part_text_set(vd->main_ly, "text.contact_number", call_number);
+
+ char buff[CALLUI_BUFF_SIZE_HUG] = { '\0' };
+ snprintf(buff, CALLUI_BUFF_SIZE_HUG, "%s, %s", call_name, call_number);
+ elm_atspi_accessible_name_set(vd->base_view.ao_caller_info, buff);
+}
+
+static void __update_caller_info_text(callui_view_incoming_call_noti_h vd, const callui_call_data_t *call_data)
+{
+ char *enclosed_call_number = _callui_bidi_text_utils_enclose_text(call_data->call_num, CALLUI_BIDI_TEXT_ENCLOSE_LRM);
+ if (STRING_EMPTY(call_data->call_num)) {
+ __set_caller_info_unknown_number(vd);
+ } else if (STRING_EMPTY(call_data->call_ct_info.call_disp_name)) {
+ __set_caller_info_phone_number(vd, enclosed_call_number);
+ } else {
+ __set_caller_info_phone_number_and_name(vd, call_data, enclosed_call_number);
+ }
+ free(enclosed_call_number);
+}
+
+static callui_result_e __create_dim_rectangle(callui_view_incoming_call_noti_h vd, Evas_Object *parent)
+{
+ vd->base_view.contents = evas_object_rectangle_add(evas_object_evas_get(parent));
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.contents, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_size_hint_weight_set(vd->base_view.contents, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(vd->base_view.contents, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_color_set(vd->base_view.contents, CALLUI_REJ_MSG_DIMMER_COLOR, CALLUI_REJ_MSG_DIMMER_ALPHA_START);
+ elm_object_part_content_set(parent, "elm.swallow.content", vd->base_view.contents);
+ evas_object_show(vd->base_view.contents);
+
+ return CALLUI_RESULT_OK;
+}
+
+static void __contact_info_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ CALLUI_RETURN_IF_FAIL(data);
+
+ callui_view_incoming_call_noti_h vd = data;
+ _callui_vm_change_view(vd->base_view.ad->view_manager, CALLUI_VIEW_INCOMING_CALL);
+}
+
+static callui_result_e __create_main_layout(callui_view_incoming_call_noti_h vd, Evas_Object *parent)
+{
+ vd->main_ly = elm_layout_add(parent);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->main_ly, CALLUI_RESULT_ALLOCATION_FAIL);
+ evas_object_event_callback_add(vd->main_ly, EVAS_CALLBACK_CHANGED_SIZE_HINTS, __layout_changed_hints_cb, vd);
+ elm_layout_theme_set(vd->main_ly, "layout", "callui", CALLUI_LY_STYLE_ACTIVE_NOTI_CALL_MAIN);
+ evas_object_size_hint_weight_set(vd->main_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(vd->main_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_signal_callback_add(vd->main_ly, "contact_info.clicked", "active_noti_main", __contact_info_click_cb, vd);
+
+ elm_object_part_content_set(parent, "elm.swallow.active_noti", vd->main_ly);
+
+ return CALLUI_RESULT_OK;
+}
+
+static callui_result_e __create_answer_call_btn(callui_view_incoming_call_noti_h vd)
+{
+ Evas_Object *answer_btn = __create_action_btn(vd, CALLUI_BTN_STYLE_AN_ACCEPT_CALL, CALLUI_GROUP_AN_ACCEPT_CALL_ICON,
+ NULL, __call_action_btn_click_cb, CALLUI_APP_CONTROL_OPERATION_DURING_CALL);
+ CALLUI_RETURN_VALUE_IF_FAIL(answer_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_atspi_accessible_translation_domain_set(answer_btn, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(answer_btn, "IDS_CALL_HEADER_ANSWER_CALL_ABB");
+
+ elm_object_part_content_set(vd->main_ly, "swallow.call_accept_btn", answer_btn);
+
+ return CALLUI_RESULT_OK;
+}
+
+static callui_result_e __create_reject_call_btn(callui_view_incoming_call_noti_h vd)
+{
+ Evas_Object *reject_btn = __create_action_btn(vd, CALLUI_BTN_STYLE_AN_REJECT_CALL, CALLUI_GROUP_AN_REJECT_CALL_ICON,
+ NULL, __call_action_btn_click_cb, CALLUI_APP_CONTROL_OPERATION_END_CALL);
+ CALLUI_RETURN_VALUE_IF_FAIL(reject_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_atspi_accessible_translation_domain_set(reject_btn, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(reject_btn, "IDS_CALL_BUTTON_REJECT");
+
+ elm_object_part_content_set(vd->main_ly, "swallow.call_reject_btn", reject_btn);
+
+ return CALLUI_RESULT_OK;
+}
+
+static callui_result_e __create_reject_message_btn(callui_view_incoming_call_noti_h vd)
+{
+ vd->rm_btn = __create_action_btn(vd, CALLUI_BTN_STYLE_AN_REJECT_CALL_WITH_MSG,
+ NULL, "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE", __reject_msg_btn_click_cb, vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->rm_btn, CALLUI_RESULT_ALLOCATION_FAIL);
+ elm_atspi_accessible_translation_domain_set(vd->rm_btn, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(vd->rm_btn, "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE");
+ elm_atspi_accessible_description_set(vd->rm_btn, "IDS_CALL_TBBODY_DOUBLE_TAP_TO_OPEN_REJECT_MESSAGE_LIST");
+
+ elm_object_part_content_set(vd->main_ly, "swallow.reject_msg_btn", vd->rm_btn);
+
+ return CALLUI_RESULT_OK;
}
static callui_result_e __update_displayed_data(callui_view_incoming_call_noti_h vd)
const callui_call_data_t *incom = _callui_stp_get_call_data(ad->state_provider, CALLUI_CALL_DATA_INCOMING);
CALLUI_RETURN_VALUE_IF_FAIL(incom, CALLUI_RESULT_FAIL);
- elm_object_translatable_part_text_set(vd->layout, "text.status", "IDS_CALL_BODY_INCOMING_CALL");
+ elm_object_translatable_part_text_set(vd->main_ly, "text.status", "IDS_CALL_BODY_INCOMING_CALL");
+ elm_atspi_accessible_name_set(vd->base_view.ao_call_status, "IDS_CALL_BODY_INCOMING_CALL");
- char *enclosed_call_number = _callui_bidi_text_utils_enclose_text(incom->call_num, CALLUI_BIDI_TEXT_ENCLOSE_LRM);
- if (STRING_EMPTY(incom->call_num)) {
- __set_caller_info_unknown_number(vd);
- } else if (STRING_EMPTY(incom->call_ct_info.call_disp_name)) {
- __set_caller_info_phone_number(vd, enclosed_call_number);
- } else {
- __set_caller_info_phone_number_and_name(vd, incom, enclosed_call_number);
- }
- free(enclosed_call_number);
+ __update_caller_info_text(vd, incom);
if (!STRING_EMPTY(incom->call_num)) {
- Evas_Object *reject_msg_btn = __create_btn(vd,
- CALLUI_BTN_STYLE_AN_REJECT_CALL_WITH_MSG,
- NULL,
- "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE",
- __show_reject_msg_btn_click_cb,
- vd);
- CALLUI_RETURN_VALUE_IF_FAIL(reject_msg_btn, CALLUI_RESULT_ALLOCATION_FAIL);
- elm_object_part_content_set(vd->layout, "swallow.reject_msg_btn", reject_msg_btn);
+ callui_result_e res = __create_reject_message_btn(vd);
+ CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
}
- _callui_caller_info_set_caller_image(vd->layout, incom);
+ _callui_caller_info_set_caller_image(vd->main_ly, incom);
- evas_object_show(vd->layout);
+ evas_object_show(vd->main_ly);
return CALLUI_RESULT_OK;
}
break;
default:
return;
- break;
}
dbg("Available RM scroller height - [%d]", vd->rm_scroller_available_h);
}
new_x = (ad->root_h - ad->root_w - ACTIVE_NOTI_LANDSCAPE_L_PAD);
}
}
- evas_object_move(vd->layout, new_x, 0);
+ evas_object_move(vd->main_ly, new_x, 0);
}
static void __parent_resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
vd->rm_actualize_state &= ~CALLUI_REJ_MSG_UPDATE_AVAILABLE_SIZE;
__rm_try_actualize(vd);
}
+
+/* Accessibility */
+
+static callui_result_e __create_accessible_objects(callui_view_incoming_call_noti_h vd)
+{
+ vd->base_view.ao_call_status = _callui_au_register_accessible_object(vd->main_ly, vd->main_ly, "call_status.access");
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.ao_call_status, CALLUI_RESULT_FAIL);
+ elm_atspi_accessible_translation_domain_set(vd->base_view.ao_call_status, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_reading_info_type_set(vd->base_view.ao_call_status, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+
+ vd->base_view.ao_caller_info = _callui_au_register_accessible_object(vd->main_ly, vd->main_ly, "contact_info.access");
+ CALLUI_RETURN_VALUE_IF_FAIL(vd->base_view.ao_caller_info, CALLUI_RESULT_FAIL);
+ elm_atspi_accessible_translation_domain_set(vd->base_view.ao_caller_info, CALLUI_TEXT_DOMAIN);
+ elm_atspi_accessible_reading_info_type_set(vd->base_view.ao_caller_info, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+
+ return CALLUI_RESULT_OK;
+}