[AT-SPI] Add Dali::AtspiAccessibility::StopReading() 89/256189/1
authorArtur Świgoń <a.swigon@samsung.com>
Tue, 30 Mar 2021 16:54:55 +0000 (18:54 +0200)
committerArtur Świgoń <a.swigon@samsung.com>
Tue, 30 Mar 2021 16:54:55 +0000 (18:54 +0200)
Change-Id: Ifff55e0716c238c140e9da346e67c7cf44cd5711

dali/devel-api/adaptor-framework/accessibility-impl.h
dali/devel-api/adaptor-framework/atspi-accessibility.cpp
dali/devel-api/adaptor-framework/atspi-accessibility.h
dali/internal/accessibility/bridge/bridge-impl.cpp
dali/internal/accessibility/bridge/dummy-atspi.h

index 7b5d18c..7f1faae 100644 (file)
@@ -247,6 +247,13 @@ struct DALI_ADAPTOR_API Bridge
   virtual void Resume() = 0;
 
   /**
+   * @brief Cancels anything screen-reader is reading / has queued to read
+   *
+   * @param alsoNonDiscardable whether to cancel non-discardable readings as well
+   */
+  virtual void StopReading(bool alsoNonDiscardable) = 0;
+
+  /**
    * @brief Get screen reader status.
    */
   virtual bool GetScreenReaderEnabled() = 0;
index 1828477..7b36a94 100644 (file)
@@ -34,6 +34,14 @@ void Dali::AtspiAccessibility::Resume()
   }
 }
 
+void Dali::AtspiAccessibility::StopReading(bool alsoNonDiscardable)
+{
+  if(auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge())
+  {
+    bridge->StopReading(alsoNonDiscardable);
+  }
+}
+
 void Dali::AtspiAccessibility::Say(const std::string& text, bool discardable, std::function<void(std::string)> callback)
 {
   if(auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge())
index 6294e3a..6c703f8 100644 (file)
@@ -50,6 +50,13 @@ DALI_ADAPTOR_API void Pause();
 DALI_ADAPTOR_API void Resume();
 
 /**
+ * @brief Cancels anything screen-reader is reading / has queued to read
+ *
+ * @param alsoNonDiscardable whether to cancel non-discardable readings as well
+ */
+DALI_ADAPTOR_API void StopReading(bool alsoNonDiscardable = false);
+
+/**
  * @brief Set ATSPI to be turned On or Off forcibly.
  *
  * @param[in] turnOn true to turn on, false to turn off.
index b7b026f..35e84b7 100644 (file)
@@ -152,6 +152,22 @@ public:
                                                                                         false);
   }
 
+  void StopReading(bool alsoNonDiscardable) override
+  {
+    if(!IsUp())
+    {
+      return;
+    }
+
+    directReadingClient.method<DBus::ValueOrError<void>(bool)>("StopReading").asyncCall([](DBus::ValueOrError<void> msg) {
+      if(!msg)
+      {
+        LOG() << "Direct reading command failed (" << msg.getError().message << ")";
+      }
+    },
+                                                                                        alsoNonDiscardable);
+  }
+
   void Say(const std::string& text, bool discardable, std::function<void(std::string)> callback) override
   {
     if(!IsUp())
index 02b1d25..f47a33a 100644 (file)
@@ -136,6 +136,10 @@ struct DummyBridge : Dali::Accessibility::Bridge
   {
   }
 
+  void StopReading(bool alsoNonDiscardable) override
+  {
+  }
+
   bool GetScreenReaderEnabled() override
   {
     return false;