diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt index e688d9d2..3d0e4888 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt @@ -2,6 +2,11 @@ package dev.msfjarvis.claw.android.ui.decorations import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.FastOutLinearInEasing +import androidx.compose.animation.core.LinearOutSlowInEasing +import androidx.compose.animation.core.tween +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOutVertically import androidx.compose.material3.Icon import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBarItem @@ -11,8 +16,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter import androidx.navigation.NavController import dev.msfjarvis.claw.android.ui.navigation.Destinations -import dev.msfjarvis.claw.android.ui.slideInAnimation -import dev.msfjarvis.claw.android.ui.slideOutAnimation + +private const val AnimationDuration = 100 @Composable fun ClawNavigationBar( @@ -23,8 +28,18 @@ fun ClawNavigationBar( ) { AnimatedVisibility( visible = isVisible, - enter = slideInAnimation(), - exit = slideOutAnimation(), + enter = + slideInVertically( + // Enters by sliding up from offset 0 to fullHeight. + initialOffsetY = { fullHeight -> fullHeight }, + animationSpec = tween(durationMillis = AnimationDuration, easing = LinearOutSlowInEasing), + ), + exit = + slideOutVertically( + // Exits by sliding up from offset 0 to -fullHeight. + targetOffsetY = { fullHeight -> fullHeight }, + animationSpec = tween(durationMillis = AnimationDuration, easing = FastOutLinearInEasing), + ), modifier = Modifier, ) { NavigationBar(modifier = modifier) { diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt index 78e90d53..c6ddd39d 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt @@ -4,13 +4,6 @@ import android.content.Context import android.content.ContextWrapper import android.os.Build import androidx.activity.ComponentActivity -import androidx.compose.animation.EnterTransition -import androidx.compose.animation.ExitTransition -import androidx.compose.animation.core.FastOutLinearInEasing -import androidx.compose.animation.core.LinearOutSlowInEasing -import androidx.compose.animation.core.tween -import androidx.compose.animation.slideInVertically -import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.ColorScheme import androidx.compose.material3.dynamicDarkColorScheme @@ -32,24 +25,6 @@ import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime -private const val AnimationDuration = 100 - -fun slideInAnimation(): EnterTransition { - return slideInVertically( - // Enters by sliding up from offset 0 to fullHeight. - initialOffsetY = { fullHeight -> fullHeight }, - animationSpec = tween(durationMillis = AnimationDuration, easing = LinearOutSlowInEasing), - ) -} - -fun slideOutAnimation(): ExitTransition { - return slideOutVertically( - // Exits by sliding up from offset 0 to -fullHeight. - targetOffsetY = { fullHeight -> fullHeight }, - animationSpec = tween(durationMillis = AnimationDuration, easing = FastOutLinearInEasing), - ) -} - fun Context.getActivity(): ComponentActivity? { return when (this) { is ComponentActivity -> this