From 6f12a7b24ad37fcbb77734b0ea2619d264bc7335 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sun, 12 Jun 2022 20:56:58 +0530 Subject: [PATCH] Fix Slider crashes --- .../retromusic/activities/DriveModeActivity.kt | 13 ++++--------- .../fragments/base/AbsPlayerControlsFragment.kt | 5 ++--- .../player/circle/CirclePlayerFragment.kt | 15 ++++----------- .../player/gradient/GradientPlayerFragment.kt | 15 +++------------ .../name/monkey/retromusic/service/AudioFader.kt | 2 +- .../monkey/retromusic/service/CrossFadePlayer.kt | 2 +- 6 files changed, 15 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/DriveModeActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/DriveModeActivity.kt index 1fb04f469..9c6178aaf 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/DriveModeActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/DriveModeActivity.kt @@ -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()) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt index 0a12de582..78659cd50 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt @@ -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 diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt index 4186bad55..c98c4fdd6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt @@ -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()) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt index 048751906..e79bd784d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt @@ -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 = diff --git a/app/src/main/java/code/name/monkey/retromusic/service/AudioFader.kt b/app/src/main/java/code/name/monkey/retromusic/service/AudioFader.kt index 009b0c40d..bdb58f3fe 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/AudioFader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/AudioFader.kt @@ -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( diff --git a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt index da27e6b36..64ba695a9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/CrossFadePlayer.kt @@ -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