@@ -31,6 +31,7 @@ import androidx.compose.material3.Surface
31
31
import androidx.compose.runtime.Composable
32
32
import androidx.compose.runtime.getValue
33
33
import androidx.compose.runtime.mutableStateOf
34
+ import androidx.compose.runtime.remember
34
35
import androidx.compose.runtime.saveable.rememberSaveable
35
36
import androidx.compose.runtime.setValue
36
37
import androidx.compose.ui.Alignment
@@ -46,6 +47,7 @@ import coil3.compose.AsyncImage
46
47
import coil3.request.ImageRequest
47
48
import coil3.request.crossfade
48
49
import com.infomaniak.core.avatar.getBackgroundColorResBasedOnId
50
+ import com.infomaniak.core.coil.ImageLoaderProvider
49
51
import com.infomaniak.core.useravatar.AvatarData
50
52
import com.infomaniak.core.useravatar.AvatarDisplayState
51
53
import com.infomaniak.core.useravatar.component.InitialsTextAvatar
@@ -71,14 +73,17 @@ fun UserAvatar(modifier: Modifier = Modifier, avatarData: AvatarData, border: Bo
71
73
AvatarDisplayState .Initials -> InitialsTextAvatar (avatarData)
72
74
AvatarDisplayState .UnknownUser -> UnknownUserIcon (avatarData.iconColor)
73
75
AvatarDisplayState .Avatar -> {
74
- val imageRequest = ImageRequest .Builder (LocalContext .current)
76
+ val context = LocalContext .current
77
+ val unauthenticatedImageLoader = remember(context) { ImageLoaderProvider .newImageLoader(context) }
78
+ val imageRequest = ImageRequest .Builder (context )
75
79
.data(avatarData.uri)
76
80
.crossfade(true )
77
81
.build()
78
82
79
83
AsyncImage (
80
84
model = imageRequest,
81
85
contentDescription = null ,
86
+ imageLoader = unauthenticatedImageLoader,
82
87
contentScale = ContentScale .Crop ,
83
88
onError = { avatarDisplayState = computeAvatarState(avatarData, hasLoadingFailed = true ) },
84
89
)
0 commit comments