Add back debugPlaceholderAvatar for inspection mode

This commit is contained in:
SpiritCroc 2024-04-08 09:59:02 +02:00
parent 2ee96f12ff
commit 218fc8c89c

View file

@ -28,11 +28,13 @@ 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.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.clearAndSetSemantics
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
import androidx.compose.ui.unit.dp 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.AsyncImagePainter import coil.compose.AsyncImagePainter
import coil.compose.SubcomposeAsyncImage import coil.compose.SubcomposeAsyncImage
import coil.compose.SubcomposeAsyncImageContent import coil.compose.SubcomposeAsyncImageContent
@ -40,6 +42,7 @@ import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.colors.AvatarColorsProvider import io.element.android.libraries.designsystem.colors.AvatarColorsProvider
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.text.toSp import io.element.android.libraries.designsystem.text.toSp
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import timber.log.Timber import timber.log.Timber
@ -73,21 +76,32 @@ private fun ImageAvatar(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
contentDescription: String? = null, contentDescription: String? = null,
) { ) {
SubcomposeAsyncImage( if (LocalInspectionMode.current) {
model = avatarData, // For compose previews, use debugPlaceholderAvatar()
contentDescription = contentDescription, // instead of falling back to initials avatar on load failure
contentScale = ContentScale.Crop, AsyncImage(
modifier = modifier model = avatarData,
) { contentDescription = contentDescription,
when (val state = painter.state) { placeholder = debugPlaceholderAvatar(),
is AsyncImagePainter.State.Success -> SubcomposeAsyncImageContent() modifier = modifier
is AsyncImagePainter.State.Error -> { )
SideEffect { } else {
Timber.e(state.result.throwable, "Error loading avatar $state\n${state.result}") SubcomposeAsyncImage(
model = avatarData,
contentDescription = contentDescription,
contentScale = ContentScale.Crop,
modifier = modifier
) {
when (val state = painter.state) {
is AsyncImagePainter.State.Success -> SubcomposeAsyncImageContent()
is AsyncImagePainter.State.Error -> {
SideEffect {
Timber.e(state.result.throwable, "Error loading avatar $state\n${state.result}")
}
InitialsAvatar(avatarData = avatarData)
} }
InitialsAvatar(avatarData = avatarData) else -> InitialsAvatar(avatarData = avatarData)
} }
else -> InitialsAvatar(avatarData = avatarData)
} }
} }
} }