TizenRefApp-8948 [Screen Reader] Toast popups are not fully read 70/172870/1
authorEugene Kurzberg <i.kurtsberg@samsung.com>
Mon, 23 Oct 2017 08:44:25 +0000 (11:44 +0300)
committerNilesh Trimbake <t.shripati@samsung.com>
Fri, 16 Mar 2018 10:04:33 +0000 (15:34 +0530)
Change-Id: I342727d25d3dbd737b8eaa276a09da48c59ae82c
Signed-off-by: Eugene Kurzberg <i.kurtsberg@samsung.com>
lib-apps-common/inc/Ui/Toast.h
lib-apps-common/src/Ui/Toast.cpp

index c60c23bf49ae8c901136586a17fd9fba3be95480..b3a70dc8568cd049726200d2d0bebcafb0662186 100644 (file)
@@ -46,6 +46,9 @@ namespace Ui
                 * @see Control::onCreate()
                 */
                virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+       private:
+               void onTimeout(Evas_Object *popup, void *eventInfo);
        };
 }
 
index 188b01a812438de6a98a477969a57aadfcffb81f..5175487131d503ef9e90070818a29a00f9cc837e 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "Ui/Toast.h"
 #include "Ui/Window.h"
+#include "Utils/Callback.h"
 
 using namespace Ui;
 
@@ -41,11 +42,19 @@ Evas_Object *Toast::onCreate(Evas_Object *parent)
 {
        Evas_Object *popup = Popup::onCreate(findParent<Window>(parent)->getEvasObject());
        elm_object_style_set(popup, "toast/circle");
-       elm_popup_timeout_set(popup, 2.0);
-       evas_object_smart_callback_add(popup, "timeout",
-               [](void *data, Evas_Object *popup, void *) {
-                       elm_popup_dismiss(popup);
-               }, this);
+       if (!elm_atspi_bridge_utils_is_screen_reader_enabled()) {
+               elm_popup_timeout_set(popup, 2.0);
+               evas_object_smart_callback_add(popup, "timeout",
+                               makeCallback(&Toast::onTimeout), this);
+       } else {
+               evas_object_smart_callback_add(popup, "access,read,stop",
+                               makeCallback(&Toast::onTimeout), this);
+       }
 
        return popup;
 }
+
+void Toast::onTimeout(Evas_Object *popup, void *eventInfo)
+{
+       elm_popup_dismiss(popup);
+}