MediaResolver: exposes Result instead of Nullable

This commit is contained in:
ganfra 2023-04-26 16:13:09 +02:00
parent 9dcc3780ac
commit c920dfb97a
4 changed files with 25 additions and 10 deletions

View file

@ -18,11 +18,12 @@ package io.element.android.libraries.matrix.impl.media
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.media.MediaResolver
import java.lang.IllegalStateException
internal class RustMediaResolver(private val client: MatrixClient) : MediaResolver {
override suspend fun resolve(url: String?, kind: MediaResolver.Kind): ByteArray? {
if (url.isNullOrEmpty()) return null
override suspend fun resolve(url: String?, kind: MediaResolver.Kind): Result<ByteArray> {
if (url.isNullOrEmpty()) return Result.failure(IllegalStateException("The url is null or empty"))
return when (kind) {
is MediaResolver.Kind.Content -> client.loadMediaContent(url)
is MediaResolver.Kind.Thumbnail -> client.loadMediaThumbnail(
@ -30,6 +31,6 @@ internal class RustMediaResolver(private val client: MatrixClient) : MediaResolv
kind.width.toLong(),
kind.height.toLong()
)
}.getOrNull()
}
}
}