mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	MangaScreen: Adjust insets (#8097)
I should have done this when Scaffold was rebased
This commit is contained in:
		| @@ -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 | ||||
| @@ -86,7 +91,7 @@ fun MangaBottomActionMenu( | ||||
|             } | ||||
|             Row( | ||||
|                 modifier = Modifier | ||||
|                     .navigationBarsPadding() | ||||
|                     .padding(WindowInsets.navigationBars.only(WindowInsetsSides.Bottom).asPaddingValues()) | ||||
|                     .padding(horizontal = 8.dp, vertical = 12.dp), | ||||
|             ) { | ||||
|                 if (onBookmarkClicked != null) { | ||||
|   | ||||
| @@ -66,7 +66,6 @@ import eu.kanade.presentation.manga.components.MangaChapterListItem | ||||
| import eu.kanade.presentation.manga.components.MangaInfoBox | ||||
| 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.SourceManager | ||||
| @@ -207,7 +206,6 @@ private fun MangaScreenSmallImpl( | ||||
|     onAllChapterSelected: (Boolean) -> Unit, | ||||
|     onInvertSelection: () -> Unit, | ||||
| ) { | ||||
|     val layoutDirection = LocalLayoutDirection.current | ||||
|     val chapterListState = rememberLazyListState() | ||||
|  | ||||
|     val chapters = remember(state) { state.processedChapters.toList() } | ||||
| @@ -222,6 +220,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 } | ||||
| @@ -287,11 +287,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( | ||||
| @@ -309,12 +304,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, | ||||
| @@ -518,8 +514,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 | ||||
|  | ||||
| @@ -527,8 +521,7 @@ fun MangaScreenLargeImpl( | ||||
|                     modifier = Modifier | ||||
|                         .align(Alignment.TopStart) | ||||
|                         .width(firstWidth) | ||||
|                         .verticalScroll(rememberScrollState()) | ||||
|                         .padding(bottom = withNavBarContentPadding.calculateBottomPadding()), | ||||
|                         .verticalScroll(rememberScrollState()), | ||||
|                 ) { | ||||
|                     MangaInfoBox( | ||||
|                         windowWidthSizeClass = windowWidthSizeClass, | ||||
| @@ -564,13 +557,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, | ||||
| @@ -599,6 +594,7 @@ fun MangaScreenLargeImpl( | ||||
| @Composable | ||||
| private fun SharedMangaBottomActionMenu( | ||||
|     selected: List<ChapterItem>, | ||||
|     modifier: Modifier = Modifier, | ||||
|     onMultiBookmarkClicked: (List<Chapter>, bookmarked: Boolean) -> Unit, | ||||
|     onMultiMarkAsReadClicked: (List<Chapter>, markAsRead: Boolean) -> Unit, | ||||
|     onMarkPreviousAsReadClicked: (Chapter) -> Unit, | ||||
| @@ -608,7 +604,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 } }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user