#include "FUi_CoordinateSystemUtils.h"
#include "FUi_Window.h"
#include "FUi_TouchManager.h"
+#include "FUi_AccessibilityContainer.h"
+#include "FUi_AccessibilityElement.h"
#include "FShell_AppWidgetBuffer.h"
#include "FShell_AppWidgetLayer.h"
#include "FShell_AppWidgetProviderManagerImpl.h"
{
SysTryReturn(NID_SHELL, !__providerId.IsEmpty(), E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
- result r = _AppWidgetProviderManagerImpl::GetInstance()->SyncRemoteBuffer(__providerId, size.width, size.height);
+ String screenReaderText(L"");
+
+ if (__pWindow)
+ {
+ _AccessibilityContainer* pAccessibilityContainer = __pWindow->GetAccessibilityContainer();
+ if (pAccessibilityContainer)
+ {
+ _AccessibilityElement* pAccessibilityElement = pAccessibilityContainer->GetChildElement(0);
+ if (pAccessibilityElement)
+ {
+ screenReaderText = pAccessibilityElement->GetTraitString();
+ }
+ }
+ }
+
+ bool isEmpty = screenReaderText.IsEmpty();
+ SysLog(NID_SHELL, "IsEmpty(%d) %ls", isEmpty, screenReaderText.GetPointer());
+
+ result r = _AppWidgetProviderManagerImpl::GetInstance()->SyncRemoteBuffer(__providerId, size.width, size.height, screenReaderText);
SysTryReturn(NID_SHELL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
return r;
#include <FMediaImage.h>
#include <FUiAnimDisplayContext.h>
#include <FUiAnimVisualElementPropertyAnimation.h>
+#include <FShellAppWidgetProviderInfo.h>
#include <FBase_StringConverter.h>
#include <FGrp_BitmapImpl.h>
#include <FUi_IAccessibilityListener.h>
__pAccessibilityElement = new (std::nothrow) _AccessibilityElement(true);
SysTryReturn(NID_SHELL, __pAccessibilityElement, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
- __pAccessibilityElement->SetLabel(GetProviderName());
- __pAccessibilityElement->SetTrait(L"Dynamic box. Double tap and hold to move.");
-// __pAccessibilityElement->SetTraitWithStringId(const char* id)
+ unique_ptr<AppWidgetProviderInfo> pAppWidgetProviderInfo(GetAppWidgetProviderInfoN());
+ if (pAppWidgetProviderInfo.get())
+ {
+ __pAccessibilityElement->SetLabel(pAppWidgetProviderInfo->GetDisplayName());
+ }
+ else
+ {
+ __pAccessibilityElement->SetLabel(GetProviderName());
+ }
+ __pAccessibilityElement->SetTrait(L"Dynamic box");
__pAccessibilityElement->SetName(L"AppWidgetView");
__pAccessibilityElement->SetBounds(FloatRectangle(0.0f, 0.0f, rect.width, rect.height));
pAccessibilityContainer->AddElement(*__pAccessibilityElement);
}
}
+void
+_AppWidgetView::UpdateAccessibility(const Tizen::Base::String& text)
+{
+ if (__pAccessibilityElement)
+ {
+ if (text.IsEmpty() == true)
+ {
+ unique_ptr<AppWidgetProviderInfo> pAppWidgetProviderInfo(GetAppWidgetProviderInfoN());
+ if (pAppWidgetProviderInfo.get())
+ {
+ __pAccessibilityElement->SetLabel(pAppWidgetProviderInfo->GetDisplayName());
+ SysLog(NID_SHELL, "%ls", pAppWidgetProviderInfo->GetDisplayName().GetPointer());
+ }
+ else
+ {
+ __pAccessibilityElement->SetLabel(GetProviderName());
+ SysLog(NID_SHELL, "%ls", GetProviderName().GetPointer());
+ }
+ }
+ else
+ {
+ __pAccessibilityElement->SetLabel(text);
+ SysLog(NID_SHELL, "%ls", text.GetPointer());
+ }
+ }
+}
+
bool
_AppWidgetView::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
{