Browse Source

Apply avatar colors to all the avatars across the app.

pull/1264/head
Benoit Marty 1 year ago committed by Benoit Marty
parent
commit
5d89647a89
  1. 13
      libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt

13
libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt

@ -26,7 +26,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
@ -34,6 +33,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage import coil.compose.AsyncImage
import io.element.android.libraries.designsystem.colors.AvatarColors import io.element.android.libraries.designsystem.colors.AvatarColors
import io.element.android.libraries.designsystem.colors.avatarColors
import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.PreviewGroup
import io.element.android.libraries.designsystem.preview.debugPlaceholderAvatar import io.element.android.libraries.designsystem.preview.debugPlaceholderAvatar
@ -53,9 +53,10 @@ fun Avatar(
.size(avatarData.size.dp) .size(avatarData.size.dp)
.clip(CircleShape) .clip(CircleShape)
if (avatarData.url.isNullOrBlank()) { if (avatarData.url.isNullOrBlank()) {
val avatarColors = initialAvatarColors ?: avatarColors(avatarData.id)
InitialsAvatar( InitialsAvatar(
avatarData = avatarData, avatarData = avatarData,
avatarColors = initialAvatarColors, avatarColors = avatarColors,
modifier = commonModifier, modifier = commonModifier,
) )
} else { } else {
@ -88,13 +89,11 @@ private fun ImageAvatar(
@Composable @Composable
private fun InitialsAvatar( private fun InitialsAvatar(
avatarData: AvatarData, avatarData: AvatarData,
avatarColors: AvatarColors?, avatarColors: AvatarColors,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
// Use temporary color for default avatar background, if avatarColors is not provided
val avatarColor = ElementTheme.colors.bgActionPrimaryDisabled
Box( Box(
modifier.background(color = avatarColors?.background ?: avatarColor) modifier.background(color = avatarColors.background)
) { ) {
val fontSize = avatarData.size.dp.toSp() / 2 val fontSize = avatarData.size.dp.toSp() / 2
val originalFont = ElementTheme.typography.fontHeadingMdBold val originalFont = ElementTheme.typography.fontHeadingMdBold
@ -104,7 +103,7 @@ private fun InitialsAvatar(
modifier = Modifier.align(Alignment.Center), modifier = Modifier.align(Alignment.Center),
text = avatarData.initial, text = avatarData.initial,
style = originalFont.copy(fontSize = fontSize, lineHeight = lineHeight, letterSpacing = 0.sp), style = originalFont.copy(fontSize = fontSize, lineHeight = lineHeight, letterSpacing = 0.sp),
color = avatarColors?.foreground ?: Color.White, color = avatarColors.foreground,
) )
} }
} }

Loading…
Cancel
Save