From fc2c3f6f6f51b384f96baafb5aafb15b37613b34 Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 20 Jan 2024 01:10:50 +0100 Subject: [PATCH] feat: try new navigation transitions Signed-off-by: Infi --- .../chat/revolt/activities/MainActivity.kt | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/chat/revolt/activities/MainActivity.kt b/app/src/main/java/chat/revolt/activities/MainActivity.kt index ce4f24f0..32fbddf9 100644 --- a/app/src/main/java/chat/revolt/activities/MainActivity.kt +++ b/app/src/main/java/chat/revolt/activities/MainActivity.kt @@ -13,6 +13,7 @@ import androidx.compose.animation.AnimatedContentTransitionScope import androidx.compose.animation.core.EaseInOutExpo import androidx.compose.animation.core.FiniteAnimationSpec import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme @@ -254,6 +255,9 @@ val RevoltTweenFloat: FiniteAnimationSpec = tween(400, easing = EaseInOut val RevoltTweenDp: FiniteAnimationSpec = tween(400, easing = EaseInOutExpo) val RevoltTweenColour: FiniteAnimationSpec = tween(400, easing = EaseInOutExpo) +val NavTweenInt: FiniteAnimationSpec = tween(350, easing = EaseInOutExpo) +val NavTweenFloat: FiniteAnimationSpec = tween(350, easing = EaseInOutExpo) + @Composable fun AppEntrypoint( windowSizeClass: WindowSizeClass, @@ -278,26 +282,30 @@ fun AppEntrypoint( enterTransition = { slideIntoContainer( AnimatedContentTransitionScope.SlideDirection.Left, - animationSpec = RevoltTweenInt - ) + animationSpec = NavTweenInt, + initialOffset = { it / 3 } + ) + fadeIn(animationSpec = NavTweenFloat) }, exitTransition = { slideOutOfContainer( AnimatedContentTransitionScope.SlideDirection.Left, - animationSpec = RevoltTweenInt - ) + fadeOut(animationSpec = RevoltTweenFloat) + animationSpec = NavTweenInt, + targetOffset = { it / 3 } + ) + fadeOut(animationSpec = NavTweenFloat) }, popEnterTransition = { slideIntoContainer( AnimatedContentTransitionScope.SlideDirection.Right, - animationSpec = RevoltTweenInt - ) + animationSpec = NavTweenInt, + initialOffset = { it / 3 } + ) + fadeIn(animationSpec = NavTweenFloat) }, popExitTransition = { slideOutOfContainer( AnimatedContentTransitionScope.SlideDirection.Right, - animationSpec = RevoltTweenInt - ) + animationSpec = NavTweenInt, + targetOffset = { it / 2 } + ) + fadeOut(animationSpec = NavTweenFloat) } ) { composable("default") {