forked from GitHub-Mirror/riotX-android
Avoid duplicated code
This commit is contained in:
parent
0db8e7da43
commit
394b89e76b
@ -31,6 +31,7 @@ import im.vector.matrix.android.api.session.content.ContentUrlResolver
|
|||||||
import im.vector.matrix.android.internal.crypto.attachments.ElementToDecrypt
|
import im.vector.matrix.android.internal.crypto.attachments.ElementToDecrypt
|
||||||
import im.vector.riotx.core.di.ActiveSessionHolder
|
import im.vector.riotx.core.di.ActiveSessionHolder
|
||||||
import im.vector.riotx.core.glide.GlideApp
|
import im.vector.riotx.core.glide.GlideApp
|
||||||
|
import im.vector.riotx.core.glide.GlideRequest
|
||||||
import im.vector.riotx.core.utils.DimensionUtils.dpToPx
|
import im.vector.riotx.core.utils.DimensionUtils.dpToPx
|
||||||
import kotlinx.android.parcel.Parcelize
|
import kotlinx.android.parcel.Parcelize
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@ -67,27 +68,7 @@ class ImageContentRenderer @Inject constructor(private val activeSessionHolder:
|
|||||||
imageView.layoutParams.height = height
|
imageView.layoutParams.height = height
|
||||||
imageView.layoutParams.width = width
|
imageView.layoutParams.width = width
|
||||||
|
|
||||||
val glideRequest = if (data.elementToDecrypt != null) {
|
createGlideRequest(data, mode, imageView, width, height)
|
||||||
// Encrypted image
|
|
||||||
GlideApp
|
|
||||||
.with(imageView)
|
|
||||||
.load(data)
|
|
||||||
} else {
|
|
||||||
// Clear image
|
|
||||||
val contentUrlResolver = activeSessionHolder.getActiveSession().contentUrlResolver()
|
|
||||||
val resolvedUrl = when (mode) {
|
|
||||||
Mode.FULL_SIZE -> contentUrlResolver.resolveFullSize(data.url)
|
|
||||||
Mode.THUMBNAIL -> contentUrlResolver.resolveThumbnail(data.url, width, height, ContentUrlResolver.ThumbnailMethod.SCALE)
|
|
||||||
}
|
|
||||||
//Fallback to base url
|
|
||||||
?: data.url
|
|
||||||
|
|
||||||
GlideApp
|
|
||||||
.with(imageView)
|
|
||||||
.load(resolvedUrl)
|
|
||||||
}
|
|
||||||
|
|
||||||
glideRequest
|
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
.transform(RoundedCorners(dpToPx(8, imageView.context)))
|
.transform(RoundedCorners(dpToPx(8, imageView.context)))
|
||||||
.thumbnail(0.3f)
|
.thumbnail(0.3f)
|
||||||
@ -95,31 +76,11 @@ class ImageContentRenderer @Inject constructor(private val activeSessionHolder:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun renderFitTarget(data: Data, mode: Mode, imageView: ImageView, callback :((Boolean) -> Unit)? = null) {
|
fun renderFitTarget(data: Data, mode: Mode, imageView: ImageView, callback: ((Boolean) -> Unit)? = null) {
|
||||||
val (width, height) = processSize(data, mode)
|
val (width, height) = processSize(data, mode)
|
||||||
|
|
||||||
val glideRequest = if (data.elementToDecrypt != null) {
|
createGlideRequest(data, mode, imageView, width, height)
|
||||||
// Encrypted image
|
.listener(object : RequestListener<Drawable> {
|
||||||
GlideApp
|
|
||||||
.with(imageView)
|
|
||||||
.load(data)
|
|
||||||
} else {
|
|
||||||
// Clear image
|
|
||||||
val contentUrlResolver = activeSessionHolder.getActiveSession().contentUrlResolver()
|
|
||||||
val resolvedUrl = when (mode) {
|
|
||||||
Mode.FULL_SIZE -> contentUrlResolver.resolveFullSize(data.url)
|
|
||||||
Mode.THUMBNAIL -> contentUrlResolver.resolveThumbnail(data.url, width, height, ContentUrlResolver.ThumbnailMethod.SCALE)
|
|
||||||
}
|
|
||||||
//Fallback to base url
|
|
||||||
?: data.url
|
|
||||||
|
|
||||||
GlideApp
|
|
||||||
.with(imageView)
|
|
||||||
.load(resolvedUrl)
|
|
||||||
}
|
|
||||||
|
|
||||||
glideRequest
|
|
||||||
.listener(object: RequestListener<Drawable> {
|
|
||||||
override fun onLoadFailed(e: GlideException?,
|
override fun onLoadFailed(e: GlideException?,
|
||||||
model: Any?,
|
model: Any?,
|
||||||
target: Target<Drawable>?,
|
target: Target<Drawable>?,
|
||||||
@ -140,7 +101,28 @@ class ImageContentRenderer @Inject constructor(private val activeSessionHolder:
|
|||||||
})
|
})
|
||||||
.fitCenter()
|
.fitCenter()
|
||||||
.into(imageView)
|
.into(imageView)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun createGlideRequest(data: Data, mode: Mode, imageView: ImageView, width: Int, height: Int): GlideRequest<Drawable> {
|
||||||
|
return if (data.elementToDecrypt != null) {
|
||||||
|
// Encrypted image
|
||||||
|
GlideApp
|
||||||
|
.with(imageView)
|
||||||
|
.load(data)
|
||||||
|
} else {
|
||||||
|
// Clear image
|
||||||
|
val contentUrlResolver = activeSessionHolder.getActiveSession().contentUrlResolver()
|
||||||
|
val resolvedUrl = when (mode) {
|
||||||
|
Mode.FULL_SIZE -> contentUrlResolver.resolveFullSize(data.url)
|
||||||
|
Mode.THUMBNAIL -> contentUrlResolver.resolveThumbnail(data.url, width, height, ContentUrlResolver.ThumbnailMethod.SCALE)
|
||||||
|
}
|
||||||
|
//Fallback to base url
|
||||||
|
?: data.url
|
||||||
|
|
||||||
|
GlideApp
|
||||||
|
.with(imageView)
|
||||||
|
.load(resolvedUrl)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun render(data: Data, imageView: BigImageView) {
|
fun render(data: Data, imageView: BigImageView) {
|
||||||
|
Loading…
Reference in New Issue
Block a user