BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xv)
BuildRequires: pkgconfig(xtst)
+BuildRequires: pkgconfig(vconf)
BuildRequires: libexif-devel
BuildRequires: liblua-devel
BuildRequires: libtiff-devel
}
virtual void OnTimerExpired(Timer& timer)
{
+ if (!(__pAccessibilityManager->IsScreenReaderActivated()))
+ {
+ return Stop();
+ }
SysLog(NID_UI, "mode %d", __mode);
- if (__pAccessibilityManager->GetTtsStatus() != Tizen::Ui::ACCESSIBILITY_SCREEN_READER_STATUS_READY
- && __pAccessibilityManager->GetTtsStatus() != Tizen::Ui::ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING)
+ if (UiApp::GetInstance()->GetAppUiState() == APP_UI_STATE_BACKGROUND || (__pAccessibilityManager->GetTtsStatus() != Tizen::Ui::ACCESSIBILITY_SCREEN_READER_STATUS_READY
+ && __pAccessibilityManager->GetTtsStatus() != Tizen::Ui::ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING))
{
__start = false;
Start(__mode);
delete pList;
}
}
- __pTargetContainer->SetCurrentFocusedElement(null);
+ if(__pTargetContainer)
+ {
+ __pTargetContainer->SetCurrentFocusedElement(null);
+ }
if (pAccContainer->IsFocusManaged())
{
__pTargetContainer = pAccContainer;
void
_AccessibilityManager::OnAccessibilityScreenReaderIsActivated(bool set)
{
+ SysLog(NID_UI, "Screen reader status is changed. %d", set);
if (__screenReaderIsEnabled == set)
{
return;
{
__pTtsPlayer->SetLocale(__pSettingLoader->GetLocale());
__pTtsPlayer->Activate();
+ RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM);
+
}
}
else
{
__pTtsPlayer->Deactivate();
+ EraseFocusUi();
+ __pTargetContainer = null;
+ __pTargetElement = null;
+ __pTitleElement = null;
+ __candidateList.RemoveAll();
+ __mode = MODE_NONE;
+ __targetControlHandle = _ControlHandle();
+ __focusedControlHandle = _ControlHandle();
+ __readingPopupParentHandle = _ControlHandle();
}
}
}
bool
-_AccessibilityManager::IsAccessibilityActivated(void)
-{
- return __pSettingLoader->IsAccessibilityActivated();
-}
-bool
_AccessibilityManager::IsScreenReaderActivated(void)
{
__screenReaderIsEnabled = __pSettingLoader->IsScreenReaderActivated();
}
}
return false;
-}\r
+}
bool
_AccessibilityManager::IsLastElementGainedFocus(void)
{
// limitations under the License.
//
+#include <vconf.h>
#include <FBaseString.h>
#include <FBaseSysLog.h>
#include <FLclLocaleManager.h>
namespace Tizen { namespace Ui {
-bool _activated = false;
bool _screenReaderActivated = false;
+const char* VCONF_KEY_ACCESSIBILITY_SCREEN_READER = "db/setting/accessibility/tts";
_AccessibilitySystemSettingLoader::_AccessibilitySystemSettingLoader(_AccessibilityManager& manager)
: __pManager(&manager)
{
_screenReaderActivated = IsScreenReaderActivated();
- _activated = _screenReaderActivated;
_SettingInfoImpl::AddSettingEventListenerForInternal(*this);
+ vconf_notify_key_changed(VCONF_KEY_ACCESSIBILITY_SCREEN_READER, _AccessibilitySystemSettingLoader::SetSystemSetting, null);
}
_AccessibilitySystemSettingLoader::~_AccessibilitySystemSettingLoader(void)
{
_SettingInfoImpl::RemoveSettingEventListenerForInternal(*this);
+ vconf_ignore_key_changed(VCONF_KEY_ACCESSIBILITY_SCREEN_READER, _AccessibilitySystemSettingLoader::SetSystemSetting);
}
void
_AccessibilitySystemSettingLoader::OnSettingChanged(String& key)
{
__pManager->OnChangedLocale();
}
- else if (key == L"http://tizen.org/setting/speech.tts.screen")
- {
- _AccessibilityManager::GetInstance()->OnAccessibilityScreenReaderIsActivated(IsScreenReaderActivated());
- }
-}
-
-bool
-_AccessibilitySystemSettingLoader::IsAccessibilityActivated(void)
-{
- return _activated;
}
bool
_AccessibilitySystemSettingLoader::IsScreenReaderActivated(void)
{
- return GetEcoreEvasMgr()->GetEcoreEvas()->IsAccessibilityScreenReaderActivated();
+//#if defined(_OSP_EMUL_)
// bool enable = false;
// _SettingInfoImpl::GetValue(L"http://tizen.org/setting/speech.tts.screen", enable);
-// AppLog("bumseung %d", enable);
// return enable;
+//#else
+// return GetEcoreEvasMgr()->GetEcoreEvas()->IsAccessibilityScreenReaderActivated();
+//#endif
+ int error = 0;
+ int value = 0;
+ error = vconf_get_bool(VCONF_KEY_ACCESSIBILITY_SCREEN_READER, &value);
+ SysTryReturnResult(NID_UI, error == 0, E_SYSTEM, "It is failed to get screen reader activation key.");
+ return (value ? true : false);
}
float
}
void
-_AccessibilitySystemSettingLoader::SetSystemSetting(const Tizen::Base::String key, bool value)
+_AccessibilitySystemSettingLoader::SetSystemSetting(keynode_t* node, void* userData)
{
- if (key == L"AccessibilityActivationStatus")
- {
- _activated = value;
- }
- else if (key == L"ScreenReaderActivationStatus")
+ if (strcmp(VCONF_KEY_ACCESSIBILITY_SCREEN_READER, vconf_keynode_get_name(node)) == 0)
{
- _screenReaderActivated = value;
- _AccessibilityManager::GetInstance()->OnAccessibilityScreenReaderIsActivated(value);
+ int value = 0;
+ vconf_get_bool(VCONF_KEY_ACCESSIBILITY_SCREEN_READER, &value);
+ _screenReaderActivated = (value == 1);
+ _AccessibilityManager::GetInstance()->OnAccessibilityScreenReaderIsActivated(_screenReaderActivated);
}
}
{
Ecore_X_Atom __atomRotateRootAngle = 0;
-Ecore_X_Atom __atomAccessibility = 0;
int __clipboardHeight = 0;
}
Eina_Bool
-OnAccessibilitySettingMessageReceived(void* pData, int type, void* pEvent)
-{
- Ecore_X_Event_Client_Message* pClientEvent = static_cast<Ecore_X_Event_Client_Message*>(pEvent);
- if (pClientEvent->message_type == __atomAccessibility)
- {
- if ((Eina_Bool)pClientEvent->data.l[0])
- {
- _AccessibilitySystemSettingLoader::SetSystemSetting(L"AccessibilityActivationStatus", true);
- _AccessibilitySystemSettingLoader::SetSystemSetting(L"AccessibilityActivationStatus", true);
- SysLog(NID_UI, "Accessibility Screen reader is activated.");
-
- }
- else
- {
- _AccessibilitySystemSettingLoader::SetSystemSetting(L"AccessibilityActivationStatus", false);
- _AccessibilitySystemSettingLoader::SetSystemSetting(L"AccessibilityActivationStatus", false);
- SysLog(NID_UI, "Accessibility Screen reader is deactivated.");
- }
- }
- return ECORE_CALLBACK_PASS_ON;
-}
-
-Eina_Bool
OnClientMessageReceived(void* pData, int type, void* pEvent)
{
Ecore_X_Event_Client_Message* pClientEvent = static_cast<Ecore_X_Event_Client_Message*>(pEvent);
__pClientMessageReceived = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, OnClientMessageReceived, NULL);
ecore_x_event_mask_set(ecore_x_window_root_first_get(), ECORE_X_EVENT_MASK_WINDOW_CONFIGURE);
- ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, OnAccessibilitySettingMessageReceived, NULL);
ecore_x_event_mask_set(ecore_x_window_root_first_get(), ECORE_X_EVENT_MASK_WINDOW_PROPERTY);
_pEvas = this;
SysTryCatch(NID_UI, __pClipboardClosed, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
__atomRotateRootAngle = ecore_x_atom_get("_E_ILLUME_ROTATE_ROOT_ANGLE");
- __atomAccessibility = ecore_x_atom_get("_E_MOD_ACC_SCR_READER_");
return r;
virtual bool OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element){return true;}
virtual bool OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element)
{
- if (element.GetName() != L"CheckButtonText");
+ if (element.GetName() == L"MoreButtonText")
{
return true;
}
void
_CheckButton::UpdateAccessibilityElement(void)
{
- if(likely(!(_AccessibilityManager::IsActivated())))
- {
- return;
- }
_AccessibilityContainer* pContainer = GetAccessibilityContainer();
if(pContainer)
void OnChangedLocale(void);
void OnAccessibilityScreenReaderIsActivated(bool set);
- bool IsAccessibilityActivated(void);
bool IsScreenReaderActivated(void);
float GetLargeFontSize(void);
class Locale;
}} //Tizen::Locales
+struct _keynode_t;
+typedef _keynode_t keynode_t;
+
namespace Tizen { namespace Ui {
class _AccessibilityManager;
_AccessibilitySystemSettingLoader(_AccessibilityManager& manager);
virtual ~_AccessibilitySystemSettingLoader(void);
- bool IsAccessibilityActivated(void);
bool IsScreenReaderActivated(void);
float GetLargeFontSize(void);
Tizen::Locales::Locale GetLocale(void);
- static void SetSystemSetting(const Tizen::Base::String key, bool value);
+ static void SetSystemSetting(keynode_t* node, void* userData);
private: