From f1d54c5497f2ddfdf7d33d7f918382e51d3214e4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Fri, 14 Jan 2022 16:41:06 +0100 Subject: [PATCH] [NUI][AT-SPI] Fix accessibility activation for RecyclerViewItem Because the implementation of RecyclerViewItem.OnAccessibilityActivated would look identical to Button.OnAccessibilityActivated, to avoid code duplication, accessibility activation is reimplemented in terms of OnKeyboardEnter for all controls, just like it is done in DALi. --- .../Controls/Button.Internal.cs | 18 ------------ src/Tizen.NUI.Components/Controls/Button.cs | 6 ++-- .../RecyclerView/Item/RecyclerViewItem.Internal.cs | 34 ---------------------- .../Controls/RecyclerView/Item/RecyclerViewItem.cs | 6 ++-- .../src/public/BaseComponents/CustomView.cs | 14 +++++++-- 5 files changed, 20 insertions(+), 58 deletions(-) diff --git a/src/Tizen.NUI.Components/Controls/Button.Internal.cs b/src/Tizen.NUI.Components/Controls/Button.Internal.cs index 178f572..e767d32 100644 --- a/src/Tizen.NUI.Components/Controls/Button.Internal.cs +++ b/src/Tizen.NUI.Components/Controls/Button.Internal.cs @@ -452,23 +452,5 @@ namespace Tizen.NUI.Components ClickEvent?.Invoke(this, nestedEventArgs); Clicked?.Invoke(this, eventArgs); } - - internal override bool OnAccessibilityActivated() - { - using (var key = new Key()) - { - key.State = Key.StateType.Down; - key.KeyPressedName = "Return"; - - // Touch Down - OnKey(key); - - // Touch Up - key.State = Key.StateType.Up; - OnKey(key); - } - - return true; - } } } diff --git a/src/Tizen.NUI.Components/Controls/Button.cs b/src/Tizen.NUI.Components/Controls/Button.cs index 6a8035f..501d902 100755 --- a/src/Tizen.NUI.Components/Controls/Button.cs +++ b/src/Tizen.NUI.Components/Controls/Button.cs @@ -855,6 +855,8 @@ namespace Tizen.NUI.Components /// 6 public override bool OnKey(Key key) { + bool clicked = false; + if (!IsEnabled || null == key) { return false; @@ -872,7 +874,7 @@ namespace Tizen.NUI.Components { if (key.KeyPressedName == "Return") { - bool clicked = isPressed && IsEnabled; + clicked = isPressed && IsEnabled; isPressed = false; @@ -892,7 +894,7 @@ namespace Tizen.NUI.Components } } } - return base.OnKey(key); + return base.OnKey(key) || clicked; } /// diff --git a/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs b/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs index 8033ebf..abbff85 100755 --- a/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs +++ b/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs @@ -58,40 +58,6 @@ namespace Tizen.NUI.Components } } - internal override bool OnAccessibilityActivated() - { - if (!IsEnabled) - { - return false; - } - - // Touch Down - IsPressed = true; - UpdateState(); - - // Touch Up - bool clicked = IsPressed && IsEnabled; - IsPressed = false; - - if (IsSelectable) - { - //IsSelected = !IsSelected; - } - else - { - UpdateState(); - } - - if (clicked) - { - ClickedEventArgs eventArgs = new ClickedEventArgs(); - OnClickedInternal(eventArgs); - } - return true; - } - - - /// /// Called when the ViewItem need to be updated /// diff --git a/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.cs b/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.cs index c4ee1bb..9a32bab 100755 --- a/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.cs +++ b/src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.cs @@ -191,6 +191,8 @@ namespace Tizen.NUI.Components [EditorBrowsable(EditorBrowsableState.Never)] public override bool OnKey(Key key) { + bool clicked = false; + if (!IsEnabled || null == key || null == BindingContext) { return false; @@ -208,7 +210,7 @@ namespace Tizen.NUI.Components { if (key.KeyPressedName == "Return") { - bool clicked = IsPressed && IsEnabled; + clicked = IsPressed && IsEnabled; IsPressed = false; @@ -246,7 +248,7 @@ namespace Tizen.NUI.Components UpdateState(); } } - return base.OnKey(key); + return base.OnKey(key) || clicked; } /// diff --git a/src/Tizen.NUI/src/public/BaseComponents/CustomView.cs b/src/Tizen.NUI/src/public/BaseComponents/CustomView.cs index 4c8275b..5488d86 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/CustomView.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/CustomView.cs @@ -461,7 +461,17 @@ namespace Tizen.NUI.BaseComponents /// 3 public virtual bool OnKeyboardEnter() { - return false; + using var key = new Key(); + + key.State = Key.StateType.Down; + key.KeyPressedName = "Return"; + + // Touch Down + OnKey(key); + + // Touch Up + key.State = Key.StateType.Up; + return OnKey(key); } /// @@ -576,7 +586,7 @@ namespace Tizen.NUI.BaseComponents /// True if this control can perform accessibility activation. internal virtual bool OnAccessibilityActivated() { - return false; + return OnKeyboardEnter(); } /// -- 2.7.4