Safely handle null titleName
This commit is contained in:
@@ -81,77 +81,85 @@ class KavitaHelper {
|
|||||||
val chapterLabel = if (isWebtoon) "Episode" else "Chapter"
|
val chapterLabel = if (isWebtoon) "Episode" else "Chapter"
|
||||||
val volumeLabel = if (isWebtoon) "Season" else "Volume"
|
val volumeLabel = if (isWebtoon) "Season" else "Volume"
|
||||||
|
|
||||||
name = when (type) {
|
if (titleName != null) {
|
||||||
ChapterType.Regular -> {
|
name = when (type) {
|
||||||
val chapterNum = formatChapterNumber(chapter)
|
ChapterType.Regular -> {
|
||||||
when {
|
val chapterNum = formatChapterNumber(chapter)
|
||||||
titleName.isNotBlank() && titleName.any { it.isLetter() } ->
|
when {
|
||||||
"$chapterNum - ${cleanChapterTitle(
|
titleName.isNotBlank() && titleName.any { it.isLetter() } ->
|
||||||
titleName,
|
"$chapterNum - ${cleanChapterTitle(
|
||||||
ChapterTitleContext(
|
titleName,
|
||||||
mangaTitle = mangaTitle,
|
ChapterTitleContext(
|
||||||
chapterNumber = chapterNum,
|
mangaTitle = mangaTitle,
|
||||||
volumeName = volume.name.ifBlank { title },
|
chapterNumber = chapterNum,
|
||||||
),
|
volumeName = volume.name.ifBlank { title },
|
||||||
)}"
|
),
|
||||||
else ->
|
)}"
|
||||||
"$volumeLabel ${formatVolumeNumber(volume)} $chapterLabel $chapterNum"
|
|
||||||
|
else ->
|
||||||
|
"$volumeLabel ${formatVolumeNumber(volume)} $chapterLabel $chapterNum"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
ChapterType.SingleFileVolume -> {
|
ChapterType.SingleFileVolume -> {
|
||||||
cleanChapterTitle(
|
cleanChapterTitle(
|
||||||
when {
|
when {
|
||||||
volume.name.any { it.isLetter() } -> "v${volume.minNumber} - ${volume.name}"
|
volume.name.any { it.isLetter() } -> "v${volume.minNumber} - ${volume.name}"
|
||||||
else -> "Volume ${volume.minNumber}"
|
else -> "Volume ${volume.minNumber}"
|
||||||
},
|
},
|
||||||
ChapterTitleContext(
|
ChapterTitleContext(
|
||||||
mangaTitle = mangaTitle,
|
mangaTitle = mangaTitle,
|
||||||
volumeName = volume.name,
|
volumeName = volume.name,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
|
||||||
ChapterType.Special -> {
|
|
||||||
cleanChapterTitle(
|
|
||||||
when {
|
|
||||||
title.isNotBlank() -> title
|
|
||||||
range.isNotBlank() -> range
|
|
||||||
else -> "Special"
|
|
||||||
},
|
|
||||||
ChapterTitleContext(
|
|
||||||
mangaTitle = mangaTitle,
|
|
||||||
volumeName = volume.name,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
ChapterType.Chapter -> {
|
|
||||||
val chapterNum = formatChapterNumber(chapter)
|
|
||||||
when {
|
|
||||||
titleName.isNotBlank() && titleName.any { it.isLetter() } ->
|
|
||||||
"$chapterNum - ${cleanChapterTitle(
|
|
||||||
titleName,
|
|
||||||
ChapterTitleContext(
|
|
||||||
mangaTitle = mangaTitle,
|
|
||||||
chapterNumber = chapterNum,
|
|
||||||
volumeName = volume.name,
|
|
||||||
),
|
|
||||||
)}"
|
|
||||||
else ->
|
|
||||||
"$chapterLabel $chapterNum"
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
ChapterType.Issue -> {
|
ChapterType.Special -> {
|
||||||
val issueNum = chapter.number.toIntOrNull()?.toString()?.padStart(3, '0') ?: chapter.number
|
cleanChapterTitle(
|
||||||
cleanChapterTitle(
|
when {
|
||||||
|
title.isNotBlank() -> title
|
||||||
|
range.isNotBlank() -> range
|
||||||
|
else -> "Special"
|
||||||
|
},
|
||||||
|
ChapterTitleContext(
|
||||||
|
mangaTitle = mangaTitle,
|
||||||
|
volumeName = volume.name,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
ChapterType.Chapter -> {
|
||||||
|
val chapterNum = formatChapterNumber(chapter)
|
||||||
when {
|
when {
|
||||||
titleName.any { it.isLetter() } -> "$titleName (#$issueNum)"
|
titleName.isNotBlank() && titleName.any { it.isLetter() } ->
|
||||||
else -> "Issue #$issueNum"
|
"$chapterNum - ${cleanChapterTitle(
|
||||||
},
|
titleName,
|
||||||
ChapterTitleContext(
|
ChapterTitleContext(
|
||||||
mangaTitle = mangaTitle,
|
mangaTitle = mangaTitle,
|
||||||
chapterNumber = issueNum,
|
chapterNumber = chapterNum,
|
||||||
volumeName = volume.name,
|
volumeName = volume.name,
|
||||||
),
|
),
|
||||||
)
|
)}"
|
||||||
|
|
||||||
|
else ->
|
||||||
|
"$chapterLabel $chapterNum"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ChapterType.Issue -> {
|
||||||
|
val issueNum = chapter.number.toIntOrNull()?.toString()?.padStart(3, '0') ?: chapter.number
|
||||||
|
cleanChapterTitle(
|
||||||
|
when {
|
||||||
|
titleName.any { it.isLetter() } -> "$titleName (#$issueNum)"
|
||||||
|
else -> "Issue #$issueNum"
|
||||||
|
},
|
||||||
|
ChapterTitleContext(
|
||||||
|
mangaTitle = mangaTitle,
|
||||||
|
chapterNumber = issueNum,
|
||||||
|
volumeName = volume.name,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ data class ChapterDto(
|
|||||||
val pages: Int,
|
val pages: Int,
|
||||||
val isSpecial: Boolean,
|
val isSpecial: Boolean,
|
||||||
val title: String,
|
val title: String,
|
||||||
val titleName: String = "",
|
val titleName: String?,
|
||||||
val pagesRead: Int,
|
val pagesRead: Int,
|
||||||
val coverImageLocked: Boolean,
|
val coverImageLocked: Boolean,
|
||||||
val coverImage: String,
|
val coverImage: String,
|
||||||
|
|||||||
Reference in New Issue
Block a user