From 649a19ec576a3299999979f6590fee9d3724e68c Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sun, 25 May 2025 02:03:56 +0600 Subject: [PATCH] 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 --- .../eu/kanade/tachiyomi/ui/home/HomeScreen.kt | 55 +++---------------- 1 file changed, 8 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt index 5c2686573..e7e1c4277 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt @@ -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() } } }