Improve data saver handling
This commit is contained in:
parent
df0083e2e3
commit
6e8ee38238
@ -29,6 +29,7 @@ import eu.kanade.tachiyomi.util.system.ImageUtil
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import exh.util.DataSaver
|
||||
import exh.util.DataSaver.Companion.fetchImage
|
||||
import kotlinx.coroutines.async
|
||||
import logcat.LogPriority
|
||||
import okhttp3.Response
|
||||
@ -412,13 +413,8 @@ class Downloader(
|
||||
private fun downloadImage(page: Page, source: HttpSource, tmpDir: UniFile, filename: String, dataSaver: DataSaver): Observable<UniFile> {
|
||||
page.status = Page.DOWNLOAD_IMAGE
|
||||
page.progress = 0
|
||||
val imageUrl = page.imageUrl!!
|
||||
page.imageUrl = dataSaver.compress(imageUrl)
|
||||
return source.fetchImage(page)
|
||||
return source.fetchImage(page, dataSaver)
|
||||
.map { response ->
|
||||
// SY -->
|
||||
page.imageUrl = imageUrl
|
||||
// SY <--
|
||||
val file = tmpDir.createFile("$filename.tmp")
|
||||
try {
|
||||
response.body!!.source().saveTo(file.openOutputStream())
|
||||
|
@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.util.lang.plusAssign
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
import exh.source.isEhBasedSource
|
||||
import exh.util.DataSaver
|
||||
import exh.util.DataSaver.Companion.fetchImage
|
||||
import logcat.LogPriority
|
||||
import rx.Completable
|
||||
import rx.Observable
|
||||
@ -275,15 +276,8 @@ class HttpPageLoader(
|
||||
*/
|
||||
private fun HttpSource.cacheImage(page: ReaderPage): Observable<ReaderPage> {
|
||||
page.status = Page.DOWNLOAD_IMAGE
|
||||
// SY -->
|
||||
val imageUrl = page.imageUrl!!
|
||||
page.imageUrl = dataSaver.compress(imageUrl)
|
||||
// SY <--
|
||||
return fetchImage(page)
|
||||
return fetchImage(page, dataSaver)
|
||||
.doOnNext {
|
||||
// SY -->
|
||||
page.imageUrl = imageUrl
|
||||
// SY <--
|
||||
chapterCache.putImageToCache(page.imageUrl!!, it)
|
||||
}
|
||||
.map { page }
|
||||
|
@ -2,7 +2,11 @@ package exh.util
|
||||
|
||||
import com.tfcporciuncula.flow.Preference
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import okhttp3.Response
|
||||
import rx.Observable
|
||||
|
||||
interface DataSaver {
|
||||
|
||||
@ -14,6 +18,15 @@ interface DataSaver {
|
||||
return imageUrl
|
||||
}
|
||||
}
|
||||
|
||||
fun HttpSource.fetchImage(page: Page, dataSaver: DataSaver): Observable<Response> {
|
||||
val imageUrl = page.imageUrl ?: return fetchImage(page)
|
||||
page.imageUrl = dataSaver.compress(imageUrl)
|
||||
return fetchImage(page)
|
||||
.doOnNext {
|
||||
page.imageUrl = imageUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user