diff --git a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt index dd5e8b0c0..bf0a26338 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt @@ -34,6 +34,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shadow import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import eu.kanade.presentation.manga.components.MangaCover @@ -41,16 +42,22 @@ import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.BadgeGroup import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.util.selectedBackground -import tachiyomi.domain.manga.model.MangaCover as DomainMangaCover +import tachiyomi.domain.manga.model.MangaCover as MangaCoverModel object CommonMangaItemDefaults { val GridHorizontalSpacer = 4.dp val GridVerticalSpacer = 4.dp + @Suppress("ConstPropertyName") const val BrowseFavoriteCoverAlpha = 0.34f } -private val ContinueReadingButtonSize = 28.dp +private val ContinueReadingButtonSizeSmall = 28.dp +private val ContinueReadingButtonSizeLarge = 32.dp + +private val ContinueReadingButtonIconSizeSmall = 16.dp +private val ContinueReadingButtonIconSizeLarge = 20.dp + private val ContinueReadingButtonGridPadding = 6.dp private val ContinueReadingButtonListSpacing = 8.dp @@ -62,7 +69,7 @@ private const val GridSelectedCoverAlpha = 0.76f */ @Composable fun MangaCompactGridItem( - coverData: DomainMangaCover, + coverData: MangaCoverModel, onClick: () -> Unit, onLongClick: () -> Unit, isSelected: Boolean = false, @@ -110,10 +117,12 @@ fun MangaCompactGridItem( ) } else if (onClickContinueReading != null) { ContinueReadingButton( + size = ContinueReadingButtonSizeLarge, + iconSize = ContinueReadingButtonIconSizeLarge, + onClick = onClickContinueReading, modifier = Modifier .padding(ContinueReadingButtonGridPadding) .align(Alignment.BottomEnd), - onClickContinueReading = onClickContinueReading, ) } }, @@ -162,11 +171,13 @@ private fun BoxScope.CoverTextOverlay( ) if (onClickContinueReading != null) { ContinueReadingButton( + size = ContinueReadingButtonSizeSmall, + iconSize = ContinueReadingButtonIconSizeSmall, + onClick = onClickContinueReading, modifier = Modifier.padding( end = ContinueReadingButtonGridPadding, bottom = ContinueReadingButtonGridPadding, ), - onClickContinueReading = onClickContinueReading, ) } } @@ -177,7 +188,7 @@ private fun BoxScope.CoverTextOverlay( */ @Composable fun MangaComfortableGridItem( - coverData: DomainMangaCover, + coverData: MangaCoverModel, title: String, onClick: () -> Unit, onLongClick: () -> Unit, @@ -222,10 +233,12 @@ fun MangaComfortableGridItem( content = { if (onClickContinueReading != null) { ContinueReadingButton( + size = ContinueReadingButtonSizeLarge, + iconSize = ContinueReadingButtonIconSizeLarge, + onClick = onClickContinueReading, modifier = Modifier .padding(ContinueReadingButtonGridPadding) .align(Alignment.BottomEnd), - onClickContinueReading = onClickContinueReading, ) } }, @@ -337,14 +350,14 @@ private fun GridItemSelectable( private fun Modifier.selectedOutline( isSelected: Boolean, color: Color, -) = this.drawBehind { if (isSelected) drawRect(color = color) } +) = drawBehind { if (isSelected) drawRect(color = color) } /** * Layout of list item. */ @Composable fun MangaListItem( - coverData: DomainMangaCover, + coverData: MangaCoverModel, title: String, onClick: () -> Unit, onLongClick: () -> Unit, @@ -397,8 +410,10 @@ fun MangaListItem( BadgeGroup(content = badge) if (onClickContinueReading != null) { ContinueReadingButton( - modifier = Modifier.padding(start = ContinueReadingButtonListSpacing), - onClickContinueReading = onClickContinueReading, + size = ContinueReadingButtonSizeSmall, + iconSize = ContinueReadingButtonIconSizeSmall, + onClick = onClickContinueReading, + modifier = Modifier.padding(start = ContinueReadingButtonListSpacing) ) } } @@ -406,23 +421,25 @@ fun MangaListItem( @Composable private fun ContinueReadingButton( + size: Dp, + iconSize: Dp, + onClick: () -> Unit, modifier: Modifier = Modifier, - onClickContinueReading: () -> Unit, ) { Box(modifier = modifier) { FilledIconButton( - onClick = onClickContinueReading, - modifier = Modifier.size(ContinueReadingButtonSize), + onClick = onClick, shape = MaterialTheme.shapes.small, colors = IconButtonDefaults.filledIconButtonColors( containerColor = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.9f), contentColor = contentColorFor(MaterialTheme.colorScheme.primaryContainer), ), + modifier = Modifier.size(size) ) { Icon( imageVector = Icons.Filled.PlayArrow, contentDescription = stringResource(MR.strings.action_resume), - modifier = Modifier.size(16.dp), + modifier = Modifier.size(iconSize), ) } }