From 70ac37ca8adad5400eda8cc78b483a78d5421116 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Fri, 7 Jan 2022 14:10:45 -0700 Subject: [PATCH] playback: fix seekbar crash Fix an edge case where if the total duration ends up being zero, the app will end up crashing at the playback screen. Thank SeekBar for deciding that it's perfectly okay to crash instead of decay gracefully when valueTo is 0. --- .../main/java/org/oxycblt/auxio/playback/PlaybackSeekBar.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackSeekBar.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackSeekBar.kt index 5b03030d8..f64e3b1f2 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackSeekBar.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackSeekBar.kt @@ -29,6 +29,7 @@ import org.oxycblt.auxio.databinding.ViewSeekBarBinding import org.oxycblt.auxio.music.toDuration import org.oxycblt.auxio.util.inflater import org.oxycblt.auxio.util.resolveAttr +import kotlin.math.max /** * A custom view that bundles together a seekbar with a current duration and a total duration. @@ -67,7 +68,7 @@ class PlaybackSeekBar @JvmOverloads constructor( } fun setDuration(seconds: Long) { - binding.seekBar.valueTo = seconds.toFloat() + binding.seekBar.valueTo = max(seconds.toFloat(), 1f) binding.playbackSongDuration.text = seconds.toDuration() }