From 2f843428146f88d9e79885395caecb1eea583417 Mon Sep 17 00:00:00 2001 From: Oleksander Kostenko Date: Thu, 2 Feb 2017 13:44:05 +0200 Subject: [PATCH] TizenRefApp-7970 Close all/ restore app options do not work in screen reader mode Change-Id: I138ab0269b51c53b16b350e073e2b358ae373210 Signed-off-by: Oleksander Kostenko --- project_def.prop | 6 +++--- src/App/inc/MainLayout.h | 1 + src/App/inc/TaskListViewItem.h | 2 ++ src/App/src/MainLayout.cpp | 7 +++++++ src/App/src/TaskListViewItem.cpp | 16 +++++++++++++--- src/Common/inc/AtspiAccessibleInterface.h | 6 ++++++ 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/project_def.prop b/project_def.prop index d9386c8..fa85430 100644 --- a/project_def.prop +++ b/project_def.prop @@ -9,13 +9,13 @@ type = app profile = wearable-3.0 # C/CPP Sources -USER_SRCS = src/App/src/App.cpp src/App/src/TaskMngrService.cpp src/main.cpp src/Common/src/PathUtils.cpp src/Common/src/Window.cpp src/Common/src/Logger.cpp src/App/src/MainController.cpp src/App/src/MainLayout.cpp src/Common/src/View.cpp +USER_SRCS = src/App/src/IndexView.cpp src/Common/src/PathUtils.cpp src/App/src/DelButton.cpp src/App/src/TaskMngrService.cpp src/main.cpp src/App/src/MainLayout.cpp src/Common/src/View.cpp src/Common/src/Logger.cpp src/Common/src/Window.cpp src/App/src/App.cpp src/App/src/TaskListView.cpp src/App/src/TaskListViewItem.cpp src/App/src/MainController.cpp # EDC Sources USER_EDCS = # PO Sources -USER_POS = +USER_POS = res/po/as.po res/po/ca.po res/po/fr.po res/po/nl.po res/po/sk.po res/po/sv.po res/po/uz.po res/po/tl.po res/po/lt.po res/po/nb.po res/po/sl.po res/po/ja_JP.po res/po/zh_TW.po res/po/nl_NL.po res/po/de.po res/po/ms.po res/po/si.po res/po/es_ES.po res/po/bg.po res/po/kn.po res/po/mr.po res/po/hy.po res/po/no.po res/po/te.po res/po/en_US.po res/po/da.po res/po/es_US.po res/po/gu.po res/po/mk.po res/po/zh_SG.po res/po/tr_TR.po res/po/hr.po res/po/km.po res/po/lo.po res/po/pt_PT.po res/po/hu.po res/po/ta.po res/po/ko_KR.po res/po/is.po res/po/ml.po res/po/ru_RU.po res/po/el_GR.po res/po/pt_BR.po res/po/ro.po res/po/eu.po res/po/kk.po res/po/et.po res/po/ne.po res/po/or.po res/po/az.po res/po/cs.po res/po/pa.po res/po/pl.po res/po/ga.po res/po/lv.po res/po/de_DE.po res/po/th.po res/po/en_GB.po res/po/it_IT.po res/po/fa.po res/po/zh_HK.po res/po/es_MX.po res/po/fr_CA.po res/po/fr_FR.po res/po/gl.po res/po/ur.po res/po/vi.po res/po/en.po res/po/hi.po res/po/en_PH.po res/po/bn.po res/po/my.po res/po/sr.po res/po/uk.po res/po/zh_CN.po res/po/ar.po res/po/ka.po res/po/id.po res/po/fi.po res/po/he.po # User Defines USER_DEFS = @@ -52,7 +52,7 @@ USER_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts # EDC Flags USER_EXT_EDC_KEYS = EDC0 -USER_EXT_EDC0_EDCS = res/edje/main_layout.edc +USER_EXT_EDC0_EDCS = res/edje/task-item.edc res/edje/main-layout.edc res/edje/icons.edc res/edje/anim-item.edc USER_EXT_EDC0_EDCS_IMAGE_DIRS = ${OUTPUT_DIR} edje/images USER_EXT_EDC0_EDCS_SOUND_DIRS = ${OUTPUT_DIR} edje/sounds USER_EXT_EDC0_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts diff --git a/src/App/inc/MainLayout.h b/src/App/inc/MainLayout.h index 11d503d..9d026d6 100644 --- a/src/App/inc/MainLayout.h +++ b/src/App/inc/MainLayout.h @@ -36,6 +36,7 @@ namespace TaskMngr { private: void prepareNoContents(); + Eina_Bool onScreenReaderCloseAllClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info); private: Evas_Object *m_pNoContent; diff --git a/src/App/inc/TaskListViewItem.h b/src/App/inc/TaskListViewItem.h index 4f156a6..85f31b6 100644 --- a/src/App/inc/TaskListViewItem.h +++ b/src/App/inc/TaskListViewItem.h @@ -48,6 +48,8 @@ namespace TaskMngr void onDelButtonClicked(Evas_Object *obj, void *event_info); void onAppClicked(Evas_Object *obj, const char *emission, const char *source); + Eina_Bool onScreenReaderAppClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info); + void appClickedHandler(); char *onChangeDescription(Evas_Object *obj); diff --git a/src/App/src/MainLayout.cpp b/src/App/src/MainLayout.cpp index 0cd83de..8e30b2f 100644 --- a/src/App/src/MainLayout.cpp +++ b/src/App/src/MainLayout.cpp @@ -19,6 +19,7 @@ #include "PathUtils.h" #include "Logger.h" #include "LangUtils.h" +#include "Callback.h" using namespace TaskMngr; @@ -42,6 +43,7 @@ MainLayout::MainLayout(Evas_Object *parent) aoCloseAll.setName(msg("WDS_ST_ACBUTTON_CLOSE_ALL_ABB")); aoCloseAll.setDescription(msg("IDS_ACCS_BODY_BUTTON_TTS")); aoCloseAll.setReadingInfo(ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION); + aoCloseAll.setAccessActionCb(ELM_ACCESS_ACTION_ACTIVATE, makeCbFirst(&MainLayout::onScreenReaderCloseAllClicked), this); } MainLayout::~MainLayout() @@ -89,3 +91,8 @@ void MainLayout::showCloseButton(bool show) emitSignal(sig, "*"); } +Eina_Bool MainLayout::onScreenReaderCloseAllClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info) +{ + onCloseAllButtonClicked(); + return true; +} diff --git a/src/App/src/TaskListViewItem.cpp b/src/App/src/TaskListViewItem.cpp index 38fc11b..0ae5f05 100644 --- a/src/App/src/TaskListViewItem.cpp +++ b/src/App/src/TaskListViewItem.cpp @@ -100,6 +100,7 @@ void TaskListViewItem::setIcon(const std::string &path) m_AoIcon.setName(m_AppInfo.name); m_AoIcon.setDescriptionCb(makeCbFirst(&TaskListViewItem::onChangeDescription), this); m_AoIcon.setReadingInfo(ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION); + m_AoIcon.setAccessActionCb(ELM_ACCESS_ACTION_ACTIVATE, makeCbFirst(&TaskListViewItem::onScreenReaderAppClicked), this); } void TaskListViewItem::setText(const std::string &text) @@ -266,10 +267,19 @@ void TaskListViewItem::onDelButtonClicked(Evas_Object *obj, void *event_info) void TaskListViewItem::onAppClicked(Evas_Object *obj, const char *emission, const char *source) { - if (!m_IgnoreAppClick && !m_IsKillAnimPlaying) { - LOG(""); + appClickedHandler(); +} + +Eina_Bool TaskListViewItem::onScreenReaderAppClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info) +{ + appClickedHandler(); + return true; +} + +void TaskListViewItem::appClickedHandler() +{ + if (!m_IgnoreAppClick && !m_IsKillAnimPlaying) m_Parent.onAppClicked(*this); - } } char *TaskListViewItem::onChangeDescription(Evas_Object *obj) diff --git a/src/Common/inc/AtspiAccessibleInterface.h b/src/Common/inc/AtspiAccessibleInterface.h index 894c9f1..23dabf2 100644 --- a/src/Common/inc/AtspiAccessibleInterface.h +++ b/src/Common/inc/AtspiAccessibleInterface.h @@ -43,6 +43,7 @@ namespace TaskMngr { void removeRelationship(Elm_Atspi_Relation_Type type, const Elm_Interface_Atspi_Accessible *obj); void canHighlight(bool canHighlight); void setDescriptionCb(Elm_Atspi_Reading_Info_Cb descriptionCb, const void *data); + void setAccessActionCb(const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data); // TODO: impl. other methods if needed @@ -125,6 +126,11 @@ namespace TaskMngr { { elm_atspi_accessible_description_cb_set(m_pEo, descriptionCb, data); } + + inline void Atspi::setAccessActionCb(const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data) + { + elm_access_action_cb_set(m_pEo, type, cb, data); + } } #endif /* Atspi_h_ */ -- 2.7.4