From a0a76c99f7a32ac8fd9dff624ce45a17486a51d7 Mon Sep 17 00:00:00 2001 From: nzoba <55888232+nzoba@users.noreply.github.com> Date: Sat, 10 Sep 2022 04:29:24 +0200 Subject: [PATCH] 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 (cherry picked from commit 07d1b9f3bac5df3c469601b8d08ed024b5e607ec) # Conflicts: # app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt --- .../main/java/eu/kanade/data/DatabaseUtils.kt | 3 --- .../data/chapter/ChapterRepositoryImpl.kt | 2 +- .../data/manga/MangaMergeRepositoryImpl.kt | 2 +- .../eu/kanade/data/manga/MangaRepositoryImpl.kt | 2 +- .../tachiyomi/data/backup/BackupManager.kt | 2 +- .../design/MigrationBottomSheetDialog.kt | 3 +-- .../source/browse/BrowseSourcePresenter.kt | 2 +- .../tachiyomi/ui/reader/ReaderPresenter.kt | 17 +++++++++++------ .../tachiyomi/util/system/BooleanExtensions.kt | 5 +++++ 9 files changed, 22 insertions(+), 16 deletions(-) delete mode 100644 app/src/main/java/eu/kanade/data/DatabaseUtils.kt create mode 100644 app/src/main/java/eu/kanade/tachiyomi/util/system/BooleanExtensions.kt diff --git a/app/src/main/java/eu/kanade/data/DatabaseUtils.kt b/app/src/main/java/eu/kanade/data/DatabaseUtils.kt deleted file mode 100644 index d46f4b1f8..000000000 --- a/app/src/main/java/eu/kanade/data/DatabaseUtils.kt +++ /dev/null @@ -1,3 +0,0 @@ -package eu.kanade.data - -fun Boolean.toLong() = if (this) 1L else 0L diff --git a/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt index 623eab4a7..e2cd3c43a 100644 --- a/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt @@ -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 diff --git a/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt index 1d7a8df70..da2de6465 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt @@ -2,11 +2,11 @@ package eu.kanade.data.manga import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.mergedMangaReferenceMapper -import eu.kanade.data.toLong import eu.kanade.domain.manga.model.Manga import eu.kanade.domain.manga.model.MergeMangaSettingsUpdate import eu.kanade.domain.manga.repository.MangaMergeRepository import eu.kanade.tachiyomi.util.system.logcat +import eu.kanade.tachiyomi.util.system.toLong import exh.merged.sql.models.MergedMangaReference import kotlinx.coroutines.flow.Flow import logcat.LogPriority diff --git a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt index 85ab47e08..a70143e65 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt @@ -4,12 +4,12 @@ import eu.kanade.data.AndroidDatabaseHandler import eu.kanade.data.DatabaseHandler import eu.kanade.data.listOfStringsAdapter import eu.kanade.data.listOfStringsAndAdapter -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 diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt index 186eeb3c8..5767da850 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt @@ -8,7 +8,6 @@ import data.Mangas import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.mergedMangaReferenceMapper import eu.kanade.data.manga.mangaMapper -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 @@ -51,6 +50,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.MetadataSource import eu.kanade.tachiyomi.util.system.logcat +import eu.kanade.tachiyomi.util.system.toLong import exh.source.MERGED_SOURCE_ID import exh.source.getMainSource import exh.util.nullIfBlank diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt index 66341380d..5087ba564 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt @@ -16,6 +16,7 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.MigrationBottomSheetBinding import eu.kanade.tachiyomi.ui.browse.migration.MigrationFlags +import eu.kanade.tachiyomi.util.system.toInt import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.widget.sheet.BaseBottomSheetDialog import uy.kohesive.injekt.injectLazy @@ -118,8 +119,6 @@ class MigrationBottomSheetDialog(private val activity: Activity, private val lis pref.set(index == 1) } } - - private fun Boolean.toInt() = if (this) 1 else 0 } interface StartMigrationListener { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt index d3cf3a7b8..ae7c861b3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt @@ -140,7 +140,7 @@ open class BrowseSourcePresenter( // SY --> val ehentaiBrowseDisplayMode by preferences.enhancedEHentaiView().asState() - // SY <-- + // SY <-- @Composable fun getColumnsPreferenceForCurrentOrientation(): State { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index f9a67f45c..212e6c71c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -62,6 +62,7 @@ import eu.kanade.tachiyomi.util.storage.cacheImageDir import eu.kanade.tachiyomi.util.system.ImageUtil import eu.kanade.tachiyomi.util.system.isOnline import eu.kanade.tachiyomi.util.system.logcat +import eu.kanade.tachiyomi.util.system.toInt import exh.md.utils.FollowStatus import exh.md.utils.MdUtil import exh.metadata.metadata.base.RaisedSearchMetadata @@ -546,15 +547,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) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/BooleanExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/BooleanExtensions.kt new file mode 100644 index 000000000..130205aa5 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/BooleanExtensions.kt @@ -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