diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/InitialOrImageAvatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/InitialOrImageAvatar.kt new file mode 100644 index 0000000000..e58a9f33c5 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/InitialOrImageAvatar.kt @@ -0,0 +1,39 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.libraries.designsystem.components.avatar + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp + +@Composable +internal fun InitialOrImageAvatar( + avatarData: AvatarData, + hideAvatarImage: Boolean, + forcedAvatarSize: Dp?, + avatarType: AvatarType, + modifier: Modifier, + contentDescription: String? +) { + when { + avatarData.url.isNullOrBlank() || hideAvatarImage -> InitialLetterAvatar( + avatarData = avatarData, + avatarType = avatarType, + forcedAvatarSize = forcedAvatarSize, + modifier = modifier, + contentDescription = contentDescription, + ) + else -> ImageAvatar( + avatarData = avatarData, + avatarType = avatarType, + forcedAvatarSize = forcedAvatarSize, + modifier = modifier, + contentDescription = contentDescription, + ) + } +} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/RoomAvatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/RoomAvatar.kt index 1b14a149d3..3c3ec8b789 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/RoomAvatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/RoomAvatar.kt @@ -28,23 +28,14 @@ internal fun RoomAvatar( ) } avatarData.url != null || avatarType.heroes.isEmpty() -> { - if (avatarData.url.isNullOrBlank() || hideAvatarImage) { - InitialLetterAvatar( - avatarData = avatarData, - avatarType = avatarType, - modifier = modifier, - contentDescription = contentDescription, - forcedAvatarSize = null, - ) - } else { - ImageAvatar( - avatarData = avatarData, - avatarType = avatarType, - forcedAvatarSize = null, - modifier = modifier, - contentDescription = contentDescription, - ) - } + InitialOrImageAvatar( + avatarData = avatarData, + hideAvatarImage = hideAvatarImage, + avatarType = avatarType, + forcedAvatarSize = null, + modifier = modifier, + contentDescription = contentDescription, + ) } else -> { AvatarCluster( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/SpaceAvatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/SpaceAvatar.kt index 6f8ec2fda9..e70edb0e21 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/SpaceAvatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/SpaceAvatar.kt @@ -33,15 +33,9 @@ internal fun SpaceAvatar( modifier = modifier, contentDescription = contentDescription, ) - avatarData.url.isNullOrBlank() || hideAvatarImage -> InitialLetterAvatar( - avatarData = avatarData, - avatarType = avatarType, - modifier = modifier, - contentDescription = contentDescription, - forcedAvatarSize = null, - ) - else -> ImageAvatar( + else -> InitialOrImageAvatar( avatarData = avatarData, + hideAvatarImage = hideAvatarImage, avatarType = avatarType, forcedAvatarSize = null, modifier = modifier, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/UserAvatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/UserAvatar.kt index 54b0708078..699b92b3af 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/UserAvatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/UserAvatar.kt @@ -19,21 +19,12 @@ internal fun UserAvatar( forcedAvatarSize: Dp? = null, hideImage: Boolean = false, ) { - if (avatarData.url.isNullOrBlank() || hideImage) { - InitialLetterAvatar( - avatarData = avatarData, - avatarType = AvatarType.User, - forcedAvatarSize = forcedAvatarSize, - modifier = modifier, - contentDescription = contentDescription, - ) - } else { - ImageAvatar( - avatarData = avatarData, - avatarType = AvatarType.User, - forcedAvatarSize = forcedAvatarSize, - modifier = modifier, - contentDescription = contentDescription, - ) - } + InitialOrImageAvatar( + avatarData = avatarData, + hideAvatarImage = hideImage, + avatarType = AvatarType.User, + modifier = modifier, + contentDescription = contentDescription, + forcedAvatarSize = forcedAvatarSize, + ) }