mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-12 03:58:56 +01:00
Adjust screen transitions (#8707)
* Fade transition between main navigation tabs * Shared axis X between screen stacks Activity transition is using a "close enough" shared axis X xml animation
This commit is contained in:
@@ -1,10 +1,5 @@
|
||||
package eu.kanade.presentation.util
|
||||
|
||||
import androidx.compose.animation.ExitTransition
|
||||
import androidx.compose.animation.core.LinearEasing
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.animation.fadeIn
|
||||
import androidx.compose.animation.with
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -29,15 +24,3 @@ class Padding {
|
||||
|
||||
val MaterialTheme.padding: Padding
|
||||
get() = Padding()
|
||||
|
||||
object Transition {
|
||||
|
||||
/**
|
||||
* Mimics [eu.kanade.tachiyomi.ui.base.controller.OneWayFadeChangeHandler]
|
||||
*/
|
||||
val OneWayFade = fadeIn(
|
||||
animationSpec = tween(
|
||||
easing = LinearEasing,
|
||||
),
|
||||
) with ExitTransition.None
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package eu.kanade.presentation.util
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.ProvidableCompositionLocal
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import cafe.adriel.voyager.core.stack.StackEvent
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import cafe.adriel.voyager.transitions.ScreenTransition
|
||||
import soup.compose.material.motion.animation.materialSharedAxisX
|
||||
import soup.compose.material.motion.animation.rememberSlideDistance
|
||||
|
||||
/**
|
||||
* For invoking back press to the parent activity
|
||||
@@ -12,3 +17,17 @@ val LocalBackPress: ProvidableCompositionLocal<(() -> Unit)?> = staticCompositio
|
||||
interface Tab : cafe.adriel.voyager.navigator.tab.Tab {
|
||||
suspend fun onReselect(navigator: Navigator) {}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun DefaultNavigatorScreenTransition(navigator: Navigator) {
|
||||
val slideDistance = rememberSlideDistance()
|
||||
ScreenTransition(
|
||||
navigator = navigator,
|
||||
transition = {
|
||||
materialSharedAxisX(
|
||||
forward = navigator.lastEvent != StackEvent.Pop,
|
||||
slideDistance = slideDistance,
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user