diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt index 4ce0cca63..8549d5b21 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt @@ -192,4 +192,6 @@ object PreferenceKeys { const val eh_autoUpdateRestrictions = "eh_auto_update_restrictions" const val eh_autoUpdateStats = "eh_auto_update_stats" + + const val eh_aggressivePageLoading = "eh_aggressive_page_loading" } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index a26b655c1..2d4ec9e3f 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -265,4 +265,6 @@ class PreferencesHelper(val context: Context) { fun eh_autoUpdateRequirements() = prefs.getStringSet(Keys.eh_autoUpdateRestrictions, emptySet()) fun eh_autoUpdateStats() = rxPrefs.getString(Keys.eh_autoUpdateStats, "") + + fun eh_aggressivePageLoading() = rxPrefs.getBoolean(Keys.eh_aggressivePageLoading, false) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt index 2a545c08e..f65256c3f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt @@ -52,7 +52,11 @@ class HttpPageLoader( // EXH <-- subscriptions += Observable.defer { Observable.just(queue.take().page) } .filter { it.status == Page.QUEUE } - .concatMap { source.fetchImageFromCacheThenNet(it) } + .concatMap { + source.fetchImageFromCacheThenNet(it).doOnNext { + XLog.d("Downloaded page: ${it.number}!") + } + } .repeat() .subscribeOn(Schedulers.io()) .subscribe({ @@ -98,9 +102,17 @@ class HttpPageLoader( .getPageListFromCache(chapter.chapter) .onErrorResumeNext { source.fetchPageList(chapter.chapter) } .map { pages -> - pages.mapIndexed { index, page -> // Don't trust sources and use our own indexing + val rp = pages.mapIndexed { index, page -> // Don't trust sources and use our own indexing ReaderPage(index, page.url, page.imageUrl) } + if(prefs.eh_aggressivePageLoading().getOrDefault()) { + rp.mapNotNull { + if (it.status == Page.QUEUE) { + PriorityPage(it, 0) + } else null + }.forEach { queue.offer(it) } + } + rp } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt index 413f2ebc4..242e45ddd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt @@ -100,6 +100,12 @@ class SettingsReaderController : SettingsController() { defaultValue = "2" summary = "Higher values can speed up image downloading significantly, but can also trigger bans. Recommended value is 2 or 3. Current value is: %s" } + switchPreference { + key = Keys.eh_aggressivePageLoading + title = "Aggressively load pages" + summary = "Slowly download the entire gallery while reading instead of just loading the pages you are viewing." + defaultValue = true + } switchPreference { key = Keys.eh_readerInstantRetry title = "Skip queue on retry"