Added missing sorting cases handling

Previous commit missed some cases resulting in errors at runtime

(cherry picked from commit 9e830f1c55a9514462290868864b84194aef7b15)
This commit is contained in:
Lautaro Martin Emanuel 2020-05-15 01:10:02 -03:00 committed by Jobobby04
parent f85c34b807
commit 46500dcb32
3 changed files with 17 additions and 0 deletions

View File

@ -35,3 +35,12 @@ class ChapterLoadByNumber {
return chapters.sortedBy { it.chapter_number }
}
}
/**
* Load strategy using the chapter upload date. This ordering ignores scanlators
*/
class ChapterLoadByUploadDate() {
fun get(allChapters: List<Chapter>): List<Chapter> {
return allChapters.sortedBy { it.date_upload }
}
}

View File

@ -130,6 +130,7 @@ class ReaderPresenter(
when (manga.sorting) {
Manga.SORTING_SOURCE -> ChapterLoadBySource().get(chaptersForReader)
Manga.SORTING_NUMBER -> ChapterLoadByNumber().get(chaptersForReader, selectedChapter)
Manga.SORTING_UPLOAD_DATE -> ChapterLoadByUploadDate().get(chaptersForReader)
else -> error("Unknown sorting method")
}.map(::ReaderChapter)
}

View File

@ -145,6 +145,7 @@ class HistoryPresenter : BasePresenter<HistoryController>() {
val sortFunction: (Chapter, Chapter) -> Int = when (manga.sorting) {
Manga.SORTING_SOURCE -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) }
Manga.SORTING_NUMBER -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) }
Manga.SORTING_UPLOAD_DATE -> { c1, c2 -> c1.date_upload.compareTo(c2.date_upload) }
else -> throw NotImplementedError("Unknown sorting method")
}
@ -164,6 +165,12 @@ class HistoryPresenter : BasePresenter<HistoryController>() {
it.chapter_number <= chapterNumber + 1
}
}
Manga.SORTING_UPLOAD_DATE -> {
val dateUpload = chapter.date_upload
((currChapterIndex + 1) until chapters.size)
.map { chapters[it] }
.firstOrNull { it.date_upload > dateUpload }
}
else -> throw NotImplementedError("Unknown sorting method")
}
}