}
}
+ /**
+ * @copydoc Dali::Accessibility::Bridge::SuppressScreenReader()
+ */
+ void SuppressScreenReader(bool suppress) override
+ {
+ if(mIsScreenReaderSuppressed == suppress)
+ {
+ return;
+ }
+ mIsScreenReaderSuppressed = suppress;
+ ReadScreenReaderEnabledProperty();
+ }
+
bool ReadIsEnabledTimerCallback()
{
ReadIsEnabledProperty();
return;
}
mIsEnabled = std::get<0>(msg);
- if(mIsEnabled)
+ if((!mIsScreenReaderSuppressed && mIsScreenReaderEnabled) || mIsEnabled)
{
ForceUp();
}
+ else
+ {
+ ForceDown();
+ }
});
}
void ReadScreenReaderEnabledProperty()
{
+ // can be true because of SuppressScreenReader before init
+ if (!mAccessibilityStatusClient)
+ {
+ return;
+ }
+
mAccessibilityStatusClient.property<bool>("ScreenReaderEnabled").asyncGet([this](DBus::ValueOrError<bool> msg) {
if(!msg)
{
return;
}
mIsScreenReaderEnabled = std::get<0>(msg);
- if(mIsScreenReaderEnabled)
+ if((!mIsScreenReaderSuppressed && mIsScreenReaderEnabled) || mIsEnabled)
{
ForceUp();
}
+ else
+ {
+ ForceDown();
+ }
});
}
{
mAccessibilityStatusClient.addPropertyChangedEvent<bool>("ScreenReaderEnabled", [this](bool res) {
mIsScreenReaderEnabled = res;
- if(mIsScreenReaderEnabled || mIsEnabled)
+ if((!mIsScreenReaderSuppressed && mIsScreenReaderEnabled) || mIsEnabled)
{
ForceUp();
}