[NUI] Update to check Min/Max value and emit ValueChanged event in one place
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Fri, 10 Jun 2022 06:38:34 +0000 (15:38 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 21 Jun 2022 10:27:08 +0000 (19:27 +0900)
- Checking minimum and maximum values and emitting `ValueChanged`
 in BindableProperty of `CurrentValue`.

Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
src/Tizen.NUI.Components/Controls/Slider.Internal.cs
src/Tizen.NUI.Components/Controls/Slider.cs

index bcf477f..52c4927 100755 (executable)
@@ -230,7 +230,7 @@ namespace Tizen.NUI.Components
                 {
                     WidthResizePolicy = ResizePolicyType.Fixed,
                     HeightResizePolicy = ResizePolicyType.Fixed,
-                   AccessibilityHidden = true,
+                    AccessibilityHidden = true,
                 };
                 this.Add(lowIndicatorImage);
             }
index 13aea98..8ea9d9b 100755 (executable)
@@ -177,7 +177,23 @@ namespace Tizen.NUI.Components
 
                 if (newValue != null)
                 {
-                    instance.curValue = (float)newValue;
+                    float value = (float)newValue;
+                    if (value < instance.minValue)
+                    {
+                        instance.curValue = instance.minValue;
+                    }
+                    else if (value > instance.maxValue)
+                    {
+                        instance.curValue = instance.maxValue;
+                    }
+                    else
+                    {
+                        instance.curValue = value;
+                    }
+
+                    instance.sliderValueChangedHandler?.Invoke(instance, new SliderValueChangedEventArgs {
+                        CurrentValue = instance.curValue
+                        });
                     if (Accessibility.Accessibility.IsEnabled && instance.IsHighlighted)
                     {
                         instance.EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Value);
@@ -1460,16 +1476,13 @@ namespace Tizen.NUI.Components
                             isPressed = true;
                             if (IsDiscrete)
                             {
-                                float value = CurrentValue - discreteValue;
-                                CurrentValue = value < MinValue ? MinValue : value;
+                                float value = curValue - discreteValue;
+                                CurrentValue = value;
                             }
                             else
                             {
                                 CurrentValue -= 1;
                             }
-                            sliderValueChangedHandler?.Invoke(this, new SliderValueChangedEventArgs {
-                                CurrentValue = curValue
-                                });
                         }
                         return true; // Consumed
                     }
@@ -1484,16 +1497,13 @@ namespace Tizen.NUI.Components
                             isPressed = true;
                             if (IsDiscrete)
                             {
-                                float value = CurrentValue + discreteValue;
-                                CurrentValue = value > MaxValue ? MaxValue : value;
+                                float value = curValue + discreteValue;
+                                CurrentValue = value;
                             }
                             else
                             {
                                 CurrentValue += 1;
                             }
-                            sliderValueChangedHandler?.Invoke(this, new SliderValueChangedEventArgs {
-                                CurrentValue = curValue
-                                });
                         }
                         return true; // Consumed
                     }
@@ -1621,10 +1631,6 @@ namespace Tizen.NUI.Components
             if (current >= MinValue && current <= MaxValue)
             {
                 CurrentValue = current;
-                if (sliderValueChangedHandler != null)
-                {
-                    sliderValueChangedHandler(this, new SliderValueChangedEventArgs { CurrentValue = current });
-                }
                 return true;
             }
 
@@ -1762,13 +1768,6 @@ namespace Tizen.NUI.Components
             {
                 this.CurrentValue = CalculateDiscreteValue(this.CurrentValue);
             }
-
-            if (sliderValueChangedHandler != null)
-            {
-                SliderValueChangedEventArgs args = new SliderValueChangedEventArgs();
-                args.CurrentValue = this.CurrentValue;
-                sliderValueChangedHandler(this, args);
-            }
         }
 
         private bool OnTouchEventForTrack(object source, TouchEventArgs e)
@@ -1780,7 +1779,7 @@ namespace Tizen.NUI.Components
 
             if (this.FocusableInTouch == false && editMode == false)
             {
-                isFocused = false;   
+                isFocused = false;
             }
 
             PointStateType state = e.Touch.GetState(0);
@@ -1856,13 +1855,6 @@ namespace Tizen.NUI.Components
                 {
                     this.CurrentValue = CalculateDiscreteValue(this.CurrentValue);
                 }
-
-                if (null != sliderValueChangedHandler)
-                {
-                    SliderValueChangedEventArgs args = new SliderValueChangedEventArgs();
-                    args.CurrentValue = this.CurrentValue;
-                    sliderValueChangedHandler(this, args);
-                }
             }
         }