From a2017f9e4db01e92093d45e27469f8f22e82e6d3 Mon Sep 17 00:00:00 2001 From: Igor Olshevskyi Date: Tue, 4 Oct 2016 18:07:38 +0300 Subject: [PATCH] TizenRefApp-7366 [Call UI] Implement incoming call scenario with quick panel and its minicontroller Change-Id: I9616e1b4801e4080668a4efb73a688d2a4d3e396 --- inc/callui-window.h | 10 ++++++++++ src/callui-view-incoming-call-noti.c | 4 ++++ src/callui-view-incoming-call.c | 1 + src/callui-view-quickpanel.c | 8 +------- src/callui-window.c | 32 ++++++++++++++++++++++++++++++-- 5 files changed, 46 insertions(+), 9 deletions(-) diff --git a/inc/callui-window.h b/inc/callui-window.h index 59e0e9d..047d667 100644 --- a/inc/callui-window.h +++ b/inc/callui-window.h @@ -213,6 +213,16 @@ callui_result_e _callui_window_set_above_lockscreen_state(callui_window_h window */ bool _callui_window_get_above_lockscreen_state(callui_window_h window_h); + +/** + * @brief Hides quick panel + * + * @param[in] window_h Window handle + * + * @return CALLUI_RESULT_OK on success or another result otherwise + */ +callui_result_e _callui_window_hide_quickpanel(callui_window_h window_h); + /** * @brief Sets the quick panel for application window disable/enable state * @remark By default quick panel is enable diff --git a/src/callui-view-incoming-call-noti.c b/src/callui-view-incoming-call-noti.c index 1e0fe08..32d8b1f 100644 --- a/src/callui-view-incoming-call-noti.c +++ b/src/callui-view-incoming-call-noti.c @@ -205,6 +205,7 @@ static callui_result_e __callui_view_incoming_call_noti_oncreate(call_view_data_ _callui_window_set_rotation_locked(ad->window, false); _callui_window_set_top_level_priority(ad->window, true); _callui_window_set_indicator_visible(ad->window, false); + _callui_window_hide_quickpanel(ad->window); if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_HOME, CALLUI_WIN_KEYGRAB_SHARED) != CALLUI_RESULT_OK) { dbg("KEY_SELECT key grab failed"); @@ -766,6 +767,9 @@ static Evas_Event_Flags __gesture_layer_flick_end_cb(void *data, void *event_inf if (((line_info->angle >= 340. && line_info->angle <= 360.) || (line_info->angle >= 0. && line_info->angle <= 20.)) && !vd->rm_turned_on) { + + _callui_manager_stop_alert(vd->base_view.ad->call_manager); + DELETE_ECORE_IDLE_ENTERER(vd->transit_effect_idler); vd->transit_effect_idler = ecore_idle_enterer_before_add(__disappear_effect_activated_cb, vd); } diff --git a/src/callui-view-incoming-call.c b/src/callui-view-incoming-call.c index 3c5c0fe..ff00ca0 100644 --- a/src/callui-view-incoming-call.c +++ b/src/callui-view-incoming-call.c @@ -129,6 +129,7 @@ static callui_result_e __callui_view_incoming_call_oncreate(call_view_data_base_ _callui_window_set_size_type(ad->window, CALLUI_WIN_SIZE_FULLSCREEN); _callui_window_set_rotation_locked(ad->window, true); + _callui_window_hide_quickpanel(ad->window); if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_HOME, CALLUI_WIN_KEYGRAB_TOPMOST) != CALLUI_RESULT_OK) { dbg("KEY_SELECT key grab failed"); diff --git a/src/callui-view-quickpanel.c b/src/callui-view-quickpanel.c index a453375..953b292 100755 --- a/src/callui-view-quickpanel.c +++ b/src/callui-view-quickpanel.c @@ -256,13 +256,7 @@ static void __caller_btn_click_cb(void *data, Evas_Object *obj, void *event_info CALLUI_RETURN_IF_FAIL(data); callui_qp_mc_h qp = data; - callui_app_data_t *ad = qp->ad; - - __hide_minicontrol(qp); - - _callui_window_activate(ad->window); - - _callui_common_process_accept_incoming_call(ad); + _callui_common_process_accept_incoming_call(qp->ad); } static void __main_layout_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) diff --git a/src/callui-window.c b/src/callui-window.c index b4c7ca0..73760ac 100644 --- a/src/callui-window.c +++ b/src/callui-window.c @@ -59,6 +59,7 @@ static void __eo_win_move_and_resize(callui_window_h window_h, bool force_resize static Elm_Win_Keygrab_Mode __convert_app_keygrab_mode(callui_win_keygrab_mode_e mode); static callui_result_e __create_tzsh_qp(callui_window_h window_h); static callui_result_e __set_above_lockscreen_state(callui_window_h window_h, bool above_lockscreen); +static callui_result_e __hide_quickpanel(callui_window_h window_h); static callui_result_e __create_tzsh_qp(callui_window_h window_h) { @@ -176,6 +177,8 @@ callui_result_e __callui_window_init(callui_window_h window_h, callui_app_data_t __eo_win_update_size(window_h, CALLUI_WIN_SIZE_ACTIVE_NOTI); + __hide_quickpanel(window_h); + return __eo_win_set_rotation_locked(window_h, true); } @@ -479,13 +482,38 @@ bool _callui_window_get_above_lockscreen_state(callui_window_h window_h) return res; } +static callui_result_e __hide_quickpanel(callui_window_h window_h) +{ + tzsh_quickpanel_state_visible_e visible_state = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN; + int res = tzsh_quickpanel_visible_get(window_h->tzsh_qp, &visible_state); + CALLUI_RETURN_VALUE_IF_FAIL(res == TZSH_ERROR_NONE, CALLUI_RESULT_FAIL); + + if (visible_state == TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN) { + res = tzsh_quickpanel_hide(window_h->tzsh_qp); + CALLUI_RETURN_VALUE_IF_FAIL(res == TZSH_ERROR_NONE, CALLUI_RESULT_FAIL); + } + return CALLUI_RESULT_OK; +} + +callui_result_e _callui_window_hide_quickpanel(callui_window_h window_h) +{ + CALLUI_RETURN_VALUE_IF_FAIL(window_h, CALLUI_RESULT_INVALID_PARAM); + + return __hide_quickpanel(window_h); +} + callui_result_e _callui_window_set_quickpanel_disable(callui_window_h window_h, bool is_disable) { CALLUI_RETURN_VALUE_IF_FAIL(window_h, CALLUI_RESULT_INVALID_PARAM); CALLUI_RETURN_VALUE_IF_FAIL(window_h->tzsh_qp, CALLUI_RESULT_INVALID_PARAM); - int res = tzsh_quickpanel_scrollable_set(window_h->tzsh_qp, !is_disable); - CALLUI_RETURN_VALUE_IF_FAIL(res == TZSH_ERROR_NONE, CALLUI_RESULT_FAIL); + if (is_disable) { + callui_result_e res = __hide_quickpanel(window_h); + CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res); + } + + int ret = tzsh_quickpanel_scrollable_set(window_h->tzsh_qp, !is_disable); + CALLUI_RETURN_VALUE_IF_FAIL(ret == TZSH_ERROR_NONE, CALLUI_RESULT_FAIL); return CALLUI_RESULT_OK; } -- 2.7.4