From f2ebac783ddd84110ab49d3bac88e44bb4ce0c58 Mon Sep 17 00:00:00 2001 From: austinried <4966622+austinried@users.noreply.github.com> Date: Wed, 23 Sep 2026 16:44:57 +0000 Subject: [PATCH] crossfade only the hero image, not the grid --- app/src/main/kotlin/com/subtracks/SubtracksApp.kt | 2 -- .../main/kotlin/com/subtracks/ui/components/Components.kt | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/subtracks/SubtracksApp.kt b/app/src/main/kotlin/com/subtracks/SubtracksApp.kt index b1113117..54113249 100644 --- a/app/src/main/kotlin/com/subtracks/SubtracksApp.kt +++ b/app/src/main/kotlin/com/subtracks/SubtracksApp.kt @@ -4,7 +4,6 @@ import android.app.Application import coil3.ImageLoader import coil3.SingletonImageLoader import coil3.network.okhttp.OkHttpNetworkFetcherFactory -import coil3.request.crossfade import com.subtracks.di.appModule import okhttp3.OkHttpClient import org.koin.core.context.startKoin @@ -23,7 +22,6 @@ class SubtracksApp : Application() { ImageLoader .Builder(context) .components { add(OkHttpNetworkFetcherFactory(callFactory = { http })) } - .crossfade(150) .build() } } diff --git a/app/src/main/kotlin/com/subtracks/ui/components/Components.kt b/app/src/main/kotlin/com/subtracks/ui/components/Components.kt index be602dab..029684ab 100644 --- a/app/src/main/kotlin/com/subtracks/ui/components/Components.kt +++ b/app/src/main/kotlin/com/subtracks/ui/components/Components.kt @@ -18,6 +18,7 @@ import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage import coil3.compose.LocalPlatformContext import coil3.request.ImageRequest +import coil3.request.crossfade import com.subtracks.data.model.CoverArtRef @Composable @@ -37,7 +38,7 @@ fun CoverArt( ) if (thumbnailRef != null && thumbnailRef != ref) { AsyncImage( - model = remember(thumbnailRef) { imageRequest(context, thumbnailRef) }, + model = remember(thumbnailRef) { imageRequest(context, thumbnailRef, crossfade = false) }, contentDescription = null, contentScale = ContentScale.Crop, modifier = Modifier.fillMaxSize(), @@ -45,7 +46,7 @@ fun CoverArt( } if (ref != null) { AsyncImage( - model = remember(ref) { imageRequest(context, ref) }, + model = remember(ref) { imageRequest(context, ref, crossfade = thumbnailRef != null) }, contentDescription = null, contentScale = ContentScale.Crop, modifier = Modifier.fillMaxSize(), @@ -57,12 +58,14 @@ fun CoverArt( private fun imageRequest( context: Context, ref: CoverArtRef, + crossfade: Boolean, ): ImageRequest = ImageRequest .Builder(context) .data(ref.url) .memoryCacheKey(ref.cacheKey) .diskCacheKey(ref.cacheKey) + .crossfade(crossfade) .build() @Composable