Implement a in-memory cache for user avatar colors.

This commit is contained in:
Benoit Marty
2023-09-08 13:51:46 +02:00
committed by Benoit Marty
parent 06a607abf8
commit 5a85efc458
5 changed files with 42 additions and 23 deletions

View File

@@ -43,7 +43,7 @@ import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMo
import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage
import io.element.android.libraries.designsystem.colors.AvatarColors
import io.element.android.libraries.designsystem.colors.avatarColors
import io.element.android.libraries.designsystem.colors.AvatarColorsProvider
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
@@ -119,21 +119,21 @@ private fun NotificationsOptInContent(
) {
NotificationRow(
avatarLetter = "M",
avatarColors = avatarColors("5"),
avatarColors = AvatarColorsProvider.provide("5", ElementTheme.isLightTheme),
firstRowPercent = 1f,
secondRowPercent = 0.4f
)
NotificationRow(
avatarLetter = "A",
avatarColors = avatarColors("1"),
avatarColors = AvatarColorsProvider.provide("1", ElementTheme.isLightTheme),
firstRowPercent = 1f,
secondRowPercent = 1f
)
NotificationRow(
avatarLetter = "T",
avatarColors = avatarColors("4"),
avatarColors = AvatarColorsProvider.provide("4", ElementTheme.isLightTheme),
firstRowPercent = 0.65f,
secondRowPercent = 0f
)

View File

@@ -75,7 +75,7 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemImageContent
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemPollContent
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
import io.element.android.libraries.designsystem.colors.avatarColors
import io.element.android.libraries.designsystem.colors.AvatarColorsProvider
import io.element.android.libraries.designsystem.components.EqualWidthColumn
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
@@ -328,7 +328,7 @@ private fun MessageSenderInformation(
) {
val avatarStrokeColor = MaterialTheme.colorScheme.background
val avatarSize = senderAvatar.size.dp
val avatarColors = avatarColors(senderAvatar.id)
val avatarColors = AvatarColorsProvider.provide(senderAvatar.id, ElementTheme.isLightTheme)
Box(
modifier = modifier
) {