Skip to content

Commit 1a7b64a

Browse files
committed
feat: Replace access to coil's default image loader by forcing to use an unauthenticated one
1 parent d480da2 commit 1a7b64a

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

CrossAppLoginUI/src/main/kotlin/com/infomaniak/core/crossloginui/components/CrossLoginAvatar.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,31 @@ import androidx.compose.foundation.isSystemInDarkTheme
2222
import androidx.compose.material3.MaterialTheme
2323
import androidx.compose.material3.Surface
2424
import androidx.compose.runtime.Composable
25+
import androidx.compose.runtime.remember
2526
import androidx.compose.ui.Modifier
2627
import androidx.compose.ui.graphics.Color
2728
import androidx.compose.ui.platform.LocalContext
2829
import androidx.compose.ui.tooling.preview.Preview
2930
import androidx.compose.ui.tooling.preview.PreviewParameter
3031
import androidx.compose.ui.unit.dp
31-
import coil3.SingletonImageLoader
32-
import coil3.compose.LocalPlatformContext
3332
import com.infomaniak.core.avatar.components.Avatar
3433
import com.infomaniak.core.avatar.getBackgroundColorResBasedOnId
3534
import com.infomaniak.core.avatar.models.AvatarColors
3635
import com.infomaniak.core.avatar.models.AvatarType
3736
import com.infomaniak.core.avatar.models.AvatarUrlData
37+
import com.infomaniak.core.coil.ImageLoaderProvider
3838
import com.infomaniak.core.crossloginui.data.CrossLoginDefaults
3939
import com.infomaniak.core.crossloginui.previews.AccountsPreviewParameter
4040
import com.infomaniak.core.login.crossapp.ExternalAccount
4141

4242
@Composable
4343
internal fun CrossLoginAvatar(modifier: Modifier = Modifier, account: ExternalAccount, strokeColor: Color? = null) {
4444
val context = LocalContext.current
45+
val unauthenticatedImageLoader = remember(context) { ImageLoaderProvider.newImageLoader(context) }
46+
4547
Avatar(
4648
avatarType = AvatarType.getUrlOrInitials(
47-
account.avatarUrl?.let { AvatarUrlData(it, SingletonImageLoader.get(LocalPlatformContext.current)) },
49+
account.avatarUrl?.let { AvatarUrlData(it, unauthenticatedImageLoader) },
4850
initials = account.initials,
4951
colors = AvatarColors(
5052
// TODO: Adapt colors correctly for each app

MyKSuite/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ dependencies {
5050

5151
implementation(project(":Core"))
5252
implementation(project(":Core:Avatar"))
53+
implementation(project(":Core:Coil"))
5354
implementation(project(":Core:Compose:Basics"))
5455
implementation(project(":Core:Compose:Margin"))
5556
implementation(project(":Core:Compose:MaterialThemeFromXml"))

MyKSuite/src/main/java/com/infomaniak/core/myksuite/ui/data/AvatarData.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ package com.infomaniak.core.myksuite.ui.data
2020
import android.os.Parcelable
2121
import androidx.annotation.ColorInt
2222
import androidx.compose.runtime.Composable
23+
import androidx.compose.runtime.remember
2324
import androidx.compose.ui.graphics.Color
24-
import coil3.SingletonImageLoader
25-
import coil3.compose.LocalPlatformContext
25+
import androidx.compose.ui.platform.LocalContext
2626
import com.infomaniak.core.avatar.models.AvatarColors
2727
import com.infomaniak.core.avatar.models.AvatarType
2828
import com.infomaniak.core.avatar.models.AvatarUrlData
29+
import com.infomaniak.core.coil.ImageLoaderProvider
2930
import kotlinx.parcelize.Parcelize
3031

3132
@Parcelize
@@ -38,8 +39,11 @@ data class AvatarData(
3839
) : Parcelable {
3940
@Composable
4041
fun toAvatarType(): AvatarType {
42+
val context = LocalContext.current
43+
val unauthenticatedImageLoader = remember(context) { ImageLoaderProvider.newImageLoader(context) }
44+
4145
return AvatarType.getUrlOrInitials(
42-
avatarUrlData = uri?.let { AvatarUrlData(it, SingletonImageLoader.get(LocalPlatformContext.current)) },
46+
avatarUrlData = uri?.let { AvatarUrlData(it, unauthenticatedImageLoader) },
4347
initials = userInitials,
4448
colors = AvatarColors(
4549
containerColor = Color(backgroundColor),

0 commit comments

Comments
 (0)