mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 22:37:56 +01:00 
			
		
		
		
	Fix download ahead missing out 1 chapter (#7927)
* Fix download ahead missing out 1 chapter * Move toLong() function * Add check whether the next chapter is queued
This commit is contained in:
		| @@ -1,3 +0,0 @@ | ||||
| package eu.kanade.data | ||||
|  | ||||
| fun Boolean.toLong() = if (this) 1L else 0L | ||||
| @@ -1,11 +1,11 @@ | ||||
| package eu.kanade.data.chapter | ||||
|  | ||||
| import eu.kanade.data.DatabaseHandler | ||||
| import eu.kanade.data.toLong | ||||
| import eu.kanade.domain.chapter.model.Chapter | ||||
| import eu.kanade.domain.chapter.model.ChapterUpdate | ||||
| import eu.kanade.domain.chapter.repository.ChapterRepository | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.toLong | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import logcat.LogPriority | ||||
|  | ||||
|   | ||||
| @@ -2,12 +2,12 @@ package eu.kanade.data.manga | ||||
|  | ||||
| import eu.kanade.data.DatabaseHandler | ||||
| import eu.kanade.data.listOfStringsAdapter | ||||
| import eu.kanade.data.toLong | ||||
| import eu.kanade.domain.manga.model.Manga | ||||
| import eu.kanade.domain.manga.model.MangaUpdate | ||||
| import eu.kanade.domain.manga.repository.MangaRepository | ||||
| import eu.kanade.tachiyomi.data.database.models.LibraryManga | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.toLong | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import logcat.LogPriority | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,6 @@ import com.hippo.unifile.UniFile | ||||
| import data.Manga_sync | ||||
| import data.Mangas | ||||
| import eu.kanade.data.DatabaseHandler | ||||
| import eu.kanade.data.toLong | ||||
| import eu.kanade.domain.category.interactor.GetCategories | ||||
| import eu.kanade.domain.category.model.Category | ||||
| import eu.kanade.domain.history.model.HistoryUpdate | ||||
| @@ -35,6 +34,7 @@ import eu.kanade.tachiyomi.data.database.models.Track | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.toLong | ||||
| import kotlinx.serialization.protobuf.ProtoBuf | ||||
| import logcat.LogPriority | ||||
| import okio.buffer | ||||
|   | ||||
| @@ -54,6 +54,7 @@ import eu.kanade.tachiyomi.util.storage.DiskUtil | ||||
| import eu.kanade.tachiyomi.util.storage.cacheImageDir | ||||
| import eu.kanade.tachiyomi.util.system.isOnline | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.toInt | ||||
| import kotlinx.coroutines.async | ||||
| import kotlinx.coroutines.awaitAll | ||||
| import kotlinx.coroutines.runBlocking | ||||
| @@ -449,15 +450,19 @@ class ReaderPresenter( | ||||
|         val nextChapter = viewerChaptersRelay.value?.nextChapter?.chapter ?: return | ||||
|         val chaptersNumberToDownload = preferences.autoDownloadWhileReading().get() | ||||
|         if (chaptersNumberToDownload == 0 || !manga.favorite) return | ||||
|         val isNextChapterDownloaded = | ||||
|             downloadManager.isChapterDownloaded(nextChapter.name, nextChapter.scanlator, manga.title, manga.source) | ||||
|         if (isNextChapterDownloaded) { | ||||
|             downloadAutoNextChapters(chaptersNumberToDownload, nextChapter.id) | ||||
|         val isNextChapterDownloadedOrQueued = downloadManager.isChapterDownloaded( | ||||
|             nextChapter.name, | ||||
|             nextChapter.scanlator, | ||||
|             manga.title, | ||||
|             manga.source, | ||||
|         ) || downloadManager.getChapterDownloadOrNull(nextChapter) != null | ||||
|         if (isNextChapterDownloadedOrQueued) { | ||||
|             downloadAutoNextChapters(chaptersNumberToDownload, nextChapter.id, nextChapter.read) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun downloadAutoNextChapters(choice: Int, nextChapterId: Long?) { | ||||
|         val chaptersToDownload = getNextUnreadChaptersSorted(nextChapterId).take(choice - 1) | ||||
|     private fun downloadAutoNextChapters(choice: Int, nextChapterId: Long?, isNextChapterRead: Boolean) { | ||||
|         val chaptersToDownload = getNextUnreadChaptersSorted(nextChapterId).take(choice - 1 + isNextChapterRead.toInt()) | ||||
|         if (chaptersToDownload.isNotEmpty()) { | ||||
|             downloadChapters(chaptersToDownload) | ||||
|         } | ||||
|   | ||||
| @@ -0,0 +1,5 @@ | ||||
| package eu.kanade.tachiyomi.util.system | ||||
|  | ||||
| fun Boolean.toInt() = if (this) 1 else 0 | ||||
|  | ||||
| fun Boolean.toLong() = if (this) 1L else 0L | ||||
		Reference in New Issue
	
	Block a user