Page preview jump to page in Reader

This commit is contained in:
Jobobby04
2022-11-06 00:33:11 -04:00
parent d5ee2905ee
commit c96efe1819
9 changed files with 78 additions and 18 deletions
@@ -124,6 +124,7 @@ fun MangaScreen(
onMergedSettingsClicked: () -> Unit,
onMergeClicked: () -> Unit,
onMergeWithAnotherClicked: () -> Unit,
onOpenPagePreview: (Int) -> Unit,
onMorePreviewsClicked: () -> Unit,
// SY <--
@@ -165,6 +166,7 @@ fun MangaScreen(
onMergedSettingsClicked = onMergedSettingsClicked,
onMergeClicked = onMergeClicked,
onMergeWithAnotherClicked = onMergeWithAnotherClicked,
onOpenPagePreview = onOpenPagePreview,
onMorePreviewsClicked = onMorePreviewsClicked,
// SY <--
onMultiBookmarkClicked = onMultiBookmarkClicked,
@@ -202,6 +204,7 @@ fun MangaScreen(
onMergedSettingsClicked = onMergedSettingsClicked,
onMergeClicked = onMergeClicked,
onMergeWithAnotherClicked = onMergeWithAnotherClicked,
onOpenPagePreview = onOpenPagePreview,
onMorePreviewsClicked = onMorePreviewsClicked,
// SY <--
onMultiBookmarkClicked = onMultiBookmarkClicked,
@@ -246,6 +249,7 @@ private fun MangaScreenSmallImpl(
onMergedSettingsClicked: () -> Unit,
onMergeClicked: () -> Unit,
onMergeWithAnotherClicked: () -> Unit,
onOpenPagePreview: (Int) -> Unit,
onMorePreviewsClicked: () -> Unit,
// SY <--
@@ -460,7 +464,11 @@ private fun MangaScreenSmallImpl(
key = MangaScreenItem.CHAPTER_PREVIEW,
contentType = MangaScreenItem.CHAPTER_PREVIEW,
) {
PagePreviews(state.pagePreviewsState, onMorePreviewsClicked)
PagePreviews(
pagePreviewState = state.pagePreviewsState,
onOpenPage = onOpenPagePreview,
onMorePreviewsClicked = onMorePreviewsClicked,
)
}
}
// SY <--
@@ -519,6 +527,7 @@ fun MangaScreenLargeImpl(
onMergedSettingsClicked: () -> Unit,
onMergeClicked: () -> Unit,
onMergeWithAnotherClicked: () -> Unit,
onOpenPagePreview: (Int) -> Unit,
onMorePreviewsClicked: () -> Unit,
// SY <--
@@ -695,7 +704,11 @@ fun MangaScreenLargeImpl(
)
}
if (state.pagePreviewsState !is PagePreviewState.Unused) {
PagePreviews(state.pagePreviewsState, onMorePreviewsClicked)
PagePreviews(
pagePreviewState = state.pagePreviewsState,
onOpenPage = onOpenPagePreview,
onMorePreviewsClicked = onMorePreviewsClicked,
)
}
// SY <--
}
@@ -1,5 +1,6 @@
package eu.kanade.presentation.manga.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxWithConstraints
@@ -29,7 +30,11 @@ import eu.kanade.tachiyomi.ui.manga.PagePreviewState
import exh.util.floor
@Composable
fun PagePreviews(pagePreviewState: PagePreviewState, onMorePreviewsClicked: () -> Unit) {
fun PagePreviews(
pagePreviewState: PagePreviewState,
onOpenPage: (Int) -> Unit,
onMorePreviewsClicked: () -> Unit,
) {
when (pagePreviewState) {
PagePreviewState.Loading -> {
Box(modifier = Modifier.height(60.dp).fillMaxWidth(), contentAlignment = Alignment.Center) {
@@ -52,6 +57,7 @@ fun PagePreviews(pagePreviewState: PagePreviewState, onMorePreviewsClicked: () -
PagePreview(
modifier = Modifier.weight(1F),
page = page,
onOpenPage = onOpenPage,
)
}
}
@@ -70,9 +76,11 @@ fun PagePreviews(pagePreviewState: PagePreviewState, onMorePreviewsClicked: () -
fun PagePreview(
modifier: Modifier,
page: PagePreview,
onOpenPage: (Int) -> Unit,
) {
Column(
modifier
.clickable { onOpenPage(page.index - 1) }
.padding(horizontal = 8.dp, vertical = 4.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.SpaceBetween,