0
0
mirror of https://github.com/MuntashirAkon/Metro.git synced 2024-09-20 03:52:20 +02:00

fix: Adjust the cross-fade duration according to the Global animator speed

This commit is contained in:
Prathamesh More 2023-03-20 00:34:57 +05:30
parent bf165c7eff
commit 4a0c83b0a2
2 changed files with 10 additions and 4 deletions

View File

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

View File

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