diff --git a/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt b/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt index 042fcede9..b20d6c47b 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt @@ -63,7 +63,7 @@ class AnimatedMaterialButton : RippleFixMaterialButton { animator?.cancel() animator = anim - .genericFloat(currentCornerRadiusRatio, targetRadius, ::updateCornerRadiusRatio) + .genericFloat(currentCornerRadiusRatio, targetRadius, 0, ::updateCornerRadiusRatio) .also { it.start() } } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/Animations.kt b/app/src/main/java/org/oxycblt/auxio/ui/Animations.kt index 9a5b1a898..20f6befe5 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/Animations.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/Animations.kt @@ -29,11 +29,13 @@ data class Anim(val interpolator: TimeInterpolator, val duration: Long) { inline fun genericFloat( from: Float, to: Float, + delayMs: Long = 0, crossinline update: (Float) -> Unit ): ValueAnimator = ValueAnimator.ofFloat(from, to).apply { - duration = duration - interpolator = interpolator + startDelay = delayMs + duration = this@Anim.duration + interpolator = this@Anim.interpolator addUpdateListener { update(animatedValue as Float) } } } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/MultiToolbar.kt b/app/src/main/java/org/oxycblt/auxio/ui/MultiToolbar.kt index 931bf358d..ee0609bf1 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/MultiToolbar.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/MultiToolbar.kt @@ -96,7 +96,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr } } val inAnimator = - inAnim.genericFloat(toView.alpha, 1f) { + inAnim.genericFloat(toView.alpha, 1f, outAnim.duration) { toView.apply { scaleX = 1 - 0.05f * (1 - it) scaleY = 1 - 0.05f * (1 - it)