From 26d594e48f6df5883274045c695df4bab1864664 Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Thu, 8 Dec 2016 11:44:03 +0900 Subject: [PATCH 01/16] [TSAM-11180] Screen Reader Read wrong on Chooser page and Edit app on Folder Change-Id: I9ee2097fc2839cf58cfe3618bba60679fa72f78f --- src/apps_view.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/apps_view.c b/src/apps_view.c index 358a2bb..bb8d7bd 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -590,6 +590,7 @@ void apps_view_get_access_object_list(Eina_List **list) __apps_view_get_access_folder(list); return ; } + __apps_view_get_access_chooser_bar(list); __apps_view_get_access_page_app_icon(list); __apps_view_get_access_page_icon_delete_button(list); @@ -2137,19 +2138,21 @@ static void __apps_view_get_access_folder(Eina_List **list) static void __apps_view_get_access_folder_entry(Eina_List **list) { const char *folder_text = NULL; + char buf[STR_MAX] = { 0, }; if (!apps_view_s.opened_folder || !apps_view_s.folder_title_entry) - return ; + return; folder_text = elm_object_text_get(apps_view_s.folder_title_entry); access_info_t *info = (access_info_t *)malloc(sizeof(access_info_t)); - info->is_access_obj = EINA_TRUE; + info->is_access_obj = EINA_FALSE; info->target = apps_view_s.folder_title_entry; info->parent = apps_view_s.opened_folder->folder_layout; info->name = (folder_text) ? strdup(folder_text) : NULL; - info->description = strdup(_("IDS_ACCS_BODY_DOUBLE_TAP_TO_EDIT_T_TTS")); + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_ACCS_POP_TEXT_FIELD_TTS"), _("IDS_ACCS_BODY_DOUBLE_TAP_TO_EDIT_T_TTS")); + info->description = strdup(buf); info->role = ELM_ATSPI_ROLE_UNKNOWN; info->clicked_cb = NULL; info->cb_data = NULL; @@ -2174,7 +2177,7 @@ static void __apps_view_get_access_folder_icon(Eina_List **list) info->target = item->app_layout; info->parent = apps_view_s.opened_folder->folder_layout; info->name = (item->label_str) ? strdup(item->label_str) : NULL; - info->description = (apps_view_s.view_state == VIEW_STATE_EDIT) ? strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_OUTSIDE_TO_REMOVE_FROM_FOLDER")) : strdup(_("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); + info->description = (apps_view_s.view_state == VIEW_STATE_EDIT) ? strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_OUTSIDE_TO_REMOVE_FROM_FOLDER")) : strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); info->role = ELM_ATSPI_ROLE_UNKNOWN; if (apps_view_s.view_state == VIEW_STATE_CHOOSER) info->clicked_cb = __apps_view_icon_check_changed_cb; @@ -2196,7 +2199,7 @@ static void __apps_view_get_access_folder_icon(Eina_List **list) info->target = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(apps_view_s.folder_popup_ly), APPS_FOLDER_PLUS_ICON); info->parent = apps_view_s.win; info->name = strdup(_("IDS_HS_TBOPT_ADD_APPS_TO_FOLDER")); - info->description = NULL; + info->description = strdup(_("IDS_ACCS_BODY_BUTTON_TTS")); info->role = ELM_ATSPI_ROLE_UNKNOWN; info->clicked_cb = __apps_view_plus_icon_clicked; info->cb_data = apps_view_s.opened_folder; @@ -2222,7 +2225,7 @@ static void __apps_view_get_access_folder_icon_delete_button(Eina_List **list) info->target = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(item->app_layout), APPS_ICON_UNINSTALL_BUTTON); info->parent = item->app_layout; info->name = strdup(_("IDS_HS_BUTTON_UNINSTALL_ABB3")); - info->description = NULL; + info->description = strdup(_("IDS_ACCS_BODY_BUTTON_TTS")); info->role = ELM_ATSPI_ROLE_UNKNOWN; info->clicked_cb = __apps_view_icon_uninstall_btn_clicked_cb; info->cb_data = item; -- 2.7.4 From 659da28b59ba770732f39af1eb6f553c0db5011b Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Thu, 8 Dec 2016 11:54:18 +0900 Subject: [PATCH 02/16] [TSAM-11165] Screen Reader Read wrong when tap to app on App screen Change-Id: Ida14317ce311fe0024606e3463bccc66c2efce8d --- src/homescreen-efl.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/homescreen-efl.c b/src/homescreen-efl.c index a29f315..419e0e2 100755 --- a/src/homescreen-efl.c +++ b/src/homescreen-efl.c @@ -532,6 +532,7 @@ void homescreen_efl_get_access_menu_btn(Eina_List **list) { Evas_Object *menu_btn = NULL; access_info_t *btn_info = NULL; + char buf[STR_MAX] = { 0, }; menu_btn = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(main_info.btn_layout), MENU_BUTTON); btn_info = (access_info_t *)malloc(sizeof(access_info_t)); @@ -539,7 +540,8 @@ void homescreen_efl_get_access_menu_btn(Eina_List **list) btn_info->target = menu_btn; btn_info->parent = main_info.btn_layout; btn_info->name = strdup(_("IDS_HS_BODY_MENU")); - btn_info->description = strdup(_("IDS_ST_BODY_DOUBLE_TAP_TO_OPEN_THE_MENU_T_TTS")); + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_ACCS_BODY_BUTTON_TTS"), _("IDS_ST_BODY_DOUBLE_TAP_TO_OPEN_THE_MENU_T_TTS")); + btn_info->description = strdup(buf); btn_info->role = ELM_ATSPI_ROLE_UNKNOWN; btn_info->clicked_cb = __homescreen_efl_menu_btn_clicked; btn_info->cb_data = NULL; @@ -552,6 +554,7 @@ void homescreen_efl_get_access_apps_btn(Eina_List **list) { Evas_Object *apps_btn = NULL; access_info_t *btn_info = NULL; + char buf[STR_MAX] = { 0, }; apps_btn = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(main_info.btn_layout), HOME_BUTTON); btn_info = (access_info_t *)malloc(sizeof(access_info_t)); @@ -559,7 +562,8 @@ void homescreen_efl_get_access_apps_btn(Eina_List **list) btn_info->target = apps_btn; btn_info->parent = main_info.btn_layout; btn_info->name = strdup(_("IDS_AT_TAB4_ALL_APPS")); - btn_info->description = strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_GO_TO_APPS_SCREEN")); + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_ACCS_BODY_BUTTON_TTS"), _("IDS_HS_TBBODY_DOUBLE_TAP_TO_GO_TO_APPS_SCREEN")); + btn_info->description = strdup(buf); btn_info->role = ELM_ATSPI_ROLE_UNKNOWN; btn_info->clicked_cb = __homescreen_efl_home_btn_clicked; btn_info->cb_data = NULL; @@ -572,6 +576,7 @@ void homescreen_efl_get_access_home_btn(Eina_List **list) { Evas_Object *home_btn = NULL; access_info_t *btn_info = NULL; + char buf[STR_MAX] = { 0, }; home_btn = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(main_info.btn_layout), HOME_BUTTON); btn_info = (access_info_t *)malloc(sizeof(access_info_t)); @@ -579,7 +584,8 @@ void homescreen_efl_get_access_home_btn(Eina_List **list) btn_info->target = home_btn; btn_info->parent = main_info.btn_layout; btn_info->name = strdup(_("IDS_HS_TBOPT_HOME_M_HOMESCREEN")); - btn_info->description = strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_GO_TO_HOME_SCREEN")); + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_ACCS_BODY_BUTTON_TTS"), _("IDS_HS_TBBODY_DOUBLE_TAP_TO_GO_TO_HOME_SCREEN")); + btn_info->description = strdup(buf); btn_info->role = ELM_ATSPI_ROLE_UNKNOWN; btn_info->clicked_cb = __homescreen_efl_home_btn_clicked; btn_info->cb_data = NULL; -- 2.7.4 From e5258424ed17ed04d4d0beb029bc12a46efbbf58 Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Thu, 8 Dec 2016 12:57:28 +0900 Subject: [PATCH 03/16] [TSAM-11177] Screen Reader Read wrong on Chooser page and Wallpers screen Change-Id: Ifeed7784238761b534eb2ef8cc0285294d953397 --- src/apps_view.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/apps_view.c b/src/apps_view.c index bb8d7bd..ced9990 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -2021,6 +2021,7 @@ static void __apps_view_folder_entry_maxlength_reached_cb(void *data, Evas_Objec { toast_unfocused_show(_("IDS_AT_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED")); } + static void __apps_view_get_access_chooser_bar(Eina_List **list) { if (apps_view_s.view_state == VIEW_STATE_CHOOSER) { @@ -2029,7 +2030,7 @@ static void __apps_view_get_access_chooser_bar(Eina_List **list) title->target = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(apps_view_s.chooser_btn), APPS_CHOOSER_MIDDLE_LABEL); title->parent = apps_view_s.chooser_btn; title->name = strdup(edje_object_part_text_get(elm_layout_edje_get(apps_view_s.chooser_btn), APPS_CHOOSER_MIDDLE_LABEL)); - title->description = NULL; + title->description = strdup(_("IDS_LCKSCN_TBOPT_TITLE")); title->role = ELM_ATSPI_ROLE_UNKNOWN; title->clicked_cb = NULL; title->cb_data = NULL; @@ -2041,7 +2042,7 @@ static void __apps_view_get_access_chooser_bar(Eina_List **list) cancel_btn->target = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(apps_view_s.chooser_btn), "chooser_left_clickable_space"); cancel_btn->parent = apps_view_s.chooser_btn; cancel_btn->name = strdup(_("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")); - cancel_btn->description = NULL; + cancel_btn->description = strdup(_("IDS_ACCS_BODY_BUTTON_TTS")); cancel_btn->role = ELM_ATSPI_ROLE_UNKNOWN; cancel_btn->clicked_cb = __apps_view_chooser_left_btn_clicked; cancel_btn->cb_data = NULL; @@ -2053,7 +2054,7 @@ static void __apps_view_get_access_chooser_bar(Eina_List **list) done_btn->target = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(apps_view_s.chooser_btn), "chooser_right_clickable_space"); done_btn->parent = apps_view_s.chooser_btn; done_btn->name = strdup(_("IDS_TPLATFORM_ACBUTTON_DONE_ABB")); - done_btn->description = NULL; + done_btn->description = strdup(_("IDS_ACCS_BODY_BUTTON_TTS")); done_btn->role = ELM_ATSPI_ROLE_UNKNOWN; done_btn->clicked_cb = __apps_view_chooser_right_btn_clicked; done_btn->cb_data = NULL; @@ -2078,18 +2079,20 @@ static void __apps_view_get_access_page_app_icon(Eina_List **list) info->target = item->app_layout; info->parent = item->app_layout; info->name = (item->label_str) ? strdup(item->label_str) : NULL; - if (item->is_folder) { - snprintf(buf, sizeof(buf), "%s, %s", _("IDS_HS_HEADER_FOLDER"), _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); - } else { - snprintf(buf, sizeof(buf), "%s, %s", _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN"), _("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); - } - info->description = strdup(buf); - info->role = ELM_ATSPI_ROLE_UNKNOWN; if (apps_view_s.view_state == VIEW_STATE_CHOOSER) { + info->description = (item->is_folder) ? strdup(_("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")) : strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); info->clicked_cb = __apps_view_icon_check_changed_cb; - } else{ + } else { + if (item->is_folder) { + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_HS_HEADER_FOLDER"), _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); + } else { + snprintf(buf, sizeof(buf), "%s, %s", _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN"), _("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); + } + info->description = strdup(buf); info->clicked_cb = __apps_view_icon_clicked_cb; } + + info->role = ELM_ATSPI_ROLE_UNKNOWN; info->cb_data = item; info->priority = (item->position + 1) * ACCESS_PRIORITY_APP_ICON; -- 2.7.4 From cd3f87551a2cfac2db2eafaed90ce87ec1fc8d74 Mon Sep 17 00:00:00 2001 From: YoungHun Cho Date: Thu, 8 Dec 2016 14:35:11 +0900 Subject: [PATCH 04/16] prevent scroller loop for single page Change-Id: I58a10ade01124164c42796b9a7afd6e4e11a8121 Signed-off-by: YoungHun Cho --- .rds_delta | 2 +- src/apps_view.c | 7 ++++++- src/cluster_view.c | 6 +++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.rds_delta b/.rds_delta index 6201ce4..a8acc85 100644 --- a/.rds_delta +++ b/.rds_delta @@ -3,4 +3,4 @@ #modify author-signature.xml signature1.xml -res/edje/add_widget_viewer.edj +bin/homescreen-efl diff --git a/src/apps_view.c b/src/apps_view.c index edb5769..6282c0f 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -635,7 +635,7 @@ static void __apps_view_create_base_gui(Evas_Object *win) return; } elm_scroller_content_min_limit(apps_view_s.scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_bounce_set(apps_view_s.scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_bounce_set(apps_view_s.scroller, EINA_FALSE, EINA_FALSE); elm_scroller_policy_set(apps_view_s.scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_scroller_page_scroll_limit_set(apps_view_s.scroller, 1, 1); evas_object_size_hint_weight_set(apps_view_s.scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -711,6 +711,9 @@ static Evas_Object *__apps_view_add_page(void) apps_view_s.page_list = eina_list_append(apps_view_s.page_list, page_ly); apps_view_s.page_count += 1; page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count); + + elm_scroller_loop_set(apps_view_s.scroller, apps_view_s.page_count > 1, EINA_FALSE); + return page_ly; } @@ -741,6 +744,8 @@ static void __apps_view_remove_page(void) page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count); #endif evas_object_del(item); + + elm_scroller_loop_set(apps_view_s.scroller, apps_view_s.page_count > 1, EINA_FALSE); } static void __apps_view_fill_apps(void *data, Ecore_Thread *th) diff --git a/src/cluster_view.c b/src/cluster_view.c index fc1e322..4a7b052 100755 --- a/src/cluster_view.c +++ b/src/cluster_view.c @@ -225,7 +225,7 @@ Evas_Object *__cluster_view_create_base_gui(Evas_Object *win) return NULL; } elm_scroller_content_min_limit(cluster_view_s.scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_bounce_set(cluster_view_s.scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_bounce_set(cluster_view_s.scroller, EINA_FALSE, EINA_FALSE); elm_scroller_policy_set(cluster_view_s.scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_scroller_page_scroll_limit_set(cluster_view_s.scroller, 1, 0); evas_object_size_hint_weight_set(cluster_view_s.scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -931,6 +931,8 @@ static cluster_page_t *__cluster_view_page_new(void) page_indicator_set_page_count(cluster_view_s.indicator, cluster_view_s.page_count); + elm_scroller_loop_set(cluster_view_s.scroller, cluster_view_s.page_count > 1, EINA_FALSE); + return page_t; } @@ -952,6 +954,8 @@ static void __cluster_view_page_delete(cluster_page_t *page) cluster_data_set_page_count(cluster_view_s.page_count); page_indicator_set_page_count(cluster_view_s.indicator, cluster_view_s.page_count); + + elm_scroller_loop_set(cluster_view_s.scroller, cluster_view_s.page_count > 1, EINA_FALSE); } static void __cluster_view_allpage_delete_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) -- 2.7.4 From db843222f2e7ab7999750a51a252849907966332 Mon Sep 17 00:00:00 2001 From: YoungHun Cho Date: Thu, 8 Dec 2016 14:35:11 +0900 Subject: [PATCH 05/16] prevent scroller loop for single page Change-Id: I58a10ade01124164c42796b9a7afd6e4e11a8121 Signed-off-by: YoungHun Cho --- .rds_delta | 2 +- src/apps_view.c | 7 ++++++- src/cluster_view.c | 6 +++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.rds_delta b/.rds_delta index 6201ce4..a8acc85 100644 --- a/.rds_delta +++ b/.rds_delta @@ -3,4 +3,4 @@ #modify author-signature.xml signature1.xml -res/edje/add_widget_viewer.edj +bin/homescreen-efl diff --git a/src/apps_view.c b/src/apps_view.c index edb5769..6282c0f 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -635,7 +635,7 @@ static void __apps_view_create_base_gui(Evas_Object *win) return; } elm_scroller_content_min_limit(apps_view_s.scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_bounce_set(apps_view_s.scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_bounce_set(apps_view_s.scroller, EINA_FALSE, EINA_FALSE); elm_scroller_policy_set(apps_view_s.scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_scroller_page_scroll_limit_set(apps_view_s.scroller, 1, 1); evas_object_size_hint_weight_set(apps_view_s.scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -711,6 +711,9 @@ static Evas_Object *__apps_view_add_page(void) apps_view_s.page_list = eina_list_append(apps_view_s.page_list, page_ly); apps_view_s.page_count += 1; page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count); + + elm_scroller_loop_set(apps_view_s.scroller, apps_view_s.page_count > 1, EINA_FALSE); + return page_ly; } @@ -741,6 +744,8 @@ static void __apps_view_remove_page(void) page_indicator_set_page_count(apps_view_s.indicator, apps_view_s.page_count); #endif evas_object_del(item); + + elm_scroller_loop_set(apps_view_s.scroller, apps_view_s.page_count > 1, EINA_FALSE); } static void __apps_view_fill_apps(void *data, Ecore_Thread *th) diff --git a/src/cluster_view.c b/src/cluster_view.c index fc1e322..4a7b052 100755 --- a/src/cluster_view.c +++ b/src/cluster_view.c @@ -225,7 +225,7 @@ Evas_Object *__cluster_view_create_base_gui(Evas_Object *win) return NULL; } elm_scroller_content_min_limit(cluster_view_s.scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_bounce_set(cluster_view_s.scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_bounce_set(cluster_view_s.scroller, EINA_FALSE, EINA_FALSE); elm_scroller_policy_set(cluster_view_s.scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_scroller_page_scroll_limit_set(cluster_view_s.scroller, 1, 0); evas_object_size_hint_weight_set(cluster_view_s.scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -931,6 +931,8 @@ static cluster_page_t *__cluster_view_page_new(void) page_indicator_set_page_count(cluster_view_s.indicator, cluster_view_s.page_count); + elm_scroller_loop_set(cluster_view_s.scroller, cluster_view_s.page_count > 1, EINA_FALSE); + return page_t; } @@ -952,6 +954,8 @@ static void __cluster_view_page_delete(cluster_page_t *page) cluster_data_set_page_count(cluster_view_s.page_count); page_indicator_set_page_count(cluster_view_s.indicator, cluster_view_s.page_count); + + elm_scroller_loop_set(cluster_view_s.scroller, cluster_view_s.page_count > 1, EINA_FALSE); } static void __cluster_view_allpage_delete_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) -- 2.7.4 From 1b1f4428e7c097cac4e4840ea161411e90dc108c Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Fri, 9 Dec 2016 14:48:40 +0900 Subject: [PATCH 06/16] [TSAM-10811] FC occur after clear all and tap on on music app Change-Id: Ida5d909ff6e883aec2d314c5074e96d59633921e --- src/apps_view.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps_view.c b/src/apps_view.c index da0f23b..1565fe3 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -827,12 +827,12 @@ static void __apps_view_icon_clicked_cb(void *data, Evas_Object *obj, const char app_context_h context = NULL; if (app_manager_get_app_context(item->app_id, &context) == APP_MANAGER_ERROR_NONE && app_manager_resume_app(context) == APP_MANAGER_ERROR_NONE) { - if (context) app_context_destroy(context); + app_context_destroy(context); goto __ret; } LOGE("[FAILED][app_manager_resume_app]"); - app_context_destroy(context); + if (context) app_context_destroy(context); } } -- 2.7.4 From 3183281d4f082b3234b9d8ec9f610d3c811da418 Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Fri, 9 Dec 2016 17:40:53 +0900 Subject: [PATCH 07/16] [TSAM-11164][TSAM-11167] Screen reader read wrong when tap to widget Change-Id: I145e04e190d8bffd7f3fe270269314f7f890ee5b --- inc/cluster_data.h | 3 ++- src/add_widget_viewer/add_widget_viewer.c | 5 ++++- src/cluster_data.c | 22 +++++++++++++++++++++- src/cluster_db.c | 10 +++++++++- src/cluster_page.c | 2 +- src/widget_viewer.c | 2 +- 6 files changed, 38 insertions(+), 6 deletions(-) diff --git a/inc/cluster_data.h b/inc/cluster_data.h index 4bc0573..29eb506 100755 --- a/inc/cluster_data.h +++ b/inc/cluster_data.h @@ -27,6 +27,7 @@ typedef struct { int pos_y; int pos_x; char *pkg_name; + char *widget_label; char *content_info; widget_size_type_e type; double period; @@ -41,7 +42,7 @@ Eina_List *cluster_data_get_widget_list(void); int cluster_data_get_page_count(); void cluster_data_set_page_count(int count); -void cluster_data_insert_widget(const char* pkg_name, const char* content_info, int type); +void cluster_data_insert_widget(const char* pkg_name, const char *label, const char* content_info, int type); void cluster_data_insert(widget_data_t *item); void cluster_data_delete(widget_data_t *item); void cluster_data_update(widget_data_t *item); diff --git a/src/add_widget_viewer/add_widget_viewer.c b/src/add_widget_viewer/add_widget_viewer.c index 4354e82..8f6da96 100755 --- a/src/add_widget_viewer/add_widget_viewer.c +++ b/src/add_widget_viewer/add_widget_viewer.c @@ -704,12 +704,15 @@ static void __add_widget_viewer_preview_clicked_cb(void *data, Evas_Object *obj, int type = *size; free(size); + char *widget_id = strdup(widget->widget_id); + char *widget_label = strdup(widget->label); cluster_view_set_state(VIEW_STATE_NORMAL); - cluster_data_insert_widget(widget_id, NULL, type); + cluster_data_insert_widget(widget_id, widget_label, NULL, type); free(widget_id); + free(widget_label); } static void __add_widget_get_size_by_type(int type, int *w, int *h) diff --git a/src/cluster_data.c b/src/cluster_data.c index 09eadaf..1c80116 100755 --- a/src/cluster_data.c +++ b/src/cluster_data.c @@ -14,6 +14,7 @@ * limitations under the License. */ #include +#include #include "cluster_data.h" #include "cluster_db.h" @@ -63,7 +64,7 @@ void cluster_data_set_page_count(int count) } } -void cluster_data_insert_widget(const char* pkg_name, const char* content_info, int type) +void cluster_data_insert_widget(const char* pkg_name, const char *label, const char* content_info, int type) { widget_data_t *new_item = (widget_data_t *)malloc(sizeof(widget_data_t)); memset(new_item, 0, sizeof(widget_data_t)); @@ -72,6 +73,7 @@ void cluster_data_insert_widget(const char* pkg_name, const char* content_info, new_item->pos_y = INIT_VALUE; new_item->pos_x = INIT_VALUE; new_item->pkg_name = strdup(pkg_name); + new_item->widget_label = strdup(label); new_item->content_info = content_info == NULL ? NULL : strdup(content_info); new_item->type = type; new_item->period = 0.0; @@ -113,12 +115,30 @@ static void __cluster_data_insert_default_data(void) * org.tizen.music-player.widget * org.tizen.contacts-widget */ + char *lang = NULL; + int ret = SYSTEM_SETTINGS_ERROR_NONE; widget_data_t *new_item = (widget_data_t *)malloc(sizeof(widget_data_t)); memset(new_item, 0, sizeof(widget_data_t)); new_item->page_idx = 0; new_item->pos_y = 0; new_item->pos_x = 0; new_item->pkg_name = strdup("org.tizen.calendar.widget"); + + ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &lang); + if (ret != SYSTEM_SETTINGS_ERROR_NONE) { + LOGE("SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE : fail"); + lang = NULL; + } + eina_str_tolower(&lang); + + Eina_Strbuf *lang_buf = eina_strbuf_new(); + eina_strbuf_append_printf(lang_buf, "%s", lang); + eina_strbuf_replace_all(lang_buf, "_", "-"); + + new_item->widget_label = widget_service_get_name(new_item->pkg_name, eina_strbuf_string_get(lang_buf)); + if (!new_item->widget_label || strlen(new_item->widget_label) == 0) + new_item->widget_label = strdup("calendar"); + new_item->content_info = NULL; new_item->type = WIDGET_SIZE_TYPE_4x4; new_item->period = 0.0; diff --git a/src/cluster_db.c b/src/cluster_db.c index 73246ec..995971b 100755 --- a/src/cluster_db.c +++ b/src/cluster_db.c @@ -32,6 +32,7 @@ enum { COL_POS_Y, COL_POS_X, COL_PKG_NAME, + COL_WIDGET_LABEL, COL_CONTENT_INFO, COL_TYPE, COL_PERIOD, @@ -44,6 +45,7 @@ enum { y INTEGER default 0,\ x INTEGER default 0,\ pkgName TEXT,\ + widgetLabel TEXT,\ content TEXT,\ type INTEGER default 0,\ period REAL default 0.0,\ @@ -54,6 +56,7 @@ enum { y=%d,\ x=%d,\ pkgName='%s',\ + widgetLabel='%s',\ content='%s',\ type=%d,\ period=%lf,\ @@ -64,10 +67,11 @@ enum { y,\ x,\ pkgName,\ + widgetLabel,\ content,\ type,\ period,\ - allow) VALUES(%d,%d, %d,'%s','%s',%d, '%lf',%d)" + allow) VALUES(%d, %d, %d, '%s', '%s', '%s', %d, '%lf', %d)" #define SELECT_ITEM "SELECT * FROM clusters;" @@ -140,6 +144,8 @@ bool cluster_db_get_list(Eina_List **cluster_list) item->pos_x = sqlite3_column_int(stmt, COL_POS_X); str = (const char *) sqlite3_column_text(stmt, COL_PKG_NAME); item->pkg_name = (!str || !strlen(str)) ? NULL : strdup(str); + str = (const char *) sqlite3_column_text(stmt, COL_WIDGET_LABEL); + item->widget_label = (!str || !strlen(str)) ? NULL : strdup(str); str = (const char *) sqlite3_column_text(stmt, COL_CONTENT_INFO); item->content_info = (!str || !strlen(str) || strncmp(str, "(null)", strlen("(null)")) == 0 ) ? NULL : strdup(str); item->type = sqlite3_column_int(stmt, COL_TYPE); @@ -163,6 +169,7 @@ bool cluster_db_update(widget_data_t *item) item->pos_y, item->pos_x, item->pkg_name, + item->widget_label, item->content_info, item->type, item->period, @@ -190,6 +197,7 @@ bool cluster_db_insert(widget_data_t *item) item->pos_y, item->pos_x, item->pkg_name, + item->widget_label, item->content_info, item->type, item->period, diff --git a/src/cluster_page.c b/src/cluster_page.c index 4c2c963..17f1072 100755 --- a/src/cluster_page.c +++ b/src/cluster_page.c @@ -207,7 +207,7 @@ void cluster_page_get_access_widget_list(cluster_page_t *page_t, Eina_List **lis info->is_access_obj = EINA_FALSE; info->target = item->widget_layout; info->parent = page_t->page_layout; - info->name = strdup(item->pkg_name); + info->name = strdup(item->widget_label); info->description = strdup(_("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); info->role = ELM_ATSPI_ROLE_UNKNOWN; info->clicked_cb = NULL; diff --git a/src/widget_viewer.c b/src/widget_viewer.c index 1460057..de65195 100755 --- a/src/widget_viewer.c +++ b/src/widget_viewer.c @@ -52,7 +52,7 @@ void widget_viewer_add_widget(Evas_Object *parent, widget_data_t *widget_data, i { Evas_Object *widget_layout; - LOGD("pkg : %s , Content INfo : %s", widget_data->pkg_name, widget_data->content_info); + LOGD("pkg : %s , label: %s, Content INfo : %s", widget_data->pkg_name, widget_data->widget_label, widget_data->content_info); widget_layout = elm_layout_add(parent); elm_layout_file_set(widget_layout, util_get_res_file_path(EDJE_DIR"/widget.edj"), GROUP_WIDGET_LY); evas_object_size_hint_weight_set(widget_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); -- 2.7.4 From 339fca19256c80c391f8ebe424f422318825fce7 Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Fri, 9 Dec 2016 19:48:44 +0900 Subject: [PATCH 08/16] [TSAM-11375] Folder cannot open when double tap to folder Change-Id: I2886ba03fb0cf6c4e3ae9ba6d9d8a6592157a114 --- src/apps_view.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/apps_view.c b/src/apps_view.c index 1565fe3..190c489 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -2085,8 +2085,19 @@ static void __apps_view_get_access_page_app_icon(Eina_List **list) info->parent = item->app_layout; info->name = (item->label_str) ? strdup(item->label_str) : NULL; if (apps_view_s.view_state == VIEW_STATE_CHOOSER) { - info->description = (item->is_folder) ? strdup(_("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")) : strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); - info->clicked_cb = __apps_view_icon_check_changed_cb; + if (item->is_folder) { + if (item == apps_view_s.dest_folder) { + free(info->name); + free(info); + continue; + } + + info->description = strdup(_("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); + info->clicked_cb = __apps_view_icon_clicked_cb; + } else { + info->description = strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); + info->clicked_cb = __apps_view_icon_check_changed_cb; + } } else { if (item->is_folder) { snprintf(buf, sizeof(buf), "%s, %s", _("IDS_HS_HEADER_FOLDER"), _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); @@ -2187,10 +2198,7 @@ static void __apps_view_get_access_folder_icon(Eina_List **list) info->name = (item->label_str) ? strdup(item->label_str) : NULL; info->description = (apps_view_s.view_state == VIEW_STATE_EDIT) ? strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_OUTSIDE_TO_REMOVE_FROM_FOLDER")) : strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); info->role = ELM_ATSPI_ROLE_UNKNOWN; - if (apps_view_s.view_state == VIEW_STATE_CHOOSER) - info->clicked_cb = __apps_view_icon_check_changed_cb; - else - info->clicked_cb = __apps_view_icon_clicked_cb; + info->clicked_cb = (apps_view_s.view_state == VIEW_STATE_CHOOSER) ? __apps_view_icon_check_changed_cb : __apps_view_icon_clicked_cb; info->cb_data = item; info->priority = (item->position + 1) * ACCESS_PRIORITY_APP_ICON; -- 2.7.4 From 774ad223041bd4abab63dd523b1f3847196645ff Mon Sep 17 00:00:00 2001 From: "Geunsun, Lee" Date: Fri, 9 Dec 2016 20:31:53 +0900 Subject: [PATCH 09/16] [Screen Reader] Fix APPS description on edit mode Change-Id: I760cc4a39ff3d853de67229426a8a5037d17888e --- src/apps_view.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/apps_view.c b/src/apps_view.c index 190c489..b2754a0 100755 --- a/src/apps_view.c +++ b/src/apps_view.c @@ -2098,11 +2098,19 @@ static void __apps_view_get_access_page_app_icon(Eina_List **list) info->description = strdup(_("IDS_HS_TBBODY_DOUBLE_TAP_TO_SELECT")); info->clicked_cb = __apps_view_icon_check_changed_cb; } - } else { + } else if (apps_view_s.view_state == VIEW_STATE_EDIT) { if (item->is_folder) { snprintf(buf, sizeof(buf), "%s, %s", _("IDS_HS_HEADER_FOLDER"), _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); } else { - snprintf(buf, sizeof(buf), "%s, %s", _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN"), _("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); + snprintf(buf, sizeof(buf), "%s", _("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); + } + info->description = strdup(buf); + info->clicked_cb = __apps_view_icon_clicked_cb; + } else { + if (item->is_folder) { + snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_HS_HEADER_FOLDER"), _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN"), _("IDS_BR_BODY_DOUBLE_TAP_AND_HOLD_THEN_DRAG_TO_REORDER_TTS")); + } else { + snprintf(buf, sizeof(buf), "%s", _("IDS_LCKSCN_TBBODY_DOUBLE_TAP_TO_OPEN")); } info->description = strdup(buf); info->clicked_cb = __apps_view_icon_clicked_cb; -- 2.7.4 From 490a06a8db37eabb91f3f908cc81cd8c3dd18281 Mon Sep 17 00:00:00 2001 From: junkyu han Date: Mon, 12 Dec 2016 15:11:18 +0900 Subject: [PATCH 10/16] Search the storage type on install Change-Id: I94eed83b66744c4bcdffa5e3de9c31f99c65defc --- .cproject | 32 ++++++++++++++++---------------- Build/basedef.mk | 2 +- Build/build_edc.mk | 4 ++-- Build/build_po.mk | 4 ++-- Build/makefile | 3 ++- Build/makefile.mk | 28 +++++++++++++++------------- inc/apps_data.h | 1 + project_def.prop | 2 +- src/apps_data.c | 19 +++++++++++++++++++ src/apps_package_manager.c | 14 +++----------- 10 files changed, 62 insertions(+), 47 deletions(-) diff --git a/.cproject b/.cproject index a6da12c..ab7aa9b 100755 --- a/.cproject +++ b/.cproject @@ -27,11 +27,17 @@