package com.casic.smarttube.utils import android.content.Context import android.widget.ImageView import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions import com.casic.smarttube.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper class GlideLoadEngine private constructor() : ImageEngine { companion object { val instance: GlideLoadEngine by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { GlideLoadEngine() } } override fun loadImage(context: Context, url: String, imageView: ImageView) { if (!ActivityCompatHelper.assertValidRequest(context)) { return } Glide.with(context).load(url).into(imageView); } override fun loadImage( context: Context, imageView: ImageView, url: String, maxWidth: Int, maxHeight: Int ) { if (!ActivityCompatHelper.assertValidRequest(context)) { return } Glide.with(context) .load(url) .override(maxWidth, maxHeight) .into(imageView) } override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) { if (!ActivityCompatHelper.assertValidRequest(context)) { return } Glide.with(context) .asBitmap() .load(url) .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) .placeholder(R.drawable.ps_image_placeholder) .into(imageView) } override fun pauseRequests(context: Context?) { context?.let { Glide.with(it).pauseRequests() } } override fun resumeRequests(context: Context?) { context?.let { Glide.with(it).resumeRequests() } } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { Glide.with(context) .load(url) .apply(RequestOptions().placeholder(R.drawable.ps_image_placeholder)) .into(imageView) } }