mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-26 11:07:51 +02:00
Added missing chapters count in MangaInfoHeader (#9184)
* Added missing chapters count in MangaInfoHeader * Added "Might be missing chapters" * Added missing chapters to MangaAndSourceTitlesLarge function * Removed comments * Reworked getMissingChapters to countMissingChapters, moved -1 check * Attempting detecting sub-chapters * Moved MissingChapters to ChapterHeader; Adapted design to fit in * Fixed block comment in one-line-element * Fixed critical missing-chapter counting bug * Undid unintentional & unnecessary changes * Moved & refactored countMissingChapters * Fixed import order; Mapping chapter object to chapterNumber * Optimized "No (valid) chapters" detection --------- Co-authored-by: arkon <arkon@users.noreply.github.com>
This commit is contained in:
@ -65,6 +65,7 @@ import eu.kanade.tachiyomi.ui.manga.chapterDecimalFormat
|
||||
import eu.kanade.tachiyomi.util.lang.toRelativeString
|
||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||
import tachiyomi.domain.chapter.model.Chapter
|
||||
import tachiyomi.domain.chapter.service.countMissingChapters
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.domain.source.model.StubSource
|
||||
import tachiyomi.presentation.core.components.LazyColumn
|
||||
@ -393,6 +394,7 @@ private fun MangaScreenSmallImpl(
|
||||
ChapterHeader(
|
||||
enabled = chapters.fastAll { !it.selected },
|
||||
chapterCount = chapters.size,
|
||||
missingChapters = countMissingChapters(chapters.map { it.chapter.chapterNumber }),
|
||||
onClick = onFilterClicked,
|
||||
)
|
||||
}
|
||||
@ -604,6 +606,7 @@ fun MangaScreenLargeImpl(
|
||||
ChapterHeader(
|
||||
enabled = chapters.fastAll { !it.selected },
|
||||
chapterCount = chapters.size,
|
||||
missingChapters = countMissingChapters(chapters.map { it.chapter.chapterNumber }),
|
||||
onClick = onFilterButtonClicked,
|
||||
)
|
||||
}
|
||||
|
@ -4,6 +4,9 @@ import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Row
|
||||
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
|
||||
@ -11,6 +14,7 @@ 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
|
||||
|
||||
@ -18,6 +22,7 @@ import eu.kanade.tachiyomi.R
|
||||
fun ChapterHeader(
|
||||
enabled: Boolean,
|
||||
chapterCount: Int?,
|
||||
missingChapters: Int?,
|
||||
onClick: () -> Unit,
|
||||
) {
|
||||
Row(
|
||||
@ -40,5 +45,42 @@ fun ChapterHeader(
|
||||
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,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@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),
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user