From d34f6fb0ad234296a80a27ead24d5a2d2eaa7e5b Mon Sep 17 00:00:00 2001 From: imashnake0 Date: Mon, 5 Feb 2024 03:32:43 -0500 Subject: [PATCH] Not squishy animation (bounds) --- .../animite/features/media/MediaPage.kt | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/imashnake/animite/features/media/MediaPage.kt b/app/src/main/java/com/imashnake/animite/features/media/MediaPage.kt index b9d2ef7a..f248eb02 100644 --- a/app/src/main/java/com/imashnake/animite/features/media/MediaPage.kt +++ b/app/src/main/java/com/imashnake/animite/features/media/MediaPage.kt @@ -6,6 +6,8 @@ import android.net.Uri import android.text.method.LinkMovementMethod import android.util.Log import android.widget.TextView +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.tween import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -170,6 +172,17 @@ fun MediaPage( } ) + // TODO: https://developer.android.com/jetpack/compose/animation/quick-guide#concurrent-animations + val offset by animateDpAsState( + targetValue = if (scrollState.value == 0) { + 0.dp + } else { + dimensionResource(R.dimen.media_card_height) - dimensionResource(R.dimen.media_details_height) + }, + animationSpec = tween(durationMillis = 750), + label = "media_card_height" + ) + MediaSmall( image = media.coverImage, label = null, @@ -181,11 +194,15 @@ fun MediaPage( top = dimensionResource(R.dimen.media_details_height) + LocalPaddings.current.medium + dimensionResource(coreR.dimen.banner_height) - - WindowInsets.statusBars.asPaddingValues().calculateTopPadding() - - dimensionResource(R.dimen.media_card_height), + - WindowInsets.statusBars + .asPaddingValues() + .calculateTopPadding() + - dimensionResource(R.dimen.media_card_height) + + offset, start = LocalPaddings.current.large ) .landscapeCutoutPadding() + .height(dimensionResource(R.dimen.media_card_height) - offset) .width(dimensionResource(R.dimen.media_card_width)) ) }