Actually compare chapter numbers as numbers when sorting (fixes #7247)
(cherry picked from commit da8669c826e6575a76751842bda3da59dc2f07c7) (cherry picked from commit 4b7b710b7cc2e3526de176eb0eb72d763b32bcd7) # Conflicts: # app/src/test/java/eu/kanade/tachiyomi/util/chapter/ChapterRecognitionTest.kt
This commit is contained in:
parent
f322a7e660
commit
85bd12e731
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.util.chapter
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
|
||||
|
||||
fun getChapterSort(manga: Manga, sortDescending: Boolean = manga.sortDescending()): (Chapter, Chapter) -> Int {
|
||||
return when (manga.sorting) {
|
||||
@ -11,13 +10,13 @@ fun getChapterSort(manga: Manga, sortDescending: Boolean = manga.sortDescending(
|
||||
false -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) }
|
||||
}
|
||||
Manga.CHAPTER_SORTING_NUMBER -> when (sortDescending) {
|
||||
true -> { c1, c2 -> c2.chapter_number.toString().compareToCaseInsensitiveNaturalOrder(c1.chapter_number.toString()) }
|
||||
false -> { c1, c2 -> c1.chapter_number.toString().compareToCaseInsensitiveNaturalOrder(c2.chapter_number.toString()) }
|
||||
true -> { c1, c2 -> c2.chapter_number.compareTo(c1.chapter_number) }
|
||||
false -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) }
|
||||
}
|
||||
Manga.CHAPTER_SORTING_UPLOAD_DATE -> when (sortDescending) {
|
||||
true -> { c1, c2 -> c2.date_upload.compareTo(c1.date_upload) }
|
||||
false -> { c1, c2 -> c1.date_upload.compareTo(c2.date_upload) }
|
||||
}
|
||||
else -> throw NotImplementedError("Unimplemented sorting method")
|
||||
else -> throw NotImplementedError("Invalid chapter sorting method: ${manga.sorting}")
|
||||
}
|
||||
}
|
||||
|
@ -256,20 +256,7 @@ class ChapterRecognitionTest {
|
||||
}
|
||||
|
||||
private fun assertChapter(mangaTitle: String, name: String, expected: Float) {
|
||||
val chapter = createChapter(name)
|
||||
ChapterRecognition.parseChapterNumber(chapter, createManga(mangaTitle))
|
||||
assertEquals(expected, chapter.chapter_number)
|
||||
}
|
||||
|
||||
private fun createManga(title: String): Manga {
|
||||
val manga = Manga.create(0)
|
||||
manga.title = title
|
||||
return manga
|
||||
}
|
||||
|
||||
private fun createChapter(name: String): Chapter {
|
||||
val chapter = Chapter.create()
|
||||
chapter.name = name
|
||||
return chapter
|
||||
val chapterNumber = parseChapterNumber(mangaTitle, name)
|
||||
assertEquals(chapterNumber, expected)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user