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 22ef88cbc..6fc9c458e 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -394,7 +394,7 @@ private fun MangaScreenSmallImpl( ChapterHeader( enabled = chapters.fastAll { !it.selected }, chapterCount = chapters.size, - missingChapters = countMissingChapters(chapters.map { it.chapter.chapterNumber }), + missingChapterCount = countMissingChapters(chapters.map { it.chapter.chapterNumber }), onClick = onFilterClicked, ) } @@ -606,7 +606,7 @@ fun MangaScreenLargeImpl( ChapterHeader( enabled = chapters.fastAll { !it.selected }, chapterCount = chapters.size, - missingChapters = countMissingChapters(chapters.map { it.chapter.chapterNumber }), + missingChapterCount = countMissingChapters(chapters.map { it.chapter.chapterNumber }), onClick = onFilterButtonClicked, ) } diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/ChapterHeader.kt b/app/src/main/java/eu/kanade/presentation/manga/components/ChapterHeader.kt index 60a4ec7a2..0fb4166bc 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/ChapterHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/ChapterHeader.kt @@ -1,31 +1,29 @@ package eu.kanade.presentation.manga.components import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material3.AssistChip -import androidx.compose.material3.AssistChipDefaults.assistChipColors -import androidx.compose.material3.AssistChipDefaults.assistChipElevation import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import eu.kanade.tachiyomi.R +import tachiyomi.presentation.core.util.secondaryItemAlpha @Composable fun ChapterHeader( enabled: Boolean, chapterCount: Int?, - missingChapters: Int?, + missingChapterCount: Int?, onClick: () -> Unit, ) { - Row( + Column( modifier = Modifier .fillMaxWidth() .clickable( @@ -33,7 +31,7 @@ fun ChapterHeader( onClick = onClick, ) .padding(horizontal = 16.dp, vertical = 4.dp), - verticalAlignment = Alignment.CenterVertically, + verticalArrangement = Arrangement.spacedBy(4.dp), ) { Text( text = if (chapterCount == null) { @@ -42,45 +40,29 @@ fun ChapterHeader( pluralStringResource(id = R.plurals.manga_num_chapters, count = chapterCount, chapterCount) }, style = MaterialTheme.typography.titleMedium, - modifier = Modifier.weight(1f), color = MaterialTheme.colorScheme.onBackground, ) - // Missing chapters - if (missingChapters == null) { - DrawWarning( - text = stringResource(R.string.missing_chapters_unknown), - ) - } else if (missingChapters > 0) { - DrawWarning( - text = pluralStringResource( - id = R.plurals.missing_chapters, - count = missingChapters, - missingChapters, - ), - ) - } + MissingChaptersWarning(missingChapterCount) } } @Composable -private fun DrawWarning(text: String) { - AssistChip( - onClick = { - // TODO Show missing chapters - }, - label = { - Text( - text = text, - overflow = TextOverflow.Ellipsis, - color = MaterialTheme.colorScheme.primary, - ) - }, - shape = MaterialTheme.shapes.small, - border = null, - colors = assistChipColors( - containerColor = MaterialTheme.colorScheme.surface, - ), - elevation = assistChipElevation(1.dp), - ) +private fun MissingChaptersWarning(count: Int?) { + val text = when { + count == null -> stringResource(R.string.missing_chapters_unknown) + count > 0 -> pluralStringResource(id = R.plurals.missing_chapters, count = count, count) + else -> null + } + + if (text != null) { + Text( + modifier = Modifier.secondaryItemAlpha(), + text = text, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error, + ) + } } diff --git a/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt b/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt index 783d7e6c4..17ced5cf6 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt @@ -14,7 +14,7 @@ fun countMissingChapters(chaptersInput: List): Int? { .map { floor(it.toDouble()).toInt() } // Only keep unique chapters so that -1 or 16 are not counted multiple times .distinct() - .sortedBy { it } + .sorted() if (chapters.isEmpty()) { return null