From 045e25612ffa0d6edf2c9dba1a3139e8f870a3bf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Fri, 17 Dec 2021 13:53:21 +0100 Subject: [PATCH] [NUI][AT-SPI] Add AccessibilityStatesNotifyMode The different semantics of the second (bool) parameter of EmitAccessibilityStatesChangedEvent and NotifyAccessibilityStatesChange can cause confusion, since it represents the new value of the state in the former method, and the notification strategy in the latter. This change introduces an enum type for the second parameter of NotifyAccessibilityStatesChange to express its effect more clearly. --- src/Tizen.NUI.Components/Controls/Menu.cs | 4 ++-- .../Controls/Navigation/Navigator.cs | 4 ++-- .../src/public/BaseComponents/ViewAccessibility.cs | 6 +++--- .../public/BaseComponents/ViewAccessibilityEnum.cs | 20 ++++++++++++++++++++ .../public/BaseComponents/TSViewAccessibility.cs | 2 +- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/Tizen.NUI.Components/Controls/Menu.cs b/src/Tizen.NUI.Components/Controls/Menu.cs index dcd4e97..ee50541 100755 --- a/src/Tizen.NUI.Components/Controls/Menu.cs +++ b/src/Tizen.NUI.Components/Controls/Menu.cs @@ -395,7 +395,7 @@ namespace Tizen.NUI.Components CalculateSizeAndPosition(); RegisterDefaultLabel(); - NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, true); + NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Recursive); } /// @@ -407,7 +407,7 @@ namespace Tizen.NUI.Components { Hide(); UnregisterDefaultLabel(); - NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, true); + NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Recursive); Dispose(); } diff --git a/src/Tizen.NUI.Components/Controls/Navigation/Navigator.cs b/src/Tizen.NUI.Components/Controls/Navigation/Navigator.cs index 7b53588..3193e2a 100755 --- a/src/Tizen.NUI.Components/Controls/Navigation/Navigator.cs +++ b/src/Tizen.NUI.Components/Controls/Navigation/Navigator.cs @@ -827,14 +827,14 @@ namespace Tizen.NUI.Components View curHighlightedView = Accessibility.Accessibility.Instance.GetCurrentlyHighlightedView(); if (curHighlightedView != null) { - curHighlightedView.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, false); + curHighlightedView.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Single); } } if (appearedPage != null) { appearedPage.RegisterDefaultLabel(); - appearedPage.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, false); + appearedPage.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Single); } } diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs index 0cdd1cc..dd4533b 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs @@ -335,11 +335,11 @@ namespace Tizen.NUI.BaseComponents /// If recursive is true, all children of the Accessibility object will also re-emit the states. /// /// Accessibility States - /// Flag to point if notifications of children's state would be sent + /// Controls the notification strategy [EditorBrowsable(EditorBrowsableState.Never)] - public void NotifyAccessibilityStatesChange(AccessibilityStates states, bool recursive) + public void NotifyAccessibilityStatesChange(AccessibilityStates states, AccessibilityStatesNotifyMode notifyMode) { - Interop.ControlDevel.DaliToolkitDevelControlNotifyAccessibilityStatesChange(SwigCPtr, (ulong)states, Convert.ToInt32(recursive)); + Interop.ControlDevel.DaliToolkitDevelControlNotifyAccessibilityStatesChange(SwigCPtr, (ulong)states, (int)notifyMode); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs index d8be3e2..9ab448c 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs @@ -564,6 +564,26 @@ namespace Tizen.NUI.BaseComponents }; /// + /// Notify mode for AccessibilityStates. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public enum AccessibilityStatesNotifyMode + { + /// + /// Notify about the change of states in this object only. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Justification = "Single is the most descriptive name for sending a single event")] + Single = 0, + + /// + /// Notify about the change of states in this object and all its children. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + Recursive = 1, + } + + /// /// The relation between accessible objects. /// [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/BaseComponents/TSViewAccessibility.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/BaseComponents/TSViewAccessibility.cs index 0b8f522..afe1034 100755 --- a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/BaseComponents/TSViewAccessibility.cs +++ b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/BaseComponents/TSViewAccessibility.cs @@ -457,7 +457,7 @@ namespace Tizen.NUI.Devel.Tests Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); - testingTarget.NotifyAccessibilityStatesChange(AccessibilityStates.Busy, true); + testingTarget.NotifyAccessibilityStatesChange(AccessibilityStates.Busy, AccessibilityStatesNotifyMode.Recursive); var result = testingTarget.GetAccessibilityStates(); tlog.Debug(tag, "AccessibilityStates : " + result); -- 2.7.4