[MatrixSDK] start mapping all the timeline objects

This commit is contained in:
ganfra 2023-03-10 18:32:46 +01:00
parent 98911a12ad
commit fb85f35525
37 changed files with 1054 additions and 49 deletions

View file

@ -18,9 +18,7 @@ package io.element.android.libraries.matrix.ui.media
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.api.media.MediaResolver
import org.matrix.rustcomponents.sdk.mediaSourceFromUrl
fun AvatarData.toMetadata(): MediaResolver.Meta {
val mediaSource = url?.let { mediaSourceFromUrl(it) }
return MediaResolver.Meta(source = mediaSource, kind = MediaResolver.Kind.Thumbnail(size.value))
return MediaResolver.Meta(url = url, kind = MediaResolver.Kind.Thumbnail(size.value))
}

View file

@ -33,7 +33,7 @@ internal class MediaFetcher(
) : Fetcher {
override suspend fun fetch(): FetchResult? {
val byteArray = mediaResolver?.resolve(meta) ?: return null
val byteArray = mediaResolver?.resolve(meta.url, meta.kind) ?: return null
val byteBuffer = ByteBuffer.wrap(byteArray)
return imageLoader.components.newFetcher(byteBuffer, options, imageLoader)?.first?.fetch()
}

View file

@ -33,4 +33,4 @@ internal class MediaKeyer : Keyer<MediaResolver.Meta> {
}
}
private fun MediaResolver.Meta.toKey() = "${source?.url()}_${kind}"
private fun MediaResolver.Meta.toKey() = "${url}_${kind}"