Fix Slider crashes

This commit is contained in:
Prathamesh More 2022-06-12 20:56:58 +05:30
parent 8f56663059
commit 6f12a7b24a
6 changed files with 15 additions and 37 deletions

View file

@ -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())

View file

@ -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

View file

@ -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())

View file

@ -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 =

View file

@ -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(

View file

@ -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