Fix aggressive thumb preload
https://github.com/coil-kt/coil/commit/65ff90ea2b11db9da98cc7763d9c5f60e9ca364a
This commit is contained in:
1 parent
4c7b4dbc51
commit
196190314b
4 files changed
+16
-11
No files matched your search
@@ -1,7 +1,12 @@
|
||||
package com.hippo.ehviewer.coil
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import coil.decode.DecodeResult
|
||||
import coil.decode.Decoder
|
||||
import coil.disk.DiskCache
|
||||
import coil.request.CachePolicy
|
||||
import coil.request.ImageRequest
|
||||
import coil.size.Size
|
||||
import com.hippo.ehviewer.client.data.GalleryPreview
|
||||
@@ -25,6 +30,11 @@ fun ImageRequest.Builder.ehPreviewKey(key: GalleryPreview) = apply {
|
||||
size(Size.ORIGINAL)
|
||||
}
|
||||
|
||||
fun ImageRequest.Builder.justDownload() = apply {
|
||||
memoryCachePolicy(CachePolicy.DISABLED)
|
||||
decoderFactory { _, _, _ -> Decoder { DecodeResult(ColorDrawable(Color.BLACK), false) } }
|
||||
}
|
||||
|
||||
inline fun Context.imageRequest(key: GalleryPreview, builder: ImageRequest.Builder.() -> Unit = {}) = ImageRequest.Builder(this).ehPreviewKey(key).apply(builder).build()
|
||||
inline fun Context.imageRequest(key: String?, builder: ImageRequest.Builder.() -> Unit = {}) = ImageRequest.Builder(this).ehUrl(key).apply(builder).build()
|
||||
inline fun diskCache(builder: DiskCache.Builder.() -> Unit) = DiskCache.Builder().apply(builder).build()
|
||||
@@ -139,6 +139,7 @@ import com.hippo.ehviewer.client.parser.HomeParser
|
||||
import com.hippo.ehviewer.client.parser.ParserUtils
|
||||
import com.hippo.ehviewer.client.parser.TorrentParser
|
||||
import com.hippo.ehviewer.coil.imageRequest
|
||||
import com.hippo.ehviewer.coil.justDownload
|
||||
import com.hippo.ehviewer.dao.DownloadInfo
|
||||
import com.hippo.ehviewer.dao.Filter
|
||||
import com.hippo.ehviewer.download.DownloadManager.DownloadInfoListener
|
||||
@@ -892,11 +893,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
|
||||
EhDB.putHistoryInfo(galleryDetail)
|
||||
if (Settings.preloadThumbAggressively) {
|
||||
lifecycleScope.launchIO {
|
||||
galleryDetail.previewList.forEach {
|
||||
context?.run {
|
||||
imageLoader.enqueue(imageRequest(it))
|
||||
}
|
||||
}
|
||||
galleryDetail.previewList.forEach { context?.run { imageLoader.enqueue(imageRequest(it) { justDownload() }) } }
|
||||
}
|
||||
}
|
||||
composeBindingGD = galleryDetail
|
||||
|
||||
@@ -71,6 +71,7 @@ import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser
|
||||
import com.hippo.ehviewer.client.parser.GalleryListParser
|
||||
import com.hippo.ehviewer.client.parser.GalleryPageUrlParser
|
||||
import com.hippo.ehviewer.coil.imageRequest
|
||||
import com.hippo.ehviewer.coil.justDownload
|
||||
import com.hippo.ehviewer.dao.DownloadInfo
|
||||
import com.hippo.ehviewer.dao.QuickSearch
|
||||
import com.hippo.ehviewer.databinding.DrawerListRvBinding
|
||||
@@ -1052,11 +1053,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
|
||||
private fun onGetGalleryListSuccess(result: GalleryListParser.Result, taskId: Int) {
|
||||
if (Settings.preloadThumbAggressively) {
|
||||
lifecycleScope.launchIO {
|
||||
result.galleryInfoList.forEach {
|
||||
context?.run {
|
||||
imageLoader.enqueue(imageRequest(it.thumb))
|
||||
}
|
||||
}
|
||||
result.galleryInfoList.forEach { context?.run { imageLoader.enqueue(imageRequest(it.thumb) { justDownload() }) } }
|
||||
}
|
||||
}
|
||||
if (mHelper != null && mHelper!!.isCurrentTask(taskId)) {
|
||||
|
||||
@@ -54,6 +54,7 @@ import com.hippo.ehviewer.client.EhUrl
|
||||
import com.hippo.ehviewer.client.data.GalleryDetail
|
||||
import com.hippo.ehviewer.client.data.GalleryPreview
|
||||
import com.hippo.ehviewer.coil.imageRequest
|
||||
import com.hippo.ehviewer.coil.justDownload
|
||||
import com.hippo.ehviewer.ui.compose.data.EhPreviewItem
|
||||
import com.hippo.ehviewer.ui.compose.rememberDialogState
|
||||
import com.hippo.ehviewer.ui.compose.setMD3Content
|
||||
@@ -90,7 +91,7 @@ class GalleryPreviewScreen : Fragment() {
|
||||
val result = EhEngine.getPreviewList(url)
|
||||
if (Settings.preloadThumbAggressively) {
|
||||
coroutineScope.launch {
|
||||
context.run { result.first.first.forEach { imageLoader.enqueue(imageRequest(it)) } }
|
||||
context.run { result.first.first.forEach { imageLoader.enqueue(imageRequest(it) { justDownload() }) } }
|
||||
}
|
||||
}
|
||||
result.first.first
|
||||
|
||||
Reference in new issue
Block a user