@@ -93,19 +93,24 @@ public class SliderState(
93
93
subrange : ClosedFloatingPointRange <Float >,
94
94
): ClosedFloatingPointRange <Float > {
95
95
if (subrange.isEmpty()) return subrange
96
- val start = valueDistribution.interpolate(range.start)
97
- val end = valueDistribution.interpolate(range.endInclusive)
98
- val subStart = valueDistribution.interpolate(subrange.start)
99
- val subEnd = valueDistribution.interpolate(subrange.endInclusive)
100
- return calcFraction(start, end, subStart).. calcFraction(start, end, subEnd)
96
+ val interpolatedRange = valueDistribution.interpolate(range)
97
+ val interpolatedSubrange = valueDistribution.interpolate(subrange)
98
+ return calcFraction(
99
+ interpolatedRange.start,
100
+ interpolatedRange.endInclusive,
101
+ interpolatedSubrange.start,
102
+ ).. calcFraction(
103
+ interpolatedRange.start,
104
+ interpolatedRange.endInclusive,
105
+ interpolatedSubrange.endInclusive,
106
+ )
101
107
}
102
108
103
109
private fun scaleToUserValue (offset : Float ): Float {
104
- val rangeStart = valueDistribution.interpolate(range.start)
105
- val rangeEnd = valueDistribution.interpolate(range.endInclusive)
106
- val scaledUserValue = scale(0f , totalWidth, offset, rangeStart, rangeEnd)
110
+ val range = valueDistribution.interpolate(range)
111
+ val scaledUserValue = scale(0f , totalWidth, offset, range.start, range.endInclusive)
107
112
return valueDistribution.inverse(scaledUserValue)
108
- .coerceIn(range)
113
+ .coerceIn(this . range)
109
114
.coerceIntoDisabledRange()
110
115
}
111
116
@@ -121,10 +126,15 @@ public class SliderState(
121
126
122
127
private fun scaleToOffset (value : Float ): Float {
123
128
val coerced = value.coerceIn(range).coerceIntoDisabledRange()
124
- val rangeStart = valueDistribution.interpolate(range.start)
125
- val rangeEnd = valueDistribution.interpolate(range.endInclusive)
129
+ val interpolatedRange = valueDistribution.interpolate(range)
126
130
val interpolated = valueDistribution.interpolate(coerced)
127
- return scale(rangeStart, rangeEnd, interpolated, 0f , totalWidth)
131
+ return scale(
132
+ interpolatedRange.start,
133
+ interpolatedRange.endInclusive,
134
+ interpolated,
135
+ 0f ,
136
+ totalWidth,
137
+ )
128
138
}
129
139
}
130
140
0 commit comments