From 4c3309177e07c582df98a7d0ccd2cda71c31fd7d Mon Sep 17 00:00:00 2001 From: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Date: Wed, 28 Sep 2022 09:20:10 +0700 Subject: [PATCH] MangaScreen: Adjust insets (#8097) I should have done this when Scaffold was rebased (cherry picked from commit 6b1d597d34f903fabfc65ac9cd6bd561fc38f505) --- .../components/MangaBottomActionMenu.kt | 7 ++++- .../kanade/presentation/manga/MangaScreen.kt | 30 ++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt b/app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt index c56eedb1b..7e488d5aa 100644 --- a/app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt +++ b/app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt @@ -12,7 +12,12 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.WindowInsetsSides +import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.ZeroCornerSize @@ -93,7 +98,7 @@ fun MangaBottomActionMenu( } Row( modifier = Modifier - .navigationBarsPadding() + .padding(WindowInsets.navigationBars.only(WindowInsetsSides.Bottom).asPaddingValues()) .padding(horizontal = 8.dp, vertical = 12.dp), ) { if (onBookmarkClicked != null) { diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index 54fe579c9..cd8486371 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -69,7 +69,6 @@ import eu.kanade.presentation.manga.components.PagePreviews import eu.kanade.presentation.manga.components.SearchMetadataChips import eu.kanade.presentation.util.isScrolledToEnd import eu.kanade.presentation.util.isScrollingUp -import eu.kanade.presentation.util.plus import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.source.Source @@ -269,7 +268,6 @@ private fun MangaScreenSmallImpl( onAllChapterSelected: (Boolean) -> Unit, onInvertSelection: () -> Unit, ) { - val layoutDirection = LocalLayoutDirection.current val chapterListState = rememberLazyListState() val chapters = remember(state) { state.processedChapters.toList() } @@ -287,6 +285,8 @@ private fun MangaScreenSmallImpl( BackHandler(onBack = internalOnBackPressed) Scaffold( + modifier = Modifier + .padding(WindowInsets.navigationBars.only(WindowInsetsSides.Horizontal).asPaddingValues()), topBar = { val firstVisibleItemIndex by remember { derivedStateOf { chapterListState.firstVisibleItemIndex } @@ -361,11 +361,6 @@ private fun MangaScreenSmallImpl( } }, ) { contentPadding -> - val noTopContentPadding = PaddingValues( - start = contentPadding.calculateStartPadding(layoutDirection), - end = contentPadding.calculateEndPadding(layoutDirection), - bottom = contentPadding.calculateBottomPadding(), - ) + WindowInsets.navigationBars.only(WindowInsetsSides.Bottom).asPaddingValues() val topPadding = contentPadding.calculateTopPadding() SwipeRefresh( @@ -383,12 +378,13 @@ private fun MangaScreenSmallImpl( VerticalFastScroller( listState = chapterListState, topContentPadding = topPadding, - endContentPadding = noTopContentPadding.calculateEndPadding(layoutDirection), ) { LazyColumn( modifier = Modifier.fillMaxHeight(), state = chapterListState, - contentPadding = noTopContentPadding, + contentPadding = PaddingValues( + bottom = contentPadding.calculateBottomPadding(), + ), ) { item( key = MangaScreenItem.INFO_BOX, @@ -663,8 +659,6 @@ fun MangaScreenLargeImpl( }, ) { contentPadding -> BoxWithConstraints(modifier = Modifier.fillMaxSize()) { - val withNavBarContentPadding = contentPadding + - WindowInsets.navigationBars.only(WindowInsetsSides.Bottom).asPaddingValues() val firstWidth = (maxWidth / 2).coerceAtMost(450.dp) val secondWidth = maxWidth - firstWidth @@ -672,8 +666,7 @@ fun MangaScreenLargeImpl( modifier = Modifier .align(Alignment.TopStart) .width(firstWidth) - .verticalScroll(rememberScrollState()) - .padding(bottom = withNavBarContentPadding.calculateBottomPadding()), + .verticalScroll(rememberScrollState()), ) { MangaInfoBox( windowWidthSizeClass = windowWidthSizeClass, @@ -738,13 +731,15 @@ fun MangaScreenLargeImpl( modifier = Modifier .align(Alignment.TopEnd) .width(secondWidth), - topContentPadding = withNavBarContentPadding.calculateTopPadding(), - endContentPadding = withNavBarContentPadding.calculateEndPadding(layoutDirection), + topContentPadding = contentPadding.calculateTopPadding(), ) { LazyColumn( modifier = Modifier.fillMaxHeight(), state = chapterListState, - contentPadding = withNavBarContentPadding, + contentPadding = PaddingValues( + top = contentPadding.calculateTopPadding(), + bottom = contentPadding.calculateBottomPadding(), + ), ) { item( key = MangaScreenItem.CHAPTER_HEADER, @@ -773,6 +768,7 @@ fun MangaScreenLargeImpl( @Composable private fun SharedMangaBottomActionMenu( selected: List, + modifier: Modifier = Modifier, onMultiBookmarkClicked: (List, bookmarked: Boolean) -> Unit, onMultiMarkAsReadClicked: (List, markAsRead: Boolean) -> Unit, onMarkPreviousAsReadClicked: (Chapter) -> Unit, @@ -782,7 +778,7 @@ private fun SharedMangaBottomActionMenu( ) { MangaBottomActionMenu( visible = selected.isNotEmpty(), - modifier = Modifier.fillMaxWidth(fillFraction), + modifier = modifier.fillMaxWidth(fillFraction), onBookmarkClicked = { onMultiBookmarkClicked.invoke(selected.map { it.chapter }, true) }.takeIf { selected.any { !it.chapter.bookmark } },