TizenRefApp-7361 [Call UI] Fix issue with reaction on Home button during incoming... 60/90660/1
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Mon, 3 Oct 2016 13:11:07 +0000 (16:11 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Mon, 3 Oct 2016 13:11:07 +0000 (16:11 +0300)
Change-Id: Iecec296ea1103f4fe4b023e21983edf7b64f3e1c

inc/callui-common-defines.h
src/callui-view-incoming-call-noti.c
src/callui-view-incoming-call.c
src/callui.c

index 4bd47e7..002a6a2 100644 (file)
@@ -36,6 +36,7 @@
 #define CALLUI_APP_CONTROL_OPERATION_QP_RESUME         "http://tizen.org/appcontrol/operation/qp_resume"
 #define CALLUI_APP_CONTROL_OPERATION_LS_RESUME         "http://tizen.org/appcontrol/operation/lockscreen_resume"
 
+#define CALLUI_KEY_HOME                "XF86Home"
 #define CALLUI_KEY_SELECT      "XF86Phone"
 #define CALLUI_KEY_POWER       "XF86PowerOff"
 
index 43e094b..1e0fe08 100644 (file)
@@ -206,7 +206,7 @@ static callui_result_e __callui_view_incoming_call_noti_oncreate(call_view_data_
        _callui_window_set_top_level_priority(ad->window, true);
        _callui_window_set_indicator_visible(ad->window, false);
 
-       if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_SELECT, CALLUI_WIN_KEYGRAB_TOPMOST) != CALLUI_RESULT_OK) {
+       if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_HOME, CALLUI_WIN_KEYGRAB_SHARED) != CALLUI_RESULT_OK) {
                dbg("KEY_SELECT key grab failed");
        }
 
@@ -242,7 +242,7 @@ static callui_result_e __callui_view_incoming_call_noti_ondestroy(call_view_data
        _callui_window_set_top_level_priority(ad->window, false);
        _callui_window_set_indicator_visible(ad->window, true);
 
-       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_SELECT);
+       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_HOME);
 
        free(vd);
 
index 72463b1..3c5c0fe 100644 (file)
@@ -130,10 +130,12 @@ 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);
 
-       if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_SELECT, CALLUI_WIN_KEYGRAB_TOPMOST) != CALLUI_RESULT_OK) {
+       if (_callui_window_set_keygrab_mode(ad->window, CALLUI_KEY_HOME, CALLUI_WIN_KEYGRAB_TOPMOST) != CALLUI_RESULT_OK) {
                dbg("KEY_SELECT key grab failed");
        }
 
+       _callui_window_set_quickpanel_disable(ad->window, true);
+
        callui_result_e res = __create_main_content(vd, parent);
        CALLUI_RETURN_VALUE_IF_FAIL(res == CALLUI_RESULT_OK, res);
 
@@ -165,7 +167,9 @@ static callui_result_e __callui_view_incoming_call_ondestroy(call_view_data_base
 
        DELETE_EVAS_OBJECT(vd->base_view.contents);
 
-       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_SELECT);
+       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_HOME);
+
+       _callui_window_set_quickpanel_disable(ad->window, false);
 
        free(vd);
 
index ba18bb6..e5a7fb5 100755 (executable)
@@ -30,7 +30,6 @@
 #include "callui-sound-manager.h"
 #include "callui-state-provider.h"
 
-#define CALLUI_KEY_HOME                        "XF86Home"
 #define CALLUI_KEY_BACK                        "XF86Back"
 #define CALLUI_KEY_MEDIA               "XF86AudioMedia"
 #define CALLUI_KEY_VOLUMEUP            "XF86AudioRaiseVolume"
@@ -118,7 +117,7 @@ static void __set_main_win_key_grab(callui_app_data_t *ad)
 
 static void __unset_main_win_key_grab(callui_app_data_t *ad)
 {
-       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_SELECT);
+       _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_HOME);
        _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_POWER);
        _callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_MEDIA);
 
@@ -750,7 +749,7 @@ static void __process_home_key_up(callui_app_data_t *ad)
 {
        debug_enter();
 
-       if (_callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_SELECT) != CALLUI_RESULT_OK) {
+       if (_callui_window_unset_keygrab_mode(ad->window, CALLUI_KEY_HOME) != CALLUI_RESULT_OK) {
                dbg("KEY_SELECT key ungrab failed");
        }
 
@@ -780,9 +779,13 @@ static void __process_home_key_up(callui_app_data_t *ad)
                                _callui_load_second_call_popup(ad);
                        }
                } else {
+                       callui_win_keygrab_mode_e keygrab_mode = CALLUI_WIN_KEYGRAB_TOPMOST;
+                       if (view_type == CALLUI_VIEW_INCOMING_CALL_NOTI) {
+                               keygrab_mode = CALLUI_WIN_KEYGRAB_SHARED;
+                       }
                        if (_callui_window_set_keygrab_mode(ad->window,
-                                       CALLUI_KEY_SELECT, CALLUI_WIN_KEYGRAB_TOPMOST) != CALLUI_RESULT_OK) {
-                               dbg("KEY_SELECT key grab failed");
+                                       CALLUI_KEY_HOME, keygrab_mode) != CALLUI_RESULT_OK) {
+                               dbg("KEY_HOME key grab failed");
                        }
                }
        } else if (view_type == CALLUI_VIEW_ENDCALL) {
@@ -828,12 +831,11 @@ static Eina_Bool __hard_key_up_cb(void *data, int type, void *event)
                __process_power_key_up(ad);
        } else if (!strcmp(ev->keyname, CALLUI_KEY_VOLUMEUP) || !strcmp(ev->keyname, CALLUI_KEY_VOLUMEDOWN)) {
                dbg("KEY_VOLUMEUP or KEY_VOLUMEDOWN");
-
                if (_callui_stp_get_call_data(ad->state_provider, CALLUI_CALL_DATA_INCOMING)) {
                        _callui_manager_stop_alert(ad->call_manager);
                }
-       } else if (!strcmp(ev->keyname, CALLUI_KEY_SELECT) || !strcmp(ev->keyname, CALLUI_KEY_HOME)) {
-               dbg("KEY_SELECT or KEY_HOME");
+       } else if (!strcmp(ev->keyname, CALLUI_KEY_HOME)) {
+               dbg("KEY_HOME");
                __process_home_key_up(ad);
        } else if (!strcmp(ev->keyname, CALLUI_KEY_BACK)) {
                if (_callui_vm_get_cur_view_type(ad->view_manager) == CALLUI_VIEW_ENDCALL) {
@@ -854,8 +856,11 @@ static Eina_Bool __hard_key_down_cb(void *data, int type, void *event)
        callui_app_data_t *ad = data;
        Ecore_Event_Key *ev = event;
 
-       /* power key case */
-       if (!strcmp(ev->keyname, CALLUI_KEY_POWER)) {
+       if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) {
+               dbg("KEY MEDIA");
+       } else if (!strcmp(ev->keyname, CALLUI_KEY_HOME)) {
+               dbg("KEY HOME");
+       } else if (!strcmp(ev->keyname, CALLUI_KEY_POWER)) {
                dbg("KEY_POWER");
                ad->powerkey_press_time = ecore_time_get();
        }