From c352222e3a5c94c903e6df488264cd5fe57e8375 Mon Sep 17 00:00:00 2001 From: Finnley Somdahl <87634197+rebelonion@users.noreply.github.com> Date: Wed, 27 Dec 2023 06:34:09 -0600 Subject: [PATCH] fix for downloading when all chapters are read --- .../dantotsu/media/manga/MangaReadFragment.kt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt b/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt index 25a87c9b..9b70ef7f 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt @@ -196,26 +196,27 @@ open class MangaReadFragment : Fragment(), ScanlatorSelectionListener { override fun onScanlatorsSelected() { updateChapters() } - fun multiDownload(n: Int) { //get last viewed chapter val selected = media.userProgress val chapters = media.manga?.chapters?.values?.toList() //filter by selected language - val progressChapterIndex = chapters?.indexOfFirst { MangaNameAdapter.findChapterNumber(it.number)?.toInt() == selected }?:0 - if (progressChapterIndex < 0 || n < 1) return - val chaptersToDownload = chapters?.subList( - progressChapterIndex + 1, - progressChapterIndex + n + 1 - ) - if (chaptersToDownload != null) { - for (chapter in chaptersToDownload) { - onMangaChapterDownloadClick(chapter.title!!) - } - } + val progressChapterIndex = chapters?.indexOfFirst { MangaNameAdapter.findChapterNumber(it.number)?.toInt() == selected } ?: 0 + if (progressChapterIndex < 0 || n < 1 || chapters == null) return + + // Calculate the end index + val endIndex = minOf(progressChapterIndex + n, chapters.size) + + //make sure there are enough chapters + val chaptersToDownload = chapters.subList(progressChapterIndex + 1, endIndex) + + for (chapter in chaptersToDownload) { + onMangaChapterDownloadClick(chapter.title!!) + } } + private fun updateChapters() { val loadedChapters = model.getMangaChapters().value if (loadedChapters != null) {