Fix content cut off in home screen
Closes #2141 (cherry picked from commit 209e982fe4f1da5d1d49cfbfdd178625ee3c70f4) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt
This commit is contained in:
parent
e82fd99a09
commit
649a19ec57
@ -1,6 +1,5 @@
|
||||
package eu.kanade.tachiyomi.ui.home
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.activity.compose.PredictiveBackHandler
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
@ -12,7 +11,8 @@ import androidx.compose.animation.togetherWith
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.layout.consumeWindowInsets
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Badge
|
||||
import androidx.compose.material3.BadgedBox
|
||||
import androidx.compose.material3.Icon
|
||||
@ -30,7 +30,6 @@ import androidx.compose.runtime.produceState
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.graphicsLayer
|
||||
import androidx.compose.ui.semantics.contentDescription
|
||||
@ -89,9 +88,6 @@ object HomeScreen : Screen() {
|
||||
@Suppress("ConstPropertyName")
|
||||
private const val TabNavigatorKey = "HomeTabs"
|
||||
|
||||
@SuppressLint("ComposeCompositionLocalUsage")
|
||||
val LocalHomeScreenInsetsProvider = staticCompositionLocalOf { WindowInsets(0.dp) }
|
||||
|
||||
private val TABS = listOf(
|
||||
LibraryTab,
|
||||
UpdatesTab,
|
||||
@ -154,50 +150,17 @@ object HomeScreen : Screen() {
|
||||
}
|
||||
}
|
||||
},
|
||||
contentWindowInsets = WindowInsets(0),
|
||||
) { contentPadding ->
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.padding(contentPadding)
|
||||
.consumeWindowInsets(contentPadding)
|
||||
.graphicsLayer {
|
||||
scaleX = scale
|
||||
scaleY = scale
|
||||
}
|
||||
.windowInsetsPadding(
|
||||
remember {
|
||||
object : WindowInsets {
|
||||
override fun getLeft(density: Density, layoutDirection: LayoutDirection): Int {
|
||||
return with(density) {
|
||||
contentPadding.calculateLeftPadding(layoutDirection).roundToPx()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getRight(density: Density, layoutDirection: LayoutDirection): Int {
|
||||
return with(density) {
|
||||
contentPadding.calculateRightPadding(layoutDirection).roundToPx()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getBottom(density: Density): Int = 0
|
||||
|
||||
override fun getTop(density: Density): Int = 0
|
||||
}
|
||||
},
|
||||
),
|
||||
},
|
||||
) {
|
||||
val insets = remember {
|
||||
object : WindowInsets {
|
||||
override fun getBottom(density: Density): Int {
|
||||
return with(density) { contentPadding.calculateBottomPadding().roundToPx() }
|
||||
}
|
||||
|
||||
override fun getTop(density: Density): Int {
|
||||
return with(density) { contentPadding.calculateTopPadding().roundToPx() }
|
||||
}
|
||||
|
||||
override fun getLeft(density: Density, layoutDirection: LayoutDirection): Int = 0
|
||||
|
||||
override fun getRight(density: Density, layoutDirection: LayoutDirection): Int = 0
|
||||
}
|
||||
}
|
||||
AnimatedContent(
|
||||
targetState = tabNavigator.current,
|
||||
transitionSpec = {
|
||||
@ -206,10 +169,8 @@ object HomeScreen : Screen() {
|
||||
},
|
||||
label = "tabContent",
|
||||
) {
|
||||
CompositionLocalProvider(LocalHomeScreenInsetsProvider provides insets) {
|
||||
tabNavigator.saveableState(key = "currentTab", it) {
|
||||
it.Content()
|
||||
}
|
||||
tabNavigator.saveableState(key = "currentTab", it) {
|
||||
it.Content()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user