X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Faccessibility%2Fbridge%2Fbridge-impl.cpp;h=f76a0eae3bb57a260a9dfa8574fc54d7a9a35588;hb=650f41536a0279e017dab9f2f62ce7acae17bb16;hp=3787031b5bb6fc20ee9ef0eb0bedb9e8c8062c36;hpb=e713fcd830445fe8347382e74d19196b88915995;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/accessibility/bridge/bridge-impl.cpp b/dali/internal/accessibility/bridge/bridge-impl.cpp index 3787031..f76a0ea 100644 --- a/dali/internal/accessibility/bridge/bridge-impl.cpp +++ b/dali/internal/accessibility/bridge/bridge-impl.cpp @@ -30,17 +30,19 @@ #include #include #include +#include #include #include #include -#include #include +#include #include #include #include +#include +#include #include #include -#include #include #include #include @@ -49,7 +51,6 @@ using namespace Dali::Accessibility; namespace // unnamed namespace { - const int RETRY_INTERVAL = 1000; } // unnamed namespace @@ -70,17 +71,19 @@ class BridgeImpl : public virtual BridgeBase, public BridgeApplication, public BridgeHypertext, public BridgeHyperlink, - public BridgeSocket + public BridgeSocket, + public BridgeTable, + public BridgeTableCell { - DBus::DBusClient mAccessibilityStatusClient; - DBus::DBusClient mRegistryClient; - DBus::DBusClient mDirectReadingClient; - bool mIsScreenReaderEnabled = false; - bool mIsEnabled = false; - std::unordered_map> mDirectReadingCallbacks; + DBus::DBusClient mAccessibilityStatusClient{}; + DBus::DBusClient mRegistryClient{}; + DBus::DBusClient mDirectReadingClient{}; + bool mIsScreenReaderEnabled{false}; + bool mIsEnabled{false}; + std::unordered_map> mDirectReadingCallbacks{}; Dali::Actor mHighlightedActor; - std::function mHighlightClearAction; - Dali::CallbackBase* mIdleCallback = NULL; + std::function mHighlightClearAction{nullptr}; + Dali::CallbackBase* mIdleCallback{}; Dali::Timer mInitializeTimer; Dali::Timer mReadIsEnabledTimer; Dali::Timer mReadScreenReaderEnabledTimer; @@ -88,9 +91,7 @@ class BridgeImpl : public virtual BridgeBase, std::string mPreferredBusName; public: - BridgeImpl() - { - } + BridgeImpl() = default; /** * @copydoc Dali::Accessibility::Bridge::Emit() @@ -122,7 +123,14 @@ public: } } - return Consumed::NO; + auto methodObject = mRegistryClient.method)>("NotifyListenersSync"); + auto result = methodObject.call(std::tuple{keyType, 0, static_cast(keyCode), 0, static_cast(timeStamp), keyName, isText ? 1 : 0}); + if(!result) + { + LOG() << result.getError().message; + return Consumed::NO; + } + return std::get<0>(result) ? Consumed::YES : Consumed::NO; } /** @@ -141,7 +149,7 @@ public: LOG() << "Direct reading command failed (" << msg.getError().message << ")\n"; } }, - true); + true); } /** @@ -160,7 +168,7 @@ public: LOG() << "Direct reading command failed (" << msg.getError().message << ")\n"; } }, - false); + false); } /** @@ -179,7 +187,7 @@ public: LOG() << "Direct reading command failed (" << msg.getError().message << ")\n"; } }, - alsoNonDiscardable); + alsoNonDiscardable); } /** @@ -202,8 +210,8 @@ public: mDirectReadingCallbacks.emplace(std::get<2>(msg), callback); } }, - text, - discardable); + text, + discardable); } /** @@ -228,8 +236,8 @@ public: mHighlightedActor = {}; mHighlightClearAction = {}; BridgeAccessible::ForceDown(); - mRegistryClient = {}; - mDirectReadingClient = {}; + mRegistryClient = {}; + mDirectReadingClient = {}; mDirectReadingCallbacks.clear(); mApplication.mChildren.clear(); ClearTimer(); @@ -282,9 +290,9 @@ public: { Dali::Adaptor::Get().RemoveIdle(mIdleCallback); } - mAccessibilityStatusClient = {}; - mDbusServer = {}; - mConnectionPtr = {}; + mAccessibilityStatusClient = {}; + mDbusServer = {}; + mConnectionPtr = {}; } bool ForceUpTimerCallback() @@ -330,6 +338,8 @@ public: BridgeHypertext::RegisterInterfaces(); BridgeHyperlink::RegisterInterfaces(); BridgeSocket::RegisterInterfaces(); + BridgeTable::RegisterInterfaces(); + BridgeTableCell::RegisterInterfaces(); RegisterOnBridge(&mApplication); @@ -617,7 +627,7 @@ public: void ReadScreenReaderEnabledProperty() { // can be true because of SuppressScreenReader before init - if (!mAccessibilityStatusClient) + if(!mAccessibilityStatusClient) { return; } @@ -651,7 +661,7 @@ public: void EmitScreenReaderEnabledSignal() { - if (mIsScreenReaderEnabled) + if(mIsScreenReaderEnabled) { mScreenReaderEnabledSignal.Emit(); } @@ -683,7 +693,7 @@ public: { mAccessibilityStatusClient = DBus::DBusClient{A11yDbusName, A11yDbusPath, A11yDbusStatusInterface, DBus::ConnectionType::SESSION}; - if (!mAccessibilityStatusClient) + if(!mAccessibilityStatusClient) { DALI_LOG_ERROR("Accessibility Status DbusClient is not ready\n"); return false; @@ -694,7 +704,7 @@ public: bool InitializeTimerCallback() { - if ( InitializeAccessibilityStatusClient() ) + if(InitializeAccessibilityStatusClient()) { ReadAndListenProperties(); return false; @@ -704,7 +714,7 @@ public: bool OnIdleSignal() { - if ( InitializeAccessibilityStatusClient() ) + if(InitializeAccessibilityStatusClient()) { ReadAndListenProperties(); mIdleCallback = NULL; @@ -727,20 +737,20 @@ public: */ void Initialize() override { - if ( InitializeAccessibilityStatusClient() ) + if(InitializeAccessibilityStatusClient()) { ReadAndListenProperties(); return; } // Initialize failed. Try it again on Idle - if( Dali::Adaptor::IsAvailable() ) + if(Dali::Adaptor::IsAvailable()) { Dali::Adaptor& adaptor = Dali::Adaptor::Get(); - if( NULL == mIdleCallback ) + if(NULL == mIdleCallback) { - mIdleCallback = MakeCallback( this, &BridgeImpl::OnIdleSignal ); - adaptor.AddIdle( mIdleCallback, true ); + mIdleCallback = MakeCallback(this, &BridgeImpl::OnIdleSignal); + adaptor.AddIdle(mIdleCallback, true); } } } @@ -779,14 +789,14 @@ public: { auto client = CreateSocketClient(socket); - client.method("Embedded").call(ATSPI_PREFIX_PATH + plug.GetPath()); + client.method("Embedded").asyncCall([](DBus::ValueOrError) {}, ATSPI_PREFIX_PATH + plug.GetPath()); } void UnembedSocket(const Address& plug, const Address& socket) override { auto client = CreateSocketClient(socket); - client.method("Unembed").call(plug); + client.method("Unembed").asyncCall([](DBus::ValueOrError) {}, plug); } void SetSocketOffset(ProxyAccessible* socket, std::int32_t x, std::int32_t y) override @@ -853,7 +863,6 @@ private: namespace // unnamed namespace { - bool INITIALIZED_BRIDGE = false; /**