|
@@ -26,6 +26,7 @@ import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
|
|
import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem
|
|
|
import eu.kanade.tachiyomi.ui.manga.track.TrackItem
|
|
|
import eu.kanade.tachiyomi.util.chapter.ChapterSettingsHelper
|
|
|
+import eu.kanade.tachiyomi.util.chapter.getChapterSort
|
|
|
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource
|
|
|
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithTrackServiceTwoWay
|
|
|
import eu.kanade.tachiyomi.util.isLocal
|
|
@@ -433,25 +434,7 @@ class MangaPresenter(
|
|
|
observable = observable.filter { !it.bookmark }
|
|
|
}
|
|
|
|
|
|
- return observable.toSortedList(getChapterSort())
|
|
|
- }
|
|
|
-
|
|
|
- fun getChapterSort(): (Chapter, Chapter) -> Int {
|
|
|
- return when (manga.sorting) {
|
|
|
- Manga.CHAPTER_SORTING_SOURCE -> when (sortDescending()) {
|
|
|
- true -> { c1, c2 -> c1.source_order.compareTo(c2.source_order) }
|
|
|
- false -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) }
|
|
|
- }
|
|
|
- Manga.CHAPTER_SORTING_NUMBER -> when (sortDescending()) {
|
|
|
- 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")
|
|
|
- }
|
|
|
+ return observable.toSortedList(getChapterSort(manga))
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -478,7 +461,7 @@ class MangaPresenter(
|
|
|
* Returns the next unread chapter or null if everything is read.
|
|
|
*/
|
|
|
fun getNextUnreadChapter(): ChapterItem? {
|
|
|
- val chapters = chapters.sortedWith(getChapterSort())
|
|
|
+ val chapters = chapters.sortedWith(getChapterSort(manga))
|
|
|
return if (sortDescending()) {
|
|
|
return chapters.findLast { !it.read }
|
|
|
} else {
|
|
@@ -486,6 +469,18 @@ class MangaPresenter(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ fun getUnreadChaptersSorted(): List<ChapterItem> {
|
|
|
+ val chapters = chapters
|
|
|
+ .sortedWith(getChapterSort(manga))
|
|
|
+ .filter { !it.read && it.status == Download.State.NOT_DOWNLOADED }
|
|
|
+ .distinctBy { it.name }
|
|
|
+ return if (sortDescending()) {
|
|
|
+ chapters.reversed()
|
|
|
+ } else {
|
|
|
+ chapters
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Mark the selected chapter list as read/unread.
|
|
|
* @param selectedChapters the list of selected chapters.
|