Use same chapter sorting logic in manga and reader views
This commit is contained in:
@@ -1020,23 +1020,11 @@ class MangaController :
|
||||
|
||||
// OVERFLOW MENU DIALOGS
|
||||
|
||||
private fun getUnreadChaptersSorted(): List<ChapterItem> {
|
||||
val chapters = presenter.chapters
|
||||
.sortedWith(presenter.getChapterSort())
|
||||
.filter { !it.read && it.status == Download.State.NOT_DOWNLOADED }
|
||||
.distinctBy { it.name }
|
||||
return if (presenter.sortDescending()) {
|
||||
chapters.reversed()
|
||||
} else {
|
||||
chapters
|
||||
}
|
||||
}
|
||||
|
||||
private fun downloadChapters(choice: Int) {
|
||||
val chaptersToDownload = when (choice) {
|
||||
R.id.download_next -> getUnreadChaptersSorted().take(1)
|
||||
R.id.download_next_5 -> getUnreadChaptersSorted().take(5)
|
||||
R.id.download_next_10 -> getUnreadChaptersSorted().take(10)
|
||||
R.id.download_next -> presenter.getUnreadChaptersSorted().take(1)
|
||||
R.id.download_next_5 -> presenter.getUnreadChaptersSorted().take(5)
|
||||
R.id.download_next_10 -> presenter.getUnreadChaptersSorted().take(10)
|
||||
R.id.download_custom -> {
|
||||
showCustomDownloadDialog()
|
||||
return
|
||||
@@ -1059,7 +1047,7 @@ class MangaController :
|
||||
}
|
||||
|
||||
override fun downloadCustomChapters(amount: Int) {
|
||||
val chaptersToDownload = getUnreadChaptersSorted().take(amount)
|
||||
val chaptersToDownload = presenter.getUnreadChaptersSorted().take(amount)
|
||||
if (chaptersToDownload.isNotEmpty()) {
|
||||
downloadChapters(chaptersToDownload)
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user