From 92d3a1c811feb67f99138498af9ceee4a75d6ead Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 13 Feb 2023 15:18:22 +0100 Subject: [PATCH] Add a way to Preview images. --- .../bugreport/BugReportStateProvider.kt | 9 ++- .../rageshake/bugreport/BugReportView.kt | 4 +- .../designsystem/components/avatar/Avatar.kt | 2 + .../components/avatar/AvatarDataProvider.kt | 1 + .../libraries/designsystem/preview/Images.kt | 40 ++++++++++++++ .../src/main/res/drawable/sample_avatar.xml | 52 ++++++++++++++++++ .../main/res/drawable/sample_background.webp | Bin 0 -> 24990 bytes 7 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/Images.kt create mode 100644 libraries/designsystem/src/main/res/drawable/sample_avatar.xml create mode 100644 libraries/designsystem/src/main/res/drawable/sample_background.webp diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt index 35f0bb7db7..a5dd2ad947 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt @@ -23,7 +23,14 @@ open class BugReportStateProvider : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( aBugReportState(), - aBugReportState().copy(formState = BugReportFormState.Default.copy(description = "A long enough description"), hasCrashLogs = true), + aBugReportState().copy( + formState = BugReportFormState.Default.copy( + description = "A long enough description", + sendScreenshot = true, + ), + hasCrashLogs = true, + screenshotUri = "aUri" + ), aBugReportState().copy(sending = Async.Loading()), aBugReportState().copy(sending = Async.Success(Unit)), ) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index c66247f0b4..024d6beab9 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -51,6 +51,7 @@ import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight +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.CircularProgressIndicator import io.element.android.libraries.designsystem.theme.components.OutlinedTextField @@ -177,7 +178,8 @@ fun BugReportView( AsyncImage( modifier = Modifier.fillMaxWidth(fraction = 0.5f), model = model, - contentDescription = null + contentDescription = null, + placeholder = debugPlaceholderBackground(), ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt index 8d6eb0fa4b..222d2a1502 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt @@ -36,6 +36,7 @@ import io.element.android.libraries.designsystem.AvatarGradientEnd import io.element.android.libraries.designsystem.AvatarGradientStart import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewLight +import io.element.android.libraries.designsystem.preview.debugPlaceholderAvatar import io.element.android.libraries.designsystem.theme.components.Text import timber.log.Timber @@ -69,6 +70,7 @@ private fun ImageAvatar( }, contentDescription = null, contentScale = ContentScale.Crop, + placeholder = debugPlaceholderAvatar(), modifier = modifier ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataProvider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataProvider.kt index f70240f8e2..5e4bad531c 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataProvider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarDataProvider.kt @@ -23,6 +23,7 @@ open class AvatarDataProvider : PreviewParameterProvider { get() = sequenceOf( anAvatarData(), anAvatarData().copy(name = null), + anAvatarData().copy(url = "aUrl"), ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/Images.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/Images.kt new file mode 100644 index 0000000000..f1fc1b21f0 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/Images.kt @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.designsystem.preview + +import androidx.annotation.DrawableRes +import androidx.compose.runtime.Composable +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) = if (LocalInspectionMode.current) { + painterResource(id = debugPreview) +} else { + null +} + +@Composable +fun debugPlaceholderBackground() = debugPlaceholder(debugPreview = R.drawable.sample_background) + +@Composable +fun debugPlaceholderAvatar() = debugPlaceholder(debugPreview = R.drawable.sample_avatar) diff --git a/libraries/designsystem/src/main/res/drawable/sample_avatar.xml b/libraries/designsystem/src/main/res/drawable/sample_avatar.xml new file mode 100644 index 0000000000..d3e6796131 --- /dev/null +++ b/libraries/designsystem/src/main/res/drawable/sample_avatar.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + diff --git a/libraries/designsystem/src/main/res/drawable/sample_background.webp b/libraries/designsystem/src/main/res/drawable/sample_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..b05f3b33a0c2e7f77d2f9805cfb15f600fd57c7a GIT binary patch literal 24990 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 literal 0 HcmV?d00001