From 4a0c83b0a23bbe5178792fc8f2028daf2878252b Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Mon, 20 Mar 2023 00:34:57 +0530 Subject: [PATCH] fix: Adjust the cross-fade duration according to the Global animator speed --- .../name/monkey/retromusic/service/AudioFader.kt | 12 +++++++++--- .../monkey/retromusic/service/CrossFadePlayer.kt | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) 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 3548a8c27..69ec73746 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 @@ -2,21 +2,27 @@ package code.name.monkey.retromusic.service import android.animation.Animator import android.animation.ValueAnimator +import android.content.Context import android.media.MediaPlayer +import android.provider.Settings import androidx.core.animation.doOnEnd import code.name.monkey.retromusic.service.playback.Playback import code.name.monkey.retromusic.util.PreferenceUtil class AudioFader { companion object { - fun createFadeAnimator( + context: Context, fadeInMp: MediaPlayer, fadeOutMp: MediaPlayer, endAction: (animator: Animator) -> Unit, /* Code to run when Animator Ends*/ ): Animator? { - val duration = PreferenceUtil.crossFadeDuration * 1000 - if (duration == 0) { + // Get Global animator scale + val animScale = Settings.Global.getFloat(context.contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1f) + + // Set duration according to the global animation scale, so cross-fade actually lasts for the duration set by the user + val duration = (PreferenceUtil.crossFadeDuration * 1000 ) / animScale + if (duration == 0F) { return null } return ValueAnimator.ofFloat(0f, 1f).apply { 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 dfea2c408..06590c269 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 @@ -236,7 +236,7 @@ class CrossFadePlayer(context: Context) : LocalPlayback(context) { private fun crossFade(fadeInMp: MediaPlayer, fadeOutMp: MediaPlayer) { isCrossFading = true - crossFadeAnimator = createFadeAnimator(fadeInMp, fadeOutMp) { + crossFadeAnimator = createFadeAnimator(context, fadeInMp, fadeOutMp) { crossFadeAnimator = null durationListener.start() isCrossFading = false