From 62f1f25da2f0b34124d5ec01f41ef6baa1c73cad Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 3 Feb 2025 15:03:19 +0100 Subject: [PATCH] Move TypographyPreview to prod so that the preview can be rendered in Android Studio. --- .../android/compound/previews/Typography.kt | 49 +++++++++++++++++++ .../screenshot/MaterialTypographyTests.kt | 38 +------------- 2 files changed, 51 insertions(+), 36 deletions(-) create mode 100644 compound/src/main/kotlin/io/element/android/compound/previews/Typography.kt diff --git a/compound/src/main/kotlin/io/element/android/compound/previews/Typography.kt b/compound/src/main/kotlin/io/element/android/compound/previews/Typography.kt new file mode 100644 index 0000000..2fc93ae --- /dev/null +++ b/compound/src/main/kotlin/io/element/android/compound/previews/Typography.kt @@ -0,0 +1,49 @@ +/* + * Copyright 2025 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.compound.previews + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import io.element.android.compound.theme.ElementTheme + +@Preview +@Composable +fun TypographyPreview() = ElementTheme { + Surface { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + with(ElementTheme.materialTypography) { + TypographyTokenPreview(displayLarge, "Display large") + TypographyTokenPreview(displayMedium, "Display medium") + TypographyTokenPreview(displaySmall, "Display small") + TypographyTokenPreview(headlineLarge, "Headline large") + TypographyTokenPreview(headlineMedium, "Headline medium") + TypographyTokenPreview(headlineSmall, "Headline small") + TypographyTokenPreview(titleLarge, "Title large") + TypographyTokenPreview(titleMedium, "Title medium") + TypographyTokenPreview(titleSmall, "Title small") + TypographyTokenPreview(bodyLarge, "Body large") + TypographyTokenPreview(bodyMedium, "Body medium") + TypographyTokenPreview(bodySmall, "Body small") + TypographyTokenPreview(labelLarge, "Label large") + TypographyTokenPreview(labelMedium, "Label medium") + TypographyTokenPreview(labelSmall, "Label small") + } + } + } +} + +@Composable +private fun TypographyTokenPreview(style: TextStyle, text: String) { + Text(text = text, style = style) +} diff --git a/compound/src/test/kotlin/io/element/android/compound/screenshot/MaterialTypographyTests.kt b/compound/src/test/kotlin/io/element/android/compound/screenshot/MaterialTypographyTests.kt index 70e67ba..e7c5909 100644 --- a/compound/src/test/kotlin/io/element/android/compound/screenshot/MaterialTypographyTests.kt +++ b/compound/src/test/kotlin/io/element/android/compound/screenshot/MaterialTypographyTests.kt @@ -1,16 +1,9 @@ package io.element.android.compound.screenshot -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.unit.dp import androidx.test.ext.junit.runners.AndroidJUnit4 import com.github.takahirom.roborazzi.captureRoboImage +import io.element.android.compound.previews.TypographyPreview import io.element.android.compound.screenshot.utils.screenshotFile -import io.element.android.compound.theme.ElementTheme import org.junit.Test import org.junit.runner.RunWith import org.robolectric.annotation.Config @@ -23,34 +16,7 @@ class MaterialTypographyTests { @Config(sdk = [35], qualifiers = "h2048dp-xxhdpi") fun screenshots() { captureRoboImage(file = screenshotFile("Material Typography.png")) { - ElementTheme { - Surface { - Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { - with(ElementTheme.materialTypography) { - TypographyTokenPreview(displayLarge, "Display large") - TypographyTokenPreview(displayMedium, "Display medium") - TypographyTokenPreview(displaySmall, "Display small") - TypographyTokenPreview(headlineLarge, "Headline large") - TypographyTokenPreview(headlineMedium, "Headline medium") - TypographyTokenPreview(headlineSmall, "Headline small") - TypographyTokenPreview(titleLarge, "Title large") - TypographyTokenPreview(titleMedium, "Title medium") - TypographyTokenPreview(titleSmall, "Title small") - TypographyTokenPreview(bodyLarge, "Body large") - TypographyTokenPreview(bodyMedium, "Body medium") - TypographyTokenPreview(bodySmall, "Body small") - TypographyTokenPreview(labelLarge, "Label large") - TypographyTokenPreview(labelMedium, "Label medium") - TypographyTokenPreview(labelSmall, "Label small") - } - } - } - } + TypographyPreview() } } - - @Composable - private fun TypographyTokenPreview(style: TextStyle, text: String) { - Text(text = text, style = style) - } }