Naming convention and use MatrixMediaLoader instead of MatrixClient for Coil factories.

This commit is contained in:
Benoit Marty 2025-10-02 11:53:39 +02:00 committed by Benoit Marty
parent e0dffa4a46
commit cef55121cc
11 changed files with 26 additions and 26 deletions

View file

@ -11,10 +11,10 @@ import coil3.ImageLoader
import coil3.fetch.Fetcher
import coil3.request.Options
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
internal class AvatarDataFetcherFactory(
private val client: MatrixClient
private val matrixMediaLoader: MatrixMediaLoader
) : Fetcher.Factory<AvatarData> {
override fun create(
data: AvatarData,
@ -22,7 +22,7 @@ internal class AvatarDataFetcherFactory(
imageLoader: ImageLoader
): Fetcher {
return CoilMediaFetcher(
mediaLoader = client.mediaLoader,
mediaLoader = matrixMediaLoader,
mediaData = data.toMediaRequestData(),
)
}

View file

@ -18,11 +18,11 @@ import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.Provider
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
import okhttp3.OkHttpClient
interface LoggedInImageLoaderFactory {
fun newImageLoader(matrixClient: MatrixClient): ImageLoader
fun newImageLoader(matrixMediaLoader: MatrixMediaLoader): ImageLoader
}
@ContributesBinding(AppScope::class)
@ -31,7 +31,7 @@ class DefaultLoggedInImageLoaderFactory(
@ApplicationContext private val context: Context,
private val okHttpClient: Provider<OkHttpClient>,
) : LoggedInImageLoaderFactory {
override fun newImageLoader(matrixClient: MatrixClient): ImageLoader {
override fun newImageLoader(matrixMediaLoader: MatrixMediaLoader): ImageLoader {
return ImageLoader.Builder(context)
.components {
add(
@ -50,8 +50,8 @@ class DefaultLoggedInImageLoaderFactory(
}
add(AvatarDataKeyer())
add(MediaRequestDataKeyer())
add(AvatarDataFetcherFactory(matrixClient))
add(MediaRequestDataFetcherFactory(matrixClient))
add(AvatarDataFetcherFactory(matrixMediaLoader))
add(MediaRequestDataFetcherFactory(matrixMediaLoader))
}
.build()
}

View file

@ -49,7 +49,7 @@ class DefaultImageLoaderHolder(
return synchronized(map) {
map.getOrPut(client.sessionId) {
loggedInImageLoaderFactory
.newImageLoader(client)
.newImageLoader(client.matrixMediaLoader)
}
}
}

View file

@ -10,10 +10,10 @@ package io.element.android.libraries.matrix.ui.media
import coil3.ImageLoader
import coil3.fetch.Fetcher
import coil3.request.Options
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
internal class MediaRequestDataFetcherFactory(
private val client: MatrixClient
private val matrixMediaLoader: MatrixMediaLoader,
) : Fetcher.Factory<MediaRequestData> {
override fun create(
data: MediaRequestData,
@ -21,7 +21,7 @@ internal class MediaRequestDataFetcherFactory(
imageLoader: ImageLoader
): Fetcher {
return CoilMediaFetcher(
mediaLoader = client.mediaLoader,
mediaLoader = matrixMediaLoader,
mediaData = data,
)
}