Skip to content

Commit

Permalink
Fixes #9 setting initial values in xml
Browse files Browse the repository at this point in the history
  • Loading branch information
mirrajabi committed Dec 21, 2018
1 parent 68ef09a commit 51f2ebe
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
Expand Up @@ -171,6 +171,16 @@ open class RangeSeekBar : View {
maxThumbOffset = extractMaxThumbOffset(a)
trackRoundedCaps = extractTrackRoundedCaps(a)
trackSelectedRoundedCaps = extractTrackSelectedRoundedCaps(a)
val initialMinThumbValue = extractInitialMinThumbValue(a)
val initialMaxThumbValue = extractInitialMaxThumbValue(a)
if (initialMinThumbValue != -1) {
minThumbValue = max(0, initialMinThumbValue)
keepMinWindow(THUMB_MIN)
}
if (initialMaxThumbValue != -1) {
maxThumbValue = min(max, initialMaxThumbValue)
keepMinWindow(THUMB_MAX)
}
} finally {
a.recycle()
}
Expand Down Expand Up @@ -211,7 +221,7 @@ open class RangeSeekBar : View {
val width = width - paddingLeft - paddingRight
val mx = when {
event.x < paddingLeft -> 0
paddingLeft <= event.x && event.x <=(this.width - paddingRight) -> ((event.x - paddingLeft) / width * max).toInt()
paddingLeft <= event.x && event.x <= (this.width - paddingRight) -> ((event.x - paddingLeft) / width * max).toInt()
else -> max
}
val leftThumbX = (paddingLeft + (minThumbValue / max.toFloat() * width)).toInt()
Expand Down Expand Up @@ -279,7 +289,7 @@ open class RangeSeekBar : View {
* Updates the value of minimum thumb and redraws the view.
*/
fun setMinThumbValue(value: Int) {
minThumbValue = value
minThumbValue = max(value, 0)
keepMinWindow(THUMB_MIN)
invalidate()
}
Expand All @@ -293,7 +303,7 @@ open class RangeSeekBar : View {
* Updates the value of maximum thumb and redraws the view.
*/
fun setMaxThumbValue(value: Int) {
maxThumbValue = value
maxThumbValue = min(value, max)
keepMinWindow(THUMB_MAX)
invalidate()
}
Expand Down Expand Up @@ -425,6 +435,14 @@ open class RangeSeekBar : View {
return a.getInteger(R.styleable.RangeSeekBar_rsb_max, 100)
}

private fun extractInitialMinThumbValue(a: TypedArray): Int {
return a.getInteger(R.styleable.RangeSeekBar_rsb_initialMinThumbValue, -1)
}

private fun extractInitialMaxThumbValue(a: TypedArray): Int {
return a.getInteger(R.styleable.RangeSeekBar_rsb_initialMaxThumbValue, -1)
}

private fun extractMinThumbOffset(a: TypedArray): Point {
val x = a.getDimensionPixelSize(R.styleable.RangeSeekBar_rsb_minThumbOffsetHorizontal, 0)
val y = a.getDimensionPixelSize(R.styleable.RangeSeekBar_rsb_minThumbOffsetVertical, 0)
Expand Down
2 changes: 2 additions & 0 deletions rangeseekbar/src/main/res/values/attrs.xml
Expand Up @@ -15,6 +15,8 @@
<attr name="rsb_maxThumbDrawable" format="reference" />
<attr name="rsb_minRange" format="integer" />
<attr name="rsb_max" format="integer" />
<attr name="rsb_initialMinThumbValue" format="integer" />
<attr name="rsb_initialMaxThumbValue" format="integer" />
<attr name="rsb_trackRoundedCaps" format="boolean" />
<attr name="rsb_trackSelectedRoundedCaps" format="boolean" />
</declare-styleable>
Expand Down
4 changes: 4 additions & 0 deletions sample/src/main/res/layout/activity_main.xml
Expand Up @@ -18,8 +18,11 @@
<com.innovattic.rangeseekbar.RangeSeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:rsb_initialMaxThumbValue="40"
app:rsb_initialMinThumbValue="20"
app:rsb_maxThumbDrawable="@drawable/thumb_circle"
app:rsb_maxThumbOffsetHorizontal="2dp"
app:rsb_minRange="10"
app:rsb_minThumbDrawable="@drawable/thumb_circle"
app:rsb_minThumbOffsetHorizontal="-2dp"
app:rsb_trackColor="#888"
Expand All @@ -42,6 +45,7 @@
<com.innovattic.rangeseekbar.RangeSeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:rsb_initialMaxThumbValue="15"
app:rsb_max="20"
app:rsb_maxThumbDrawable="@drawable/thumb_circle"
app:rsb_maxThumbOffsetHorizontal="8dp"
Expand Down

0 comments on commit 51f2ebe

Please sign in to comment.