Revert "Fix banners-related issues" (#9186)

Revert "Fix banners-related issues (#9143)"

This reverts commit 63048d2f0b.
This commit is contained in:
Ivan Iskandar 2023-03-10 10:10:49 +07:00 committed by GitHub
parent ed32a511e7
commit c0f94ae8af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 29 deletions

View File

@ -69,8 +69,7 @@ fun AppStateBanners(
val mainInsets = WindowInsets.statusBars val mainInsets = WindowInsets.statusBars
val mainInsetsTop = mainInsets.getTop(density) val mainInsetsTop = mainInsets.getTop(density)
SubcomposeLayout(modifier = modifier) { constraints -> SubcomposeLayout(modifier = modifier) { constraints ->
val indexingId = if (indexing) 0 else -1 val indexingPlaceable = subcompose(0) {
val indexingPlaceable = subcompose(indexingId) {
AnimatedVisibility( AnimatedVisibility(
visible = indexing, visible = indexing,
enter = expandVertically(), enter = expandVertically(),
@ -83,8 +82,7 @@ fun AppStateBanners(
}.fastMap { it.measure(constraints) } }.fastMap { it.measure(constraints) }
val indexingHeight = indexingPlaceable.fastMaxBy { it.height }?.height ?: 0 val indexingHeight = indexingPlaceable.fastMaxBy { it.height }?.height ?: 0
val downloadedId = if (indexing) 1 else 0 val downloadedOnlyPlaceable = subcompose(1) {
val downloadedOnlyPlaceable = subcompose(downloadedId) {
AnimatedVisibility( AnimatedVisibility(
visible = downloadedOnlyMode, visible = downloadedOnlyMode,
enter = expandVertically(), enter = expandVertically(),
@ -98,12 +96,7 @@ fun AppStateBanners(
}.fastMap { it.measure(constraints) } }.fastMap { it.measure(constraints) }
val downloadedOnlyHeight = downloadedOnlyPlaceable.fastMaxBy { it.height }?.height ?: 0 val downloadedOnlyHeight = downloadedOnlyPlaceable.fastMaxBy { it.height }?.height ?: 0
val incognitoId = when { val incognitoPlaceable = subcompose(2) {
indexing && downloadedOnlyMode -> 3
indexing || downloadedOnlyMode -> 2
else -> 1
}
val incognitoPlaceable = subcompose(incognitoId) {
AnimatedVisibility( AnimatedVisibility(
visible = incognitoMode, visible = incognitoMode,
enter = expandVertically(), enter = expandVertically(),

View File

@ -3,7 +3,6 @@ package eu.kanade.presentation.util
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.ProvidableCompositionLocal
import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.Modifier
import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.core.screen.ScreenKey import cafe.adriel.voyager.core.screen.ScreenKey
import cafe.adriel.voyager.core.screen.uniqueScreenKey import cafe.adriel.voyager.core.screen.uniqueScreenKey
@ -34,7 +33,7 @@ interface AssistContentScreen {
} }
@Composable @Composable
fun DefaultNavigatorScreenTransition(navigator: Navigator, modifier: Modifier = Modifier) { fun DefaultNavigatorScreenTransition(navigator: Navigator) {
val slideDistance = rememberSlideDistance() val slideDistance = rememberSlideDistance()
ScreenTransition( ScreenTransition(
navigator = navigator, navigator = navigator,
@ -44,6 +43,5 @@ fun DefaultNavigatorScreenTransition(navigator: Navigator, modifier: Modifier =
slideDistance = slideDistance, slideDistance = slideDistance,
) )
}, },
modifier = modifier,
) )
} }

View File

@ -6,6 +6,7 @@ import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.expandVertically import androidx.compose.animation.expandVertically
import androidx.compose.animation.shrinkVertically import androidx.compose.animation.shrinkVertically
import androidx.compose.animation.with import androidx.compose.animation.with
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.consumeWindowInsets
@ -112,21 +113,24 @@ object HomeScreen : Screen() {
}, },
contentWindowInsets = WindowInsets(0), contentWindowInsets = WindowInsets(0),
) { contentPadding -> ) { contentPadding ->
AnimatedContent( Box(
modifier = Modifier modifier = Modifier
.padding(contentPadding) .padding(contentPadding)
.consumeWindowInsets(contentPadding), .consumeWindowInsets(contentPadding),
targetState = tabNavigator.current, ) {
transitionSpec = { AnimatedContent(
materialFadeThroughIn(initialScale = 1f, durationMillis = TabFadeDuration) with targetState = tabNavigator.current,
materialFadeThroughOut(durationMillis = TabFadeDuration) transitionSpec = {
}, materialFadeThroughIn(initialScale = 1f, durationMillis = TabFadeDuration) with
content = { materialFadeThroughOut(durationMillis = TabFadeDuration)
tabNavigator.saveableState(key = "currentTab", it) { },
it.Content() content = {
} tabNavigator.saveableState(key = "currentTab", it) {
}, it.Content()
) }
},
)
}
} }
} }

View File

@ -13,6 +13,7 @@ import android.widget.Toast
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.BackHandler import androidx.activity.compose.BackHandler
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.consumeWindowInsets
@ -221,14 +222,15 @@ class MainActivity : BaseActivity() {
}, },
contentWindowInsets = scaffoldInsets, contentWindowInsets = scaffoldInsets,
) { contentPadding -> ) { contentPadding ->
// Shows current screen
// Consume insets already used by app state banners // Consume insets already used by app state banners
DefaultNavigatorScreenTransition( Box(
navigator = navigator,
modifier = Modifier modifier = Modifier
.padding(contentPadding) .padding(contentPadding)
.consumeWindowInsets(contentPadding), .consumeWindowInsets(contentPadding),
) ) {
// Shows current screen
DefaultNavigatorScreenTransition(navigator = navigator)
}
} }
// Pop source-related screens when incognito mode is turned off // Pop source-related screens when incognito mode is turned off