Refactor chapters description

master
Koitharu 2 years ago
parent eafd878413
commit 796af6b811
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -26,7 +26,7 @@ fun chapterListItemAD(
bind { payloads -> bind { payloads ->
if (payloads.isEmpty()) { if (payloads.isEmpty()) {
binding.textViewTitle.text = item.chapter.name binding.textViewTitle.text = item.chapter.name
binding.textViewDescription.textAndVisible = item.description() binding.textViewDescription.textAndVisible = item.description
} }
when { when {
item.isCurrent -> { item.isCurrent -> {

@ -1,6 +1,7 @@
package org.koitharu.kotatsu.details.ui.model package org.koitharu.kotatsu.details.ui.model
import android.text.format.DateUtils import android.text.format.DateUtils
import org.jsoup.internal.StringUtil.StringJoiner
import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.list.ui.model.ListModel
import org.koitharu.kotatsu.parsers.model.MangaChapter import org.koitharu.kotatsu.parsers.model.MangaChapter
@ -10,6 +11,14 @@ data class ChapterListItem(
private val uploadDateMs: Long, private val uploadDateMs: Long,
) : ListModel { ) : ListModel {
var description: String? = null
private set
get() {
if (field != null) return field
field = buildDescription()
return field
}
var uploadDate: CharSequence? = null var uploadDate: CharSequence? = null
private set private set
get() { get() {
@ -38,14 +47,20 @@ data class ChapterListItem(
val isNew: Boolean val isNew: Boolean
get() = hasFlag(FLAG_NEW) get() = hasFlag(FLAG_NEW)
fun description(): CharSequence { private fun buildDescription(): String {
val number = chapter.number.toString() val joiner = StringJoiner("")
val scanlator = chapter.scanlator?.takeUnless { it.isBlank() } if (chapter.number != 0) {
return when { joiner.add("#").append(chapter.number.toString())
uploadDate != null && scanlator != null -> "#$number$uploadDate$scanlator" }
scanlator != null -> "#$number$scanlator" uploadDate?.let { date ->
else -> "#$number$uploadDate" joiner.add(date.toString())
}
chapter.scanlator?.let { scanlator ->
if (scanlator.isNotBlank()) {
joiner.add(scanlator)
}
} }
return joiner.complete()
} }
private fun hasFlag(flag: Int): Boolean { private fun hasFlag(flag: Int): Boolean {

Loading…
Cancel
Save