Content : make content url resolution aware of homeserver url

This commit is contained in:
ganfra
2019-01-23 16:25:24 +01:00
parent 1d400180bc
commit cc4c1cf308
8 changed files with 131 additions and 26 deletions

View File

@ -4,16 +4,13 @@ import android.widget.ImageView
import androidx.core.content.ContextCompat
import com.amulyakhare.textdrawable.TextDrawable
import com.bumptech.glide.request.RequestOptions
import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.room.model.RoomMember
import im.vector.matrix.android.api.session.room.model.RoomSummary
import im.vector.riotredesign.R
import im.vector.riotredesign.core.extensions.firstCharAsString
import im.vector.riotredesign.core.glide.GlideApp
private const val MEDIA_URL = "https://matrix.org/_matrix/media/v1/download/"
private const val MXC_PREFIX = "mxc://"
object AvatarRenderer {
fun render(roomMember: RoomMember, imageView: ImageView) {
@ -28,7 +25,7 @@ object AvatarRenderer {
if (name.isNullOrEmpty()) {
return
}
val resolvedUrl = ContentUrlResolver.resolve(avatarUrl)
val resolvedUrl = Matrix.getInstance().currentSession.contentUrlResolver().resolveFullSize(avatarUrl)
val avatarColor = ContextCompat.getColor(imageView.context, R.color.pale_teal)
val fallbackDrawable = TextDrawable.builder().buildRound(name.firstCharAsString().toUpperCase(), avatarColor)

View File

@ -5,6 +5,7 @@ import android.graphics.Point
import android.media.ExifInterface
import android.view.WindowManager
import android.widget.ImageView
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.matrix.android.api.session.room.model.message.MessageImageContent
import im.vector.riotredesign.core.glide.GlideApp
@ -48,12 +49,17 @@ object MessageImageRenderer {
imageView.layoutParams.height = finalHeight
imageView.layoutParams.width = finalWidth
val resolvedUrl = ContentUrlResolver.resolve(messageContent.url) ?: return
val contentUrlResolver = Matrix.getInstance().currentSession.contentUrlResolver()
val resolvedUrl = contentUrlResolver.resolveThumbnail(
messageContent.url,
finalWidth,
finalHeight,
ContentUrlResolver.ThumbnailMethod.SCALE
) ?: return
GlideApp
.with(imageView)
.load(resolvedUrl)
.override(finalWidth, finalHeight)
.thumbnail(0.3f)
.into(imageView)
}