From c37bf67d20bc7737040a8c652e17af5d3dac1376 Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Wed, 10 Aug 2022 14:06:51 +0200 Subject: [PATCH] Make play/pause animation easing linear (#183) --- .../it/vfsfitvnm/vimusic/ui/views/player/Controls.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/player/Controls.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/player/Controls.kt index 104e9a3..90ff7ed 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/player/Controls.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/ui/views/player/Controls.kt @@ -1,8 +1,11 @@ package it.vfsfitvnm.vimusic.ui.views.player import android.text.format.DateUtils +import androidx.compose.animation.core.LinearEasing +import androidx.compose.animation.core.animateDp import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.tween +import androidx.compose.animation.core.updateTransition import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -72,7 +75,13 @@ fun Controls( Database.likedAt(mediaItem.mediaId).distinctUntilChanged() }.collectAsState(initial = null, context = Dispatchers.IO) - val playPauseRoundness by animateDpAsState(if (shouldBePlaying) 32.dp else 16.dp, tween()) + val shouldBePlayingTransition = updateTransition(shouldBePlaying, label = "shouldBePlaying") + + val playPauseRoundness by shouldBePlayingTransition.animateDp( + transitionSpec = { tween(durationMillis = 100, easing = LinearEasing) }, + label = "playPauseRoundness", + targetValueByState = { if (it) 32.dp else 16.dp } + ) Column( horizontalAlignment = Alignment.CenterHorizontally,