[NUI][AT-SPI] Fix accessibility activation for RecyclerViewItem
authorArtur Świgoń <a.swigon@samsung.com>
Fri, 14 Jan 2022 15:41:06 +0000 (16:41 +0100)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 19 Jan 2022 05:29:33 +0000 (14:29 +0900)
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.

src/Tizen.NUI.Components/Controls/Button.Internal.cs
src/Tizen.NUI.Components/Controls/Button.cs
src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs
src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.cs
src/Tizen.NUI/src/public/BaseComponents/CustomView.cs

index 178f572..e767d32 100644 (file)
@@ -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;
-        }
     }
 }
index 6a8035f..501d902 100755 (executable)
@@ -855,6 +855,8 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 6 </since_tizen>
         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;
         }
 
         /// <summary>
index 8033ebf..abbff85 100755 (executable)
@@ -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;
-        }
-
-
-
         /// <summary>
         /// Called when the ViewItem need to be updated
         /// </summary>
index c4ee1bb..9a32bab 100755 (executable)
@@ -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;
         }
 
         /// <summary>
index 4c8275b..5488d86 100755 (executable)
@@ -461,7 +461,17 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         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);
         }
 
         /// <summary>
@@ -576,7 +586,7 @@ namespace Tizen.NUI.BaseComponents
         /// <returns>True if this control can perform accessibility activation.</returns>
         internal virtual bool OnAccessibilityActivated()
         {
-            return false;
+            return OnKeyboardEnter();
         }
 
         /// <summary>