diff --git a/Habitica/res/layout/stats_slider_view.xml b/Habitica/res/layout/stats_slider_view.xml
index eb0b15114..e767251aa 100644
--- a/Habitica/res/layout/stats_slider_view.xml
+++ b/Habitica/res/layout/stats_slider_view.xml
@@ -1,5 +1,6 @@
+ android:layout_weight="1"
+ android:maxHeight="4dp"
+ android:minHeight="4dp"/>
-
\ No newline at end of file
diff --git a/Habitica/res/values/styles.xml b/Habitica/res/values/styles.xml
index f7223f944..02b2e8ba7 100644
--- a/Habitica/res/values/styles.xml
+++ b/Habitica/res/values/styles.xml
@@ -422,5 +422,4 @@
-
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/StatsSliderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/StatsSliderView.kt
index e95278078..d931a56a5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/StatsSliderView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/StatsSliderView.kt
@@ -5,6 +5,8 @@ import android.content.res.ColorStateList
import android.graphics.PorterDuff
import android.os.Build
import android.support.v4.content.ContextCompat
+import android.text.Editable
+import android.text.TextWatcher
import android.util.AttributeSet
import android.view.Gravity
import android.view.View
@@ -57,6 +59,27 @@ class StatsSliderView(context: Context, attrs: AttributeSet?) : LinearLayout(con
statsSeekBar.thumb = thumbDrawable
}
+ valueEditText.addTextChangedListener(object: TextWatcher {
+ override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
+
+ override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
+
+ override fun afterTextChanged(s: Editable?) {
+ val newValue = try {
+ s.toString().toInt()
+ } catch (e: NumberFormatException) {
+ 0
+ }
+ if (newValue != currentValue && newValue < maxValue) {
+ currentValue = newValue
+ allocateAction?.invoke(currentValue)
+ } else if (newValue > maxValue) {
+ valueEditText.setText(currentValue.toString())
+ }
+ }
+
+ })
+
statsSeekBar.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
currentValue = progress
@@ -65,11 +88,9 @@ class StatsSliderView(context: Context, attrs: AttributeSet?) : LinearLayout(con
}
}
- override fun onStartTrackingTouch(seekBar: SeekBar?) {
- }
+ override fun onStartTrackingTouch(seekBar: SeekBar?) {}
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- }
+ override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})
currentValue = 0