Optimize image loading in lists
This commit is contained in:
@@ -8,15 +8,27 @@ import coil.request.ErrorResult
|
||||
import coil.request.ImageRequest
|
||||
import coil.request.ImageResult
|
||||
import coil.request.SuccessResult
|
||||
import coil.util.CoilUtils
|
||||
import com.google.android.material.progressindicator.BaseProgressIndicator
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.core.network.CommonHeaders
|
||||
import org.koitharu.kotatsu.utils.progress.ImageRequestIndicatorListener
|
||||
|
||||
fun ImageView.newImageRequest(url: String?) = ImageRequest.Builder(context)
|
||||
.data(url)
|
||||
.crossfade(context)
|
||||
.target(this)
|
||||
fun ImageView.newImageRequest(url: Any?): ImageRequest.Builder? {
|
||||
val current = CoilUtils.result(this)
|
||||
if (current != null && current.request.data == url) {
|
||||
return null
|
||||
}
|
||||
return ImageRequest.Builder(context)
|
||||
.data(url)
|
||||
.crossfade(context)
|
||||
.target(this)
|
||||
}
|
||||
|
||||
fun ImageView.disposeImageRequest() {
|
||||
CoilUtils.dispose(this)
|
||||
setImageDrawable(null)
|
||||
}
|
||||
|
||||
fun ImageRequest.Builder.enqueueWith(loader: ImageLoader) = loader.enqueue(build())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user