Fix Slider crashes
This commit is contained in:
parent
8f56663059
commit
6f12a7b24a
6 changed files with 15 additions and 37 deletions
|
@ -14,12 +14,10 @@
|
|||
*/
|
||||
package code.name.monkey.retromusic.activities
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.graphics.PorterDuff
|
||||
import android.os.Bundle
|
||||
import android.view.animation.LinearInterpolator
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
|
||||
|
@ -27,7 +25,6 @@ import code.name.monkey.retromusic.databinding.ActivityDriveModeBinding
|
|||
import code.name.monkey.retromusic.db.toSongEntity
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.drawAboveSystemBars
|
||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
|
||||
import code.name.monkey.retromusic.glide.BlurTransformation
|
||||
import code.name.monkey.retromusic.glide.GlideApp
|
||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||
|
@ -246,12 +243,10 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
|
|||
}
|
||||
|
||||
override fun onUpdateProgressViews(progress: Int, total: Int) {
|
||||
binding.progressSlider.valueTo = total.toFloat()
|
||||
|
||||
val animator = ObjectAnimator.ofFloat(binding.progressSlider, "value", progress.toFloat())
|
||||
animator.duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
|
||||
animator.interpolator = LinearInterpolator()
|
||||
animator.start()
|
||||
binding.progressSlider.run {
|
||||
valueTo = total.toFloat()
|
||||
value = progress.toFloat().coerceIn(valueFrom, valueTo)
|
||||
}
|
||||
|
||||
binding.songTotalTime.text = MusicUtil.getReadableDurationString(total.toLong())
|
||||
binding.songCurrentProgress.text = MusicUtil.getReadableDurationString(progress.toLong())
|
||||
|
|
|
@ -82,9 +82,8 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi
|
|||
if (seekBar == null) {
|
||||
progressSlider?.valueTo = total.toFloat()
|
||||
|
||||
if (progress > total) return
|
||||
progressSlider?.value = progress.toFloat()
|
||||
|
||||
progressSlider?.value =
|
||||
progress.toFloat().coerceIn(progressSlider?.valueFrom, progressSlider?.valueTo)
|
||||
} else {
|
||||
seekBar?.max = total
|
||||
|
||||
|
|
|
@ -35,7 +35,6 @@ import code.name.monkey.retromusic.R
|
|||
import code.name.monkey.retromusic.databinding.FragmentCirclePlayerBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener
|
||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
|
||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
|
||||
import code.name.monkey.retromusic.fragments.base.goToAlbum
|
||||
import code.name.monkey.retromusic.fragments.base.goToArtist
|
||||
|
@ -315,16 +314,10 @@ class CirclePlayerFragment : AbsPlayerFragment(R.layout.fragment_circle_player),
|
|||
val progressSlider = binding.progressSlider
|
||||
progressSlider.valueTo = total.toFloat()
|
||||
|
||||
if (isSeeking) {
|
||||
progressSlider.value = progress.toFloat()
|
||||
} else {
|
||||
progressAnimator =
|
||||
ObjectAnimator.ofFloat(progressSlider, "value", progress.toFloat()).apply {
|
||||
duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
|
||||
interpolator = LinearInterpolator()
|
||||
start()
|
||||
}
|
||||
}
|
||||
progressSlider.valueTo = total.toFloat()
|
||||
|
||||
progressSlider.value =
|
||||
progress.toFloat().coerceIn(progressSlider.valueFrom, progressSlider.valueTo)
|
||||
|
||||
binding.songTotalTime.text = MusicUtil.getReadableDurationString(total.toLong())
|
||||
binding.songCurrentProgress.text = MusicUtil.getReadableDurationString(progress.toLong())
|
||||
|
|
|
@ -22,7 +22,6 @@ import android.graphics.PorterDuff
|
|||
import android.graphics.drawable.AnimatedVectorDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.animation.LinearInterpolator
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
|
@ -41,7 +40,6 @@ import code.name.monkey.retromusic.adapter.song.PlayingQueueAdapter
|
|||
import code.name.monkey.retromusic.databinding.FragmentGradientPlayerBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener
|
||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
|
||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
|
||||
import code.name.monkey.retromusic.fragments.base.goToAlbum
|
||||
import code.name.monkey.retromusic.fragments.base.goToArtist
|
||||
|
@ -573,16 +571,9 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play
|
|||
val progressSlider = binding.playbackControlsFragment.progressSlider
|
||||
progressSlider.valueTo = total.toFloat()
|
||||
|
||||
if (isSeeking) {
|
||||
progressSlider.value = progress.toFloat()
|
||||
} else {
|
||||
progressAnimator =
|
||||
ObjectAnimator.ofFloat(progressSlider, "value", progress.toFloat()).apply {
|
||||
duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
|
||||
interpolator = LinearInterpolator()
|
||||
start()
|
||||
}
|
||||
}
|
||||
progressSlider.value =
|
||||
progress.toFloat().coerceIn(progressSlider.valueFrom, progressSlider.valueTo)
|
||||
|
||||
binding.playbackControlsFragment.songTotalTime.text =
|
||||
MusicUtil.getReadableDurationString(total.toLong())
|
||||
binding.playbackControlsFragment.songCurrentProgress.text =
|
||||
|
|
|
@ -19,7 +19,7 @@ class AudioFader {
|
|||
if (duration == 0) {
|
||||
return null
|
||||
}
|
||||
return ValueAnimator.ofFloat(1f, 0f).apply {
|
||||
return ValueAnimator.ofFloat(0f, 1f).apply {
|
||||
this.duration = duration.toLong()
|
||||
addUpdateListener { animation: ValueAnimator ->
|
||||
fadeInMp.setVolume(
|
||||
|
|
|
@ -303,7 +303,7 @@ class CrossFadePlayer(context: Context) : LocalPlayback(context) {
|
|||
|
||||
private fun switchPlayer() {
|
||||
getNextPlayer()?.start()
|
||||
crossFade(getCurrentPlayer()!!, getNextPlayer()!!)
|
||||
crossFade(getNextPlayer()!!, getCurrentPlayer()!!)
|
||||
currentPlayer =
|
||||
if (currentPlayer == CurrentPlayer.PLAYER_ONE || currentPlayer == CurrentPlayer.NOT_SET) {
|
||||
CurrentPlayer.PLAYER_TWO
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue