Skip to content

Commit 6feddfc

Browse files
committed
update coerceInDisabledRange function implementation
1 parent 9364e25 commit 6feddfc

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

slider/src/main/java/io/monstarlab/mosaic/slider/SliderState.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class SliderState(
6666
internal val offsetAsFraction: Float
6767
get() = if (totalWidth == 0f) 0f else {
6868
val valueFraction = value.valueToFraction(range)
69-
valueDistribution.inverse(valueFraction)
69+
valueDistribution.inverse(valueFraction).coerceIn(0f,1f)
7070
}
7171

7272

@@ -136,8 +136,10 @@ public class SliderState(
136136
}
137137

138138
private fun Float.coerceIntoDisabledRange(): Float {
139-
if (disabledRange.isEmpty()) return this
139+
if (disabledRange.isEmpty() || !disabledRange.contains(this)) return this
140+
if (this - disabledRange.start < disabledRange.endInclusive - this) disabledRange.start else disabledRange.endInclusive
140141
// check if disabled range is on the left or right
142+
141143
return if (disabledRange.start == range.start) {
142144
coerceAtLeast(disabledRange.endInclusive)
143145
} else {

0 commit comments

Comments
 (0)