Apply suggestion:

- Added `MediaSource.safeUrl` property replacing `withCleanUrl` method.
- Made `url` private so it can't be used externally.
- Reverted code in `CoilMediaFetcher`
- Also add tests
This commit is contained in:
Jorge Martín
2026-02-27 09:33:03 +01:00
parent 7fe0cc4d45
commit cdd850d4dd
9 changed files with 50 additions and 41 deletions

View File

@@ -16,7 +16,6 @@ import coil3.fetch.SourceFetchResult
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.api.media.toFile
import io.element.android.libraries.matrix.api.media.withCleanUrl
import okio.Buffer
import okio.FileSystem
import okio.Path.Companion.toOkioPath
@@ -28,14 +27,10 @@ internal class CoilMediaFetcher(
private val mediaData: MediaRequestData,
) : Fetcher {
override suspend fun fetch(): FetchResult? {
val source = mediaData.source
val mediaSource = when {
source == null -> {
Timber.e("MediaData source is null")
return null
}
source.url.startsWith("mxc:") -> source.withCleanUrl()
else -> source
val mediaSource = mediaData.source
if (mediaSource == null) {
Timber.e("MediaData source is null")
return null
}
return when (val kind = mediaData.kind) {
is MediaRequestData.Kind.Content -> fetchContent(mediaSource)

View File

@@ -25,5 +25,5 @@ internal class MediaRequestDataKeyer : Keyer<MediaRequestData> {
}
private fun MediaRequestData.toKey(): String? {
return source?.let { "${it.url}_$kind" }
return source?.let { "${it.safeUrl}_$kind" }
}