fix(deps): update coil to v3.2.0 (#4712)

* fix(deps): update coil to v3.2.0

* Fix compilation issue. Need to provide an image for preview.

https://coil-kt.github.io/coil/compose/#previews

* Improve preview for images.

* Update screenshots

* More cleanup

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
renovate[bot] 2025-06-05 09:49:27 +02:00 committed by GitHub
parent 0ded7f7f34
commit 96063373b7
155 changed files with 362 additions and 399 deletions

View file

@ -102,7 +102,7 @@ fun TimelineItemImageView(
} }
), ),
model = content.thumbnailMediaRequestData, model = content.thumbnailMediaRequestData,
contentScale = ContentScale.Fit, contentScale = ContentScale.Crop,
alignment = Alignment.Center, alignment = Alignment.Center,
contentDescription = description, contentDescription = description,
onState = { isLoaded = it is AsyncImagePainter.State.Success }, onState = { isLoaded = it is AsyncImagePainter.State.Success },

View file

@ -76,7 +76,7 @@ fun TimelineItemStickerView(
mimeType = content.mimeType, mimeType = content.mimeType,
), ),
), ),
contentScale = ContentScale.Fit, contentScale = ContentScale.Crop,
alignment = Alignment.Center, alignment = Alignment.Center,
contentDescription = description, contentDescription = description,
onState = { isLoaded = it is AsyncImagePainter.State.Success }, onState = { isLoaded = it is AsyncImagePainter.State.Success },

View file

@ -122,7 +122,7 @@ fun TimelineItemVideoView(
height = content.thumbnailHeight?.toLong() ?: MAX_THUMBNAIL_HEIGHT, height = content.thumbnailHeight?.toLong() ?: MAX_THUMBNAIL_HEIGHT,
) )
), ),
contentScale = ContentScale.Fit, contentScale = ContentScale.Crop,
alignment = Alignment.Center, alignment = Alignment.Center,
contentDescription = description, contentDescription = description,
onState = { isLoaded = it is AsyncImagePainter.State.Success }, onState = { isLoaded = it is AsyncImagePainter.State.Success },

View file

@ -41,7 +41,6 @@ import io.element.android.libraries.designsystem.components.preferences.Preferen
import io.element.android.libraries.designsystem.modifiers.onTabOrEnterKeyFocusNext import io.element.android.libraries.designsystem.modifiers.onTabOrEnterKeyFocusNext
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
import io.element.android.libraries.designsystem.theme.components.Button import io.element.android.libraries.designsystem.theme.components.Button
import io.element.android.libraries.designsystem.theme.components.ListItem import io.element.android.libraries.designsystem.theme.components.ListItem
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
@ -74,8 +73,8 @@ fun BugReportView(
TextField( TextField(
value = descriptionFieldState, value = descriptionFieldState,
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.onTabOrEnterKeyFocusNext(LocalFocusManager.current), .onTabOrEnterKeyFocusNext(LocalFocusManager.current),
enabled = isFormEnabled, enabled = isFormEnabled,
placeholder = stringResource(id = R.string.screen_bug_report_editor_placeholder), placeholder = stringResource(id = R.string.screen_bug_report_editor_placeholder),
supportingText = stringResource(id = R.string.screen_bug_report_editor_description), supportingText = stringResource(id = R.string.screen_bug_report_editor_description),
@ -139,7 +138,6 @@ fun BugReportView(
modifier = Modifier.fillMaxWidth(fraction = 0.5f), modifier = Modifier.fillMaxWidth(fraction = 0.5f),
model = model, model = model,
contentDescription = null, contentDescription = null,
placeholder = debugPlaceholderBackground(),
) )
} }
} }
@ -152,8 +150,8 @@ fun BugReportView(
enabled = state.submitEnabled, enabled = state.submitEnabled,
showProgress = state.sending.isLoading(), showProgress = state.sending.isLoading(),
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(top = 24.dp, bottom = 16.dp) .padding(top = 24.dp, bottom = 16.dp)
) )
} }
} }

View file

@ -64,6 +64,7 @@ import io.element.android.libraries.designsystem.theme.components.SearchBarResul
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TextButton import io.element.android.libraries.designsystem.theme.components.TextButton
import io.element.android.libraries.designsystem.theme.components.TopAppBar import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.RoomMembershipState import io.element.android.libraries.matrix.api.room.RoomMembershipState
@ -397,7 +398,9 @@ internal fun ChangeRolesViewPreview(@PreviewParameter(ChangeRolesStateProvider::
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun PendingMemberRowWithLongNamePreview() { internal fun PendingMemberRowWithLongNamePreview() {
ElementPreview { ElementPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar,
) {
MemberRow( MemberRow(
avatarData = AvatarData("userId", "A very long name that should be truncated", "https://example.com/avatar.png", AvatarSize.UserListItem), avatarData = AvatarData("userId", "A very long name that should be truncated", "https://example.com/avatar.png", AvatarSize.UserListItem),
name = "A very long name that should be truncated", name = "A very long name that should be truncated",

View file

@ -28,6 +28,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.core.UserId
@Composable @Composable
@ -42,7 +43,8 @@ fun VerificationUserProfileContent(
} }
Row( Row(
modifier = modifier.fillMaxWidth() modifier = modifier
.fillMaxWidth()
.clip(RoundedCornerShape(8.dp)) .clip(RoundedCornerShape(8.dp))
.background(ElementTheme.colors.bgSubtleSecondary) .background(ElementTheme.colors.bgSubtleSecondary)
.padding(12.dp), .padding(12.dp),
@ -64,7 +66,9 @@ fun VerificationUserProfileContent(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun VerificationUserProfileContentPreview() = ElementPreview { internal fun VerificationUserProfileContentPreview() = ElementPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar
) {
VerificationUserProfileContent( VerificationUserProfileContent(
userId = UserId("@alice:example.com"), userId = UserId("@alice:example.com"),
displayName = "Alice", displayName = "Alice",

View file

@ -38,7 +38,7 @@ serialization_json = "1.8.1"
#other #other
detekt = "1.23.8" detekt = "1.23.8"
coil = "3.1.0" coil = "3.2.0"
showkase = "1.0.3" showkase = "1.0.3"
appyx = "1.7.1" appyx = "1.7.1"
sqldelight = "2.1.0" sqldelight = "2.1.0"

View file

@ -59,13 +59,11 @@ import androidx.compose.ui.graphics.nativeCanvas
import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.graphics.painter.BitmapPainter
import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalFontFamilyResolver import androidx.compose.ui.platform.LocalFontFamilyResolver
import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontStyle
@ -92,9 +90,10 @@ import com.airbnb.android.showkase.annotation.ShowkaseComposable
import com.vanniktech.blurhash.BlurHash import com.vanniktech.blurhash.BlurHash
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.libraries.designsystem.R
import io.element.android.libraries.designsystem.colors.AvatarColorsProvider 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.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.preview.PreviewGroup
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
@ -103,6 +102,7 @@ import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.MediumTopAppBar import io.element.android.libraries.designsystem.theme.components.MediumTopAppBar
import io.element.android.libraries.designsystem.theme.components.Scaffold import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -465,7 +465,9 @@ internal fun BloomPreview() {
var topAppBarHeight by remember { mutableIntStateOf(-1) } var topAppBarHeight by remember { mutableIntStateOf(-1) }
val topAppBarState = rememberTopAppBarState() val topAppBarState = rememberTopAppBarState()
val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(topAppBarState) val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(topAppBarState)
ElementPreview { ElementPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar,
) {
Scaffold( Scaffold(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
@ -489,14 +491,13 @@ internal fun BloomPreview() {
scrolledContainerColor = Color.Black.copy(alpha = 0.05f), scrolledContainerColor = Color.Black.copy(alpha = 0.05f),
), ),
navigationIcon = { navigationIcon = {
Image( Avatar(
modifier = Modifier avatarData = AvatarData(
.padding(start = 8.dp) id = "sample-avatar",
.size(32.dp) name = "sample",
.clip(CircleShape), url = "aURL",
painter = painterResource(id = R.drawable.sample_avatar), size = AvatarSize.CurrentUserTopBar,
contentScale = ContentScale.Crop, ),
contentDescription = null
) )
}, },
actions = { actions = {

View file

@ -21,7 +21,6 @@ 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.semantics.contentDescription import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
@ -29,7 +28,6 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
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 coil3.compose.AsyncImage
import coil3.compose.AsyncImagePainter import coil3.compose.AsyncImagePainter
import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImage
import coil3.compose.SubcomposeAsyncImageContent import coil3.compose.SubcomposeAsyncImageContent
@ -37,9 +35,9 @@ 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 io.element.android.libraries.designsystem.utils.CommonDrawables
import timber.log.Timber import timber.log.Timber
@Composable @Composable
@ -79,41 +77,30 @@ private fun ImageAvatar(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
contentDescription: String? = null, contentDescription: String? = null,
) { ) {
if (LocalInspectionMode.current) { SubcomposeAsyncImage(
// For compose previews, use debugPlaceholderAvatar() model = avatarData,
// instead of falling back to initials avatar on load failure contentDescription = contentDescription,
AsyncImage( contentScale = ContentScale.Crop,
model = avatarData, modifier = modifier
contentDescription = contentDescription, ) {
placeholder = debugPlaceholderAvatar(), val collectedState by painter.state.collectAsState()
modifier = modifier when (val state = collectedState) {
) is AsyncImagePainter.State.Success -> SubcomposeAsyncImageContent()
} else { is AsyncImagePainter.State.Error -> {
SubcomposeAsyncImage( SideEffect {
model = avatarData, Timber.e(state.result.throwable, "Error loading avatar $state\n${state.result}")
contentDescription = contentDescription,
contentScale = ContentScale.Crop,
modifier = modifier
) {
val collectedState by painter.state.collectAsState()
when (val state = collectedState) {
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,
forcedAvatarSize = forcedAvatarSize,
contentDescription = contentDescription,
)
} }
else -> InitialsAvatar( InitialsAvatar(
avatarData = avatarData, avatarData = avatarData,
forcedAvatarSize = forcedAvatarSize, forcedAvatarSize = forcedAvatarSize,
contentDescription = contentDescription, contentDescription = contentDescription,
) )
} }
else -> InitialsAvatar(
avatarData = avatarData,
forcedAvatarSize = forcedAvatarSize,
contentDescription = contentDescription,
)
} }
} }
} }
@ -151,7 +138,9 @@ private fun InitialsAvatar(
@Preview(group = PreviewGroup.Avatars) @Preview(group = PreviewGroup.Avatars)
@Composable @Composable
internal fun AvatarPreview(@PreviewParameter(AvatarDataProvider::class) avatarData: AvatarData) = internal fun AvatarPreview(@PreviewParameter(AvatarDataProvider::class) avatarData: AvatarData) =
ElementThemedPreview { ElementThemedPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar,
) {
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(16.dp) horizontalArrangement = Arrangement.spacedBy(16.dp)

View file

@ -7,14 +7,19 @@
package io.element.android.libraries.designsystem.preview package io.element.android.libraries.designsystem.preview
import androidx.annotation.DrawableRes
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.res.ResourcesCompat
import coil3.annotation.ExperimentalCoilApi import coil3.annotation.ExperimentalCoilApi
import coil3.asImage
import coil3.compose.AsyncImagePreviewHandler import coil3.compose.AsyncImagePreviewHandler
import coil3.compose.LocalAsyncImagePreviewHandler import coil3.compose.LocalAsyncImagePreviewHandler
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.theme.components.Surface import io.element.android.libraries.designsystem.theme.components.Surface
import io.element.android.libraries.designsystem.utils.CommonDrawables
@OptIn(ExperimentalCoilApi::class) @OptIn(ExperimentalCoilApi::class)
@Composable @Composable
@ -22,9 +27,16 @@ import io.element.android.libraries.designsystem.theme.components.Surface
fun ElementPreview( fun ElementPreview(
darkTheme: Boolean = isSystemInDarkTheme(), darkTheme: Boolean = isSystemInDarkTheme(),
showBackground: Boolean = true, showBackground: Boolean = true,
@DrawableRes
drawableFallbackForImages: Int = CommonDrawables.sample_background,
content: @Composable () -> Unit content: @Composable () -> Unit
) { ) {
CompositionLocalProvider(LocalAsyncImagePreviewHandler provides AsyncImagePreviewHandler { null }) { val context = LocalContext.current
CompositionLocalProvider(
LocalAsyncImagePreviewHandler provides AsyncImagePreviewHandler {
ResourcesCompat.getDrawable(context.resources, drawableFallbackForImages, null)!!.asImage()
}
) {
ElementTheme(darkTheme = darkTheme) { ElementTheme(darkTheme = darkTheme) {
if (showBackground) { if (showBackground) {
// If we have a proper contentColor applied we need a Surface instead of a Box // If we have a proper contentColor applied we need a Surface instead of a Box

View file

@ -7,6 +7,7 @@
package io.element.android.libraries.designsystem.preview package io.element.android.libraries.designsystem.preview
import androidx.annotation.DrawableRes
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
@ -19,12 +20,15 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.utils.CommonDrawables
@Composable @Composable
@Suppress("ModifierMissing") @Suppress("ModifierMissing")
fun ElementThemedPreview( fun ElementThemedPreview(
showBackground: Boolean = true, showBackground: Boolean = true,
vertical: Boolean = true, vertical: Boolean = true,
@DrawableRes
drawableFallbackForImages: Int = CommonDrawables.sample_background,
content: @Composable () -> Unit, content: @Composable () -> Unit,
) { ) {
Box( Box(
@ -37,12 +41,14 @@ fun ElementThemedPreview(
ElementPreview( ElementPreview(
darkTheme = false, darkTheme = false,
showBackground = showBackground, showBackground = showBackground,
drawableFallbackForImages = drawableFallbackForImages,
content = content, content = content,
) )
Spacer(modifier = Modifier.height(4.dp)) Spacer(modifier = Modifier.height(4.dp))
ElementPreview( ElementPreview(
darkTheme = true, darkTheme = true,
showBackground = showBackground, showBackground = showBackground,
drawableFallbackForImages = drawableFallbackForImages,
content = content content = content
) )
} }
@ -51,12 +57,14 @@ fun ElementThemedPreview(
ElementPreview( ElementPreview(
darkTheme = false, darkTheme = false,
showBackground = showBackground, showBackground = showBackground,
drawableFallbackForImages = drawableFallbackForImages,
content = content, content = content,
) )
Spacer(modifier = Modifier.width(4.dp)) Spacer(modifier = Modifier.width(4.dp))
ElementPreview( ElementPreview(
darkTheme = true, darkTheme = true,
showBackground = showBackground, showBackground = showBackground,
drawableFallbackForImages = drawableFallbackForImages,
content = content content = content
) )
} }

View file

@ -1,39 +0,0 @@
/*
* Copyright 2023, 2024 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.preview
import androidx.annotation.DrawableRes
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.res.painterResource
import io.element.android.libraries.designsystem.R
/**
* I wanted to set up a FakeImageLoader as per https://github.com/coil-kt/coil/issues/1327
* but it does not render in preview. In the meantime, you can use this trick to have image.
*/
@Composable
fun debugPlaceholder(
@DrawableRes debugPreview: Int,
nonDebugPainter: Painter? = null,
) = if (LocalInspectionMode.current) {
painterResource(id = debugPreview)
} else {
nonDebugPainter
}
@Composable
fun debugPlaceholderBackground(nonDebugPainter: Painter? = null): Painter? {
return debugPlaceholder(debugPreview = R.drawable.sample_background, nonDebugPainter)
}
@Composable
fun debugPlaceholderAvatar(nonDebugPainter: Painter? = null): Painter? {
return debugPlaceholder(debugPreview = R.drawable.sample_avatar, nonDebugPainter)
}

View file

@ -38,6 +38,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.testtags.TestTags import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
@ -107,7 +108,9 @@ fun EditableAvatarView(
@Composable @Composable
internal fun EditableAvatarViewPreview( internal fun EditableAvatarViewPreview(
@PreviewParameter(EditableAvatarViewUriProvider::class) uri: Uri? @PreviewParameter(EditableAvatarViewUriProvider::class) uri: Uri?
) = ElementPreview { ) = ElementPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar,
) {
EditableAvatarView( EditableAvatarView(
matrixId = "id", matrixId = "id",
displayName = "A room", displayName = "A room",

View file

@ -29,7 +29,6 @@ import coil3.request.ImageRequest
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.preview.debugPlaceholderBackground
import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.temporaryColorBgSpecial import io.element.android.libraries.designsystem.theme.temporaryColorBgSpecial
@ -55,7 +54,7 @@ fun UnsavedAvatar(
AsyncImage( AsyncImage(
modifier = commonModifier, modifier = commonModifier,
model = model, model = model,
placeholder = debugPlaceholderBackground(ColorPainter(MaterialTheme.colorScheme.surfaceVariant)), placeholder = ColorPainter(MaterialTheme.colorScheme.surfaceVariant),
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
contentDescription = null, contentDescription = null,
) )

View file

@ -7,7 +7,6 @@
package io.element.android.libraries.mediaviewer.impl.gallery.ui package io.element.android.libraries.mediaviewer.impl.gallery.ui
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
@ -22,16 +21,13 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalInspectionMode
import coil3.compose.AsyncImage import coil3.compose.AsyncImage
import coil3.compose.AsyncImagePainter import coil3.compose.AsyncImagePainter
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.mediaviewer.impl.model.MediaItem import io.element.android.libraries.mediaviewer.impl.model.MediaItem
import io.element.android.libraries.mediaviewer.impl.model.aMediaItemImage import io.element.android.libraries.mediaviewer.impl.model.aMediaItemImage
@OptIn(ExperimentalFoundationApi::class)
@Composable @Composable
fun ImageItemView( fun ImageItemView(
image: MediaItem.Image, image: MediaItem.Image,
@ -39,16 +35,10 @@ fun ImageItemView(
onLongClick: () -> Unit, onLongClick: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val bgColor = if (LocalInspectionMode.current) {
ElementTheme.colors.bgDecorative1
} else {
Color.Transparent
}
Box( Box(
modifier = modifier modifier = modifier
.aspectRatio(1f) .aspectRatio(1f)
.combinedClickable(onClick = onClick, onLongClick = onLongClick) .combinedClickable(onClick = onClick, onLongClick = onLongClick),
.background(bgColor),
) { ) {
var isLoaded by remember { mutableStateOf(false) } var isLoaded by remember { mutableStateOf(false) }
AsyncImage( AsyncImage(

View file

@ -7,7 +7,6 @@
package io.element.android.libraries.mediaviewer.impl.gallery.ui package io.element.android.libraries.mediaviewer.impl.gallery.ui
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
@ -27,7 +26,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalInspectionMode
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 coil3.compose.AsyncImage import coil3.compose.AsyncImage
@ -40,7 +38,6 @@ import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.mediaviewer.impl.model.MediaItem import io.element.android.libraries.mediaviewer.impl.model.MediaItem
@OptIn(ExperimentalFoundationApi::class)
@Composable @Composable
fun VideoItemView( fun VideoItemView(
video: MediaItem.Video, video: MediaItem.Video,
@ -48,16 +45,10 @@ fun VideoItemView(
onLongClick: () -> Unit, onLongClick: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val bgColor = if (LocalInspectionMode.current) {
ElementTheme.colors.bgDecorative2
} else {
Color.Transparent
}
Box( Box(
modifier = modifier modifier = modifier
.aspectRatio(1f) .aspectRatio(1f)
.combinedClickable(onClick = onClick, onLongClick = onLongClick) .combinedClickable(onClick = onClick, onLongClick = onLongClick),
.background(bgColor),
) { ) {
var isLoaded by remember { mutableStateOf(false) } var isLoaded by remember { mutableStateOf(false) }
AsyncImage( AsyncImage(

View file

@ -37,6 +37,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.runtime.snapshotFlow import androidx.compose.runtime.snapshotFlow
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.alpha
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.onSizeChanged
@ -554,8 +555,11 @@ private fun ThumbnailView(
source = thumbnailSource, source = thumbnailSource,
kind = MediaRequestData.Kind.File(mediaInfo.filename, mediaInfo.mimeType) kind = MediaRequestData.Kind.File(mediaInfo.filename, mediaInfo.mimeType)
) )
val alpha = if (LocalInspectionMode.current) 0.1f else 1f
AsyncImage( AsyncImage(
modifier = Modifier.fillMaxSize(), modifier = Modifier
.fillMaxSize()
.alpha(alpha),
model = mediaRequestData, model = mediaRequestData,
contentScale = ContentScale.Fit, contentScale = ContentScale.Fit,
contentDescription = null, contentDescription = null,

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e57fb5dd99713d410b16fdb8b90a549216387c9213395f54aff8e48ac843e97c oid sha256:3c3a0afd6986943481bff9de80e38a603b0682e8d391da52859cb7691f3c47ca
size 233859 size 612888

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8e7f7cb7e70b11d423297ccb40eb25c31f99e7fb6d736faa60891f99d5f679ad oid sha256:9d8f46b60243bab1c969723c14bb43020fb84cad4a8c69e7cc2712e2306efc96
size 234026 size 611660

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:2ec7630cd05ce94f7163f0aa6762378080c35f04a1b59ce2b285e6dfa8e12129 oid sha256:5403784952c6fddee0c59906399330d9f31f58f128f4320bf72a7f26196213b6
size 111484 size 278427

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:92984da13001f38360a2871de6d0cd84bad33aac91059a6ed9e784cd701ad623 oid sha256:871cede89b11408db3873b7512f204a30c10461e5182ed1dfc0ccbf459e5ae86
size 166389 size 509431

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:3619ebab31f741909dc550fbc0a89b143b1edaeb395379314228ab490b726910 oid sha256:0df7697308d09639445cfeeb3b11ce770442b9e5d05245823b265eee75f34ecf
size 121439 size 386760

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:96a867cb12498cbdc97957bee07855dfaa13602baddaf933aff2b666ef4c7650 oid sha256:5403784952c6fddee0c59906399330d9f31f58f128f4320bf72a7f26196213b6
size 3642 size 278427

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7de6b943582cc341aebd7dcf553d51b3284414e988918267e7e2ca7585c36bec oid sha256:1d6888c7a0170c9d5b413f84e9e9b649fd99b89584f0f75c33e2602184236313
size 111996 size 277274

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ad066040b511f4270b6b4b05b7043f451d5d8b3cf5b5526aa34c26e5acc8ca01 oid sha256:c2f098a79f6aa516c3624481c573b730de1d978616068ca2e9994850922a1172
size 166511 size 508910

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d8eb833ac28952ec172d315aca358f44e34984611d98ab1f146384b2b94bd678 oid sha256:00d6355d80faafa3d23e9048d5fe7f2e8a72259a2dd548e1437f97167b2a22e7
size 121980 size 386591

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5bb36ccd718f3fec5b04f1bc812dc7718b5ea7fa4619c8b031466297a8d016fd oid sha256:1d6888c7a0170c9d5b413f84e9e9b649fd99b89584f0f75c33e2602184236313
size 3659 size 277274

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:bee6962a35cc2da956be0488f446c9a3d8831cec97f30e0828440068f764a0d1 oid sha256:543d5ae9fdb81983d787f6712f6478a5dca7cfcc3091d5879182978488a0dc89
size 34241 size 55150

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f08bf0cad0c94da75a0efb97dc92bc3e3c36cde4d833a6a26f9b0d63887785bf oid sha256:67bdc28eff7830debb89f73c859538f45c73c8d3318414a54eadc14a9426d8e4
size 47453 size 101874

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:0d5253e52390f9dcdd46db4f8d98d26be7cc8d05176d707a8a8c10adf4e7307b oid sha256:3db1d6d23850cbc6ae15b4942b6d10d5c9a65acb1d0d73f35f91579386b94d53
size 57064 size 147057

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:96a867cb12498cbdc97957bee07855dfaa13602baddaf933aff2b666ef4c7650 oid sha256:543d5ae9fdb81983d787f6712f6478a5dca7cfcc3091d5879182978488a0dc89
size 3642 size 55150

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d37431be2add3d26b6fd41a94a4c2970d3303de8d39154f1b36f33ec4ae6bf44 oid sha256:f7e51e8be368bf0b21736f82f2da1aa9526f7a328f760f1108bd23b3bbbd04e2
size 34260 size 54911

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:1a7cdbdd2fac32dcf3c08dcd2abdc8ec96c7b5d56bdfafb5b8594e84ad5da884 oid sha256:3c446a0219ad13ec361b2eae277e07572e0e13e06b5dbab6c3a6ccbf1508321d
size 47375 size 101527

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f0f597867f02b8c31fc094f02b39bea68a00b553cb999e3231f4d046e09da9a0 oid sha256:43cc19389a22848f730e5f653b82f97581f92f5ba866d351f40a33d24f896923
size 56893 size 146574

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5bb36ccd718f3fec5b04f1bc812dc7718b5ea7fa4619c8b031466297a8d016fd oid sha256:f7e51e8be368bf0b21736f82f2da1aa9526f7a328f760f1108bd23b3bbbd04e2
size 3659 size 54911

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:47f988423418affc0c1ad48ed1f2780d10ae81288dab0d189e16f66afc418973 oid sha256:3d484043eaf6e32e5c0895ae56cec62d339b8c3d47acc1a90a8c5a82fdf89ba7
size 112121 size 275766

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:346a951c1331a6a98196d8be8892e7ca3191d4981f63886ab28ce9dc4143f6d4 oid sha256:b4a7c9bdf67955f0eb96c4cd59ab16c78b5a46980c104b99cb3ca89a8202386d
size 167017 size 506789

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6b088123524aa44acd5f35877a0e78cfc1d9677fdd6b2af82dd1514a7e44a208 oid sha256:6233363e62d9dba580117270d8ae3c1286cb132a9c7528a132cdb59f0a61808c
size 121910 size 383811

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:1938d0dd95bde157aae53a7aa665ebcbb3d3d99f90b75307e6970f1aa00b10ce oid sha256:3d484043eaf6e32e5c0895ae56cec62d339b8c3d47acc1a90a8c5a82fdf89ba7
size 5067 size 275766

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:eab9dbc99ba34b653b1899eb486ed3401cd6090f3c56e5d06c143eda06bef008 oid sha256:cb8b28095fab428b0f08646e55532ac6c5531896591c32a27d2db0903575ddfc
size 112357 size 274731

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5485bbd279eef694c1d9f3582e47e35e2a45f3799162027bdb3ae108e421d1ec oid sha256:b6ced0f778044c0438a812399a0f75909eafa74abfebe8c06eb497503493ca12
size 167000 size 506418

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:da705cf7a08d5bd94cd9772767bcf66d2375aeb4e0604dd3319ea2c90670066e oid sha256:51d821d25096f24a154b369d0000f595212ca65724a2c751c1ff31a44704ae57
size 122303 size 383741

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:269720ee1d20c09a1c455c6f6b11f7f65772090ac3a0e936294612fd89c88061 oid sha256:cb8b28095fab428b0f08646e55532ac6c5531896591c32a27d2db0903575ddfc
size 4864 size 274731

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:19c15a177a821d705e0b05f0ad028a705a6e62634029ed2233ffc00eee452fda oid sha256:bb05880b161ebad9cb5c3f78ff217e9ee64e3d6bc07996e32966d9a3f0a2e30c
size 233207 size 608283

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:83fdfce1407b27d24b941397e764120db1e5e371e1a0cda706cd51c2aba5ab54 oid sha256:80bca1e6c13e4e345a60b53f6c0479a17aeb05f42f3c13a9dc933e0e6d1d7b3a
size 234714 size 606934

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a5bb21840d22553fc7db6252f294a2a05971205bac00506b44a6255e93ba1590 oid sha256:6693e2e93d21c61c1e3bb6b57bdfca788b8e98aaebf861a5a3ad594344441195
size 169035 size 379233

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d0f667300929a4961a4ac20196a010d001b5eba035086196bfdeb067f4b74f4d oid sha256:10fafb2e4788ab76d609e74babe55048b44440d8bc6cfd35e78e8337a210b240
size 168152 size 377760

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5b8c226a0d0e1026093f1a9b173b7b5c1228e2679ecd01d3da16b3b1ef8dc5d0 oid sha256:b3d1789882ff07396fb4daf788437744bb71eaa7cca127fadd1bae3cea343116
size 167010 size 294216

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:2bb2568dc80f1aaaad1c425d42476f102876e9103569b38cf2ee5b5c87aee71a oid sha256:ca042e33785370974388e4949b871c9cd8936f1578f383088c47d12514f8fd46
size 166148 size 292986

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:31beb2238023043f5b2f7cd2e86ba66f3a24062ea3183b4e9d22025cf2bbc570 oid sha256:660bd025d6cdd9a9cc43309276c46cf14f2567322d849e7ccf99d1741cece894
size 152506 size 377499

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b539c68c246e5b60a5f0c0cfffa94cf51710ec26e6d5b533790d09dfc9f0bc8e oid sha256:daf954ba004cd67f85913e8ff4215a0d32bcba8726179ed77bfd8c9557ce3ddc
size 151766 size 375420

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:52839c50b1ebdf1a46e105045ae03b4ef2cf6a5e1e8cc842c2329e9da395eb81 oid sha256:192f07e6dd138911a30e5bcebf75a68ed59bad006041e9ba2fad809cd8a94f11
size 151404 size 364786

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b420c048cb72dee9387bb1f8b32e0cda7d703569f67416d35c4f6e0cdfeef0c4 oid sha256:3e4f5b7139fb1759e9e9c17e0911ab9fff66f4ee14545f2f5977a7d1ef8c7aef
size 156859 size 369967

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:226ee1a4d618dbfaa6a9fa693af46daaf25dc17fc7fad5190ea2b36473a3963d oid sha256:4ea40e231b7a23ca3ececa68672f13a7391fbc7fd3719ba98d67e02d6cfe0034
size 151407 size 363024

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e9149ea40285c1633b59dc1e1c62a1ffb560bd3f4ce97361044e0be98d59e1e6 oid sha256:b12cbdf1b95c272f5482c43686ef549801d2c3d5bffd75b6423d6a3225e40efb
size 156521 size 367997

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:93d324f26910b61eb576ad8c37fe4bfad79e93879d59f9f3017e7a8c0cef1cfd oid sha256:582fc51bc3449b2796d3efb0211eaf14dc73fa0ca1817e1d53f29586dfc36d3f
size 142620 size 353092

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:338261e41a91279114bf8ee6c5a3ff0c94320706ff3f0d405b17a1ef87eec088 oid sha256:540912d38358bdea807311e7803397cf402b434f16860ce434aea7751cf2b28e
size 151649 size 363471

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8c9c9e85f84e73951975825beeb355883da4a12f9cdbac0d247736e995857640 oid sha256:6eb1b7b869f25e0d505ba9ff8dac4e6b63c4f59e7d8854a20233b8d4d77ac1e9
size 141955 size 351780

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:62a3c3031385ac731b500fc7c8f6d16b58c7f2ca6e4b758b4edb635cc9e6933e oid sha256:d41539a90d7f82364dc3599423ad6a1b51e53be0e70df926365694b75dae6b8f
size 150720 size 361273

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d8c58a09e139e2a2fe9edc1b2bdea0cb399b1a5c1978a19aff2da86f2fd84eac oid sha256:d086f9df50219d9134d3cab7e4c198d7bac812fe614d2375e80c2e00766d7161
size 156247 size 369509

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b7a791e9c8788632f03e30aba24af768953411dffabde644bea176cd4811bee5 oid sha256:9d11576c0e48980bf1505d074a84f11170f042abc92cc80c97b92f5d473588d7
size 142208 size 354292

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a5571483499c4acee1bf08dca534148159d6b521bceb51c306773593539639bf oid sha256:77dd4e2eed54c37a022d6a6beab69953cf64fd9725df0b954eb329e647a00036
size 154286 size 367658

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e2f1da2796934102bf20655ebe9dd3ea95972399aa77faf13e550b80b3d320b1 oid sha256:d1312e7e3a6b0ead94a30e0d4971277305469fbbaa2015df55334c37ac1a0136
size 163435 size 344733

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a4b8b6d80dd685efa4c627c6f48207040561c322dc93d355fe00793981ca88f3 oid sha256:0000cca03cefb845bcc349669b40abddbb5567c4f7d79481e1d17edbd1b705e8
size 144964 size 357300

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:c0cf792b404583b855f7d09e1535eba11f597e3f4706e367dff00f608aae9029 oid sha256:c9f8957975959f22f321edb1da337268630b2035670ea6a7f1d0253ceee23904
size 144176 size 356520

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8ce2fcbc8fdc3b6799448c92919ef43b7fc749c2b3b9894bca18e16f8ccd5dd9 oid sha256:59865d91c14d22ac51f03c5a89f22998aec74251ba61c0db013e549ef71bf724
size 150903 size 364285

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:c27a5471ba179e4dd66fdaaae1ec56ac2a86dbf01d62b16c448f5a0df2749519 oid sha256:1a13e340822f9b7faea91575a5fe8d82a078f7dab567d5f3e573c6090d342d79
size 142566 size 396959

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a8b4fce8e61026cf00536605f8898505cec9a974aaae1d5951fb79a30bbec95b oid sha256:9406216df3f9744d7526ef2bfa208abe22796a5e95c1007bcaa6305b7a7e6dd0
size 143360 size 355618

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f0c129646f3fd0a78d6c747f575d98696330c82633b119c266c2eea081cb36e8 oid sha256:b8369665c1e4e9e6e34a44897d6496946beef7563703bbd64b0dc0182b4f81ed
size 145193 size 357542

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:0063fdc45a8ceb4530591b4e02008eb9b754cefd43adb8acac0e754860a46340 oid sha256:71e21fd5b02aa8ae98519996986e3bd28c37353cfa16fd832f83790a0f2946e5
size 151440 size 364744

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e53a7ba5131d2174121e72f520a3e9c2aa4b5c389690d2d47cfe419f8ff4290a oid sha256:dbc3ea0006d57682c5a59ccaf873196b6f5c329d300395935e355e50c9f01906
size 142838 size 354991

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ec6a17623cb93cdf165d78c58b06a9a643dff24ebd8cbfbb4bf33096942ad2c8 oid sha256:cdcbd58a833ac5554260389c9d455aec0bc40ac36bcd378d1a47fd3d3e684b24
size 156098 size 367589

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:f04df3f019284faa05b6286852276de5b6d7a047cbdfded1303fdd744e7130df oid sha256:ba5dd0bd237dd41206cfb92cd5d57e7c46710fb532fb447139014b8da811a324
size 141956 size 352565

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8b5d2080791bab646a110e912e98e877347b5b5a601603161e93b7cb1c2f6dd3 oid sha256:3f4d22986976b525a4f4ba5a6ad5372ffc0c77f6b3dadbe3989cdb98ead2caf3
size 154322 size 365876

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:cdd4ce216c2eb8e0e71509f95407fb832ab8923408ee0d2b7be0ba38abd696d1 oid sha256:3d551e6c58cebf53fda518877916e13204c52b4db2af3151678546d7b279e14c
size 162129 size 342627

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:37529421d63a9f7d97887145e91f9f0827574a5bdbe1eda2e085612b451774a3 oid sha256:93319839a10d070b61501e95bf3a555b493c21d5e328213373fe9d0c888e07e6
size 144878 size 355803

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e01b74cf05faac0b4aabc7848f8780906750a83c2b3ee914bdd6e208c14bfac8 oid sha256:ac9a160d9e58e3bf44a491e4f1e3c37720ffd91d622729750fb8219428dd2085
size 144145 size 355002

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5ea2c5908d322bae326846ee7e3762a04affc6ff77842951515fc35379f8717f oid sha256:ae4443f10013aa72805aa09b36688cceb013012424843b00b6eef0496a66fa7f
size 150825 size 362403

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:5173c0ff87560f9ecb0d5ccbf52992a01a43f53a1665cf565e0c56fb702a07f6 oid sha256:37e3043ddf1e8fd9db9c156c9cdb88fe236c7f76e166a75871fc388bb448ec07
size 142448 size 395179

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:cd65c0380b79e7adf032027b8e6aca43465e62bd349a893accbf6e1e3137d39a oid sha256:2a842b4b9ea2c1b7235444df058d501de4ac57cc7749b30fd91f934502a7429b
size 143054 size 353792

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:cbaa6c97ca79422887365ef77267d78b04c835067873f85df6bead249dec58ee oid sha256:3b27153819669af47324316fa7b6433b57fc9cf64928de3f9acbfcdd0657d3be
size 145140 size 356028

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e9332fc228a959263cdc1acaa69a68092a0bd5f5cbc460c1581c775739d633f2 oid sha256:009b303d3bcf767a4cd58172e5b4f21c1a341ed272ff5ca9f62ef349808740dd
size 151339 size 362905

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:ad635c9076f5d15c37b914fbbffad4bfa4d26a2f13c390f852bb63371730bcbc oid sha256:434720f8ad2aa0cb2c8fd708cc7467af92e063dc2c3600a3783762e0364592c2
size 142574 size 353266

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:59ad66398a4b4f7f5f63cda8c15d98a78aff40d2a168bc8fa7cc6df6ae1d823d oid sha256:ff6e3d41cc1d3a51a4a6d48f47407832d838ed135752e200f588cb12062c18c7
size 184170 size 412176

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d06575021a862195747c35219515a4949a089d65c1c6282c864f2116e3800704 oid sha256:dfa4dc6a76b73b8b2d48234676de66eed10750ad2c561a065909d4745ab6f4e5
size 183547 size 409878

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:51c236ea63de8215a9a21107555e0b27902af004e5fef98f304dd1bbde3d9b03 oid sha256:a8fc7a5830027eb95476df6e378269c1ff37d57c75aac50e3353647d4e84249a
size 200828 size 492060

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:01ad764325f9362613584c51247d523fa51724be613084a4d3e59a7355df14f0 oid sha256:949ea4bca530c513ff4e67f4b3b67a69215931ab1fe9bc42b02ed347f02a9bf6
size 201982 size 487167

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:0108d54a2d6f2d5454c94fae5bba903d2dfcae495ae74b7644e429f75a70d3c2 oid sha256:78ad98cc2dbd846a72b6f481677d0964689ac7f165be662f8b218d6546921dc6
size 199672 size 489004

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e67ca0306edf3469dbb74ae10e75b69512524169b38d72463408f0b15d8babfa oid sha256:3aa03a48407e9c8c5214fcc8392e74c2323a73fba8418d7a088575c6756612ad
size 200518 size 484132

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:28cbc07493bc3a91f391b0256554171bf60cc02d25ab8d0d78d68168fe62f534 oid sha256:37a0c2d8d87124b700269ade727cb51c90a85e5549333c44763dfdd29bbcecf8
size 14993 size 15007

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:bfa988a2f41961dab1fc0ec245188dd18c1cfb430ef24bea5993593215d5f8e5 oid sha256:006ef95362f37664efb45e7e6378df14d247827652efbea15abfca65ba2bd32e
size 14734 size 14732

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e5d78f00d33cad5e00719eec49f6b55959b5c23b3842a0f2abc9280961ebb29d oid sha256:896715e04f98bd79679081093c3e46321d3e22f0b9e45bb620fe7c28c8e9bf73
size 12660 size 12672

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:4612c8404b671a01129d2334a7aa296218bb4b00820265ef5d00fd9603e7f850 oid sha256:9fcfb26e81944f1ccfe9144593dbcb5ac2fd6341ce99ac0b268a42e5c435cef7
size 12272 size 12287

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e44ac29c970ddab492a1b9550315a82f983b88474287165ba732e57951647a81 oid sha256:5689b4b10c7225b8eb44b8573a9e7378b2d2673439b24a4d85351d9d7ef6273d
size 19112 size 19162

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:498e1b23a60c563387bbe734fc4ffd3896824d128e1213b194b344091058ae8a oid sha256:18b2140a2d22c4187d9f338c5d8516b65de738c4ae640b6870f49f0991860e66
size 21480 size 21485

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:206f721ba79222702409f10e70e671e00d855e192387b2fc73dec93bc721765f oid sha256:cd82839d55fcf1869595428b42b5a7add88199f5c877d6b5dc651c0ad5db2dfb
size 20933 size 20942

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e48c08ee8ff50b9b03bf6af20dfce17db88865b0d1b6db9cbb210d79b8177168 oid sha256:4c0edbcdb326e027f692feebfa253b23acca3b9a38aa9e2d32ec901afd3ee071
size 24574 size 24599

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:64ba8cfebc5697bacedd498a508fe9f95491cb58128cbbbb39fc5a363b56c652 oid sha256:f25815e696b4df2eab0d6553d8eee57ba2f845a6a959b94f958dbb92817f1696
size 16609 size 16611

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:38ea2bd258563803f089ed79d897b2832d7b8e3440025bd60b6f3156ec0536ee oid sha256:c003933d1fc60b69f01e71d0457fafc1808ab1b77473638be45145ad89150747
size 20690 size 20697

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8cdac51735a02d6dd9f03a70937cf2a8c307bb8ef8636c6a136c389646cb2e67 oid sha256:9ee35f103492b0b0fe4a2ad86f74f4d0283993ea63db039d034430bd4343e0bb
size 21150 size 21160

Some files were not shown because too many files have changed in this diff Show more