diff --git a/build.gradle b/build.gradle index 60a6817e0..ce9d503f2 100644 --- a/build.gradle +++ b/build.gradle @@ -15,12 +15,12 @@ buildscript { 'gradle' : '8.9.1', 'junit' : '4.13.2', 'junitImplementation' : '1.1.2', - 'kotlinCompileTesting' : '0.7.0', + 'kotlinCompileTesting' : '0.8.0', 'kotlinPoet' : '1.12.0', 'ksp' : "$KSP_VERSION", 'ktx' : '1.1.0', 'lifecycle' : '2.6.2', - 'paparazzi' : '1.2.0', + 'paparazzi' : '2.0.0-alpha02', 'picasso' : '2.8', 'appcompat' : '1.6.1', 'testRunner' : '1.4.0', @@ -90,7 +90,6 @@ buildscript { google() mavenCentral() gradlePluginPortal() - jcenter() } dependencies { classpath "com.android.tools.build:gradle:${versions.gradle}" @@ -114,9 +113,8 @@ allprojects { repositories { google() mavenCentral() - jcenter() } dependencies { detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:${versions.detekt}" } -} +} \ No newline at end of file diff --git a/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ScreenshotConfig.kt b/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ScreenshotConfig.kt new file mode 100644 index 000000000..9356859fa --- /dev/null +++ b/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ScreenshotConfig.kt @@ -0,0 +1,28 @@ +package com.airbnb.android.showkase.annotation + +/** + * Configuration for how screenshots of the annotated Composable should be captured. + */ +sealed interface ScreenshotConfig { + /** + * A single screenshot will be captured of the initial composition. + */ + object SingleStaticImage : ScreenshotConfig + + /** + * An animated PNG will be captured of the Composable, using the values provided for + * [ShowkaseComposable.captureDurationMillis] and [ShowkaseComposable.captureFramerate]. + */ + data class SingleAnimatedImage( + val durationMillis: Int = 1000, + val framerate: Int = 30, + ) : ScreenshotConfig + + /** + * Multiple static screenshots will be taken of the Composable, with the animation advanced to the + * time offsets provided in [ShowkaseComposable.captureOffsetsMillis]. + */ + data class MultipleImagesAtOffsets( + val offsetMillis: List, + ) : ScreenshotConfig +} diff --git a/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ShowkaseComposable.kt b/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ShowkaseComposable.kt index 964790130..59a6d1de0 100644 --- a/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ShowkaseComposable.kt +++ b/showkase-annotation/src/main/java/com/airbnb/android/showkase/annotation/ShowkaseComposable.kt @@ -58,6 +58,7 @@ package com.airbnb.android.showkase.annotation * but are still available in the generated `ShowkaseBrowserComponent` object. This may be useful when * extra data is needed for attributing components during other processes (e.g. static analysis, * displaying attributions in a custom component browser). + * @param screenshotCaptureConfig Configures how screenshot tests should capture the Composable content. */ @MustBeDocumented @Retention(AnnotationRetention.SOURCE) @@ -74,4 +75,68 @@ annotation class ShowkaseComposable( val defaultStyle: Boolean = false, val tags: Array = [], val extraMetadata: Array = [], + val screenshotCaptureConfig: ScreenshotCaptureConfig = ScreenshotCaptureConfig( + // Need to specify default values here or else KAPT throws an error + type = ScreenshotCaptureType.SingleStaticImage, + durationMillis = 1000, + framerate = 10, + offsetsMillis = [0, 200, 400, 600, 800, 1000], + ), ) + +/** + * Wrapper annotation class for grouping values related to screenshot capture configuration. + * This will be converted to a [ScreenshotConfig] instance for downstream processing. + */ +@Retention(AnnotationRetention.SOURCE) +annotation class ScreenshotCaptureConfig( + /** + * Used by Paparazzi snapshot testing to determine if the component has any animation, and how to capture + * the screenshot. + */ + val type: ScreenshotCaptureType = ScreenshotCaptureType.SingleStaticImage, + /** + * Used by Paparazzi screenshot testing when [type] is set to + * [ScreenshotCaptureType.SingleAnimatedImage]. Determines the duration the animation + * will be played in milliseconds. + */ + val durationMillis: Int = 1000, + /** + * Used by Paparazzi screenshot testing when [type] is set to + * [ScreenshotCaptureType.SingleAnimatedImage]. Determines how many frames + * will be captured per second. 10 fps is chosen as a default to balance fidelity, file size, test + * execution time, and flakiness. + */ + val framerate: Int = 10, + /** + * Used by Paparazzi screenshot testing when [type] is set to + * [ScreenshotCaptureType.MultipleImagesAtOffsets]. One separate screenshot will be taken + * at each of the time offsets provided here. + */ + val offsetsMillis: IntArray = [0, 200, 400, 600, 800, 1000], +) + +/** + * Indicates how screenshots should be captured for the given Composable during testing. + * Maps to the [ScreenshotConfig] type, which we cannot use as a value in an annotation. + */ +enum class ScreenshotCaptureType { + /** + * A single screenshot will be captured of the initial composition. + */ + SingleStaticImage, + + /** + * An animated PNG will be captured of the Composable, using the values provided for + * [ShowkaseComposable.captureDurationMillis] and [ShowkaseComposable.captureFramerate]. + */ + SingleAnimatedImage, + + /** + * Multiple static screenshots will be taken of the Composable, with the animation advanced to the + * time offsets provided in [ShowkaseComposable.captureOffsetsMillis]. + * + * NOTE: This isn't working currently in Paparazzi, see https://github.com/cashapp/paparazzi/pull/1645. + */ + MultipleImagesAtOffsets +} diff --git a/showkase-processor-testing/src/test/java/com/airbnb/android/showkase_processor_testing/ShowkaseProcessorTest.kt b/showkase-processor-testing/src/test/java/com/airbnb/android/showkase_processor_testing/ShowkaseProcessorTest.kt index 400c4040a..cf5a02b09 100644 --- a/showkase-processor-testing/src/test/java/com/airbnb/android/showkase_processor_testing/ShowkaseProcessorTest.kt +++ b/showkase-processor-testing/src/test/java/com/airbnb/android/showkase_processor_testing/ShowkaseProcessorTest.kt @@ -619,4 +619,9 @@ class ShowkaseProcessorTest : BaseProcessorTest() { options["requireShowkaseComposableAnnotation"] = "true" compileInputsAndVerifyOutputs(options = options) } + + @Test + fun `composable function with showkase annotation with capturetype compiles ok`() { + compileInputsAndVerifyOutputs() + } } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTest_PaparazziShowkaseTest.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTestImpl.kt similarity index 97% rename from showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTest_PaparazziShowkaseTest.kt rename to showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTestImpl.kt index 5e3dd6323..30f25e8bf 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTest_PaparazziShowkaseTest.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/MyScreenshotTestImpl.kt @@ -19,7 +19,7 @@ import org.junit.Test import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) -public class MyScreenshotTest_PaparazziShowkaseTest : MyScreenshotTest() { +public class MyScreenshotTestImpl : MyScreenshotTest() { @get:Rule public val paparazzi: Paparazzi = providePaparazzi() @@ -35,7 +35,7 @@ public class MyScreenshotTest_PaparazziShowkaseTest : MyScreenshotTest() { uiMode: PaparazziShowkaseUIMode, ) { paparazzi.unsafeUpdateConfig(config.deviceConfig.copy(softButtons = false)) - takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode) + takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode, elementPreview.captureType) } @Suppress("DEPRECATION") diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt index de6c18bd2..da1aab0fe 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt @@ -1,5 +1,6 @@ // This is an auto-generated file. Please do not edit/modify this file. import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -8,5 +9,6 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKDoc = "", componentKey = """_TestComposable1_null_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable1() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt index 6c85a86d7..bdff419de 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt @@ -1,5 +1,6 @@ // This is an auto-generated file. Please do not edit/modify this file. import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -8,5 +9,6 @@ public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowse componentKDoc = "", componentKey = """_TestComposable2_null_group2_name2_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable2() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt index 8405a4776..8f3c4bef1 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable1group1name1.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable1_null_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable1() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt index db50716b3..0e36106c0 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_generates_screenshot_test_for_all_UI_elements/output/TestComposable2group2name2.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable2_null_group2_name2_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable2() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable1WrapperClassTestComposable1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable1WrapperClassTestComposable1.kt index 72b3436bf..e41b37a5c 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable1WrapperClassTestComposable1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable1WrapperClassTestComposable1.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1WrapperClassTestComposable1: ShowkaseBrowserComponent = @@ -12,6 +13,7 @@ public val TestComposable1WrapperClassTestComposable1: ShowkaseBrowserComponent componentKey = """com.airbnb.android.showkase_processor_testing.WrapperClass_TestComposable1_com.airbnb.android.showkase_processor_testing.WrapperClass_WrapperClass_TestComposable1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { WrapperClass().TestComposable1() } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable2DefaultGroupTestComposable2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable2DefaultGroupTestComposable2.kt index 75feb2440..716a49a62 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable2DefaultGroupTestComposable2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/class_with_@ScreenshotTest_only_generates_screenshot_test_for_only_non_preview_parameter_composable/output/TestComposable2DefaultGroupTestComposable2.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposable2DefaultGroupTestComposable2: List = componentKey = """com.airbnb.android.showkase_processor_testing.WrapperClass_TestComposable_com.airbnb.android.showkase_processor_testing.WrapperClass_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { WrapperClass.TestComposable(text = previewParam) } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/object_function_with_preview_annotation_and_preview_parameter_and_showkaseroot_and_long_parameter_provider_name/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/object_function_with_preview_annotation_and_preview_parameter_and_showkaseroot_and_long_parameter_provider_name/output/TestComposablegroupname.kt index 83c67eec5..22dc890a5 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/object_function_with_preview_annotation_and_preview_parameter_and_showkaseroot_and_long_parameter_provider_name/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/object_function_with_preview_annotation_and_preview_parameter_and_showkaseroot_and_long_parameter_provider_name/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing_my_very_long_name import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposablegroupname: List = componentKey = """com.airbnb.android.showkase_processor_testing_my_very_long_name.WrapperClass_TestComposable_com.airbnb.android.showkase_processor_testing_my_very_long_name.WrapperClass_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { WrapperClass.TestComposable(text = previewParam) } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt index c70abbe83..8dc301ed4 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt @@ -2,6 +2,7 @@ package ShowkaseProcessorTest.private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok.input import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """ShowkaseProcessorTest.private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok.input_TestComposable1_null_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable1() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt index 72e3825df..3a347942a 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt @@ -2,6 +2,7 @@ package ShowkaseProcessorTest.private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok.input import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable3group3name3: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable3group3name3: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """ShowkaseProcessorTest.private_composable_with_preview_annotation_and_skipPrivate_option_compiles_ok.input_TestComposable3_null_group3_name3_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable3() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt index 52485f75b..056c3d505 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable1group1name1.kt @@ -2,6 +2,7 @@ package ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,6 +12,7 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input.Composables_TestComposable1_ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input.Composables_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { Composables().TestComposable1() } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt index 065dd769b..0ec76f3dc 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok/output/TestComposable3group3name3.kt @@ -2,6 +2,7 @@ package ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable3group3name3: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,6 +12,7 @@ public val TestComposable3group3name3: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input.Composables_TestComposable3_ShowkaseProcessorTest.private_composable_with_showkase_annotation_and_skipPrivate_option_compiles_ok.input.Composables_group3_name3_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { Composables().TestComposable3() } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTest_PaparazziShowkaseTest.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTestImpl.kt similarity index 97% rename from showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTest_PaparazziShowkaseTest.kt rename to showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTestImpl.kt index 5e3dd6323..30f25e8bf 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTest_PaparazziShowkaseTest.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_and_class_with_@ScreenshotTest_generates_paparazzi_screenshot_test_for_composable/output/MyScreenshotTestImpl.kt @@ -19,7 +19,7 @@ import org.junit.Test import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) -public class MyScreenshotTest_PaparazziShowkaseTest : MyScreenshotTest() { +public class MyScreenshotTestImpl : MyScreenshotTest() { @get:Rule public val paparazzi: Paparazzi = providePaparazzi() @@ -35,7 +35,7 @@ public class MyScreenshotTest_PaparazziShowkaseTest : MyScreenshotTest() { uiMode: PaparazziShowkaseUIMode, ) { paparazzi.unsafeUpdateConfig(config.deviceConfig.copy(softButtons = false)) - takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode) + takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode, elementPreview.captureType) } @Suppress("DEPRECATION") diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_property_and_composable_function_generates_1_file/output/TestComposablecomponentname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_property_and_composable_function_generates_1_file/output/TestComposablecomponentname.kt index 5ffef5afa..18f7eeb3b 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_property_and_composable_function_generates_1_file/output/TestComposablecomponentname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_color_property_and_composable_function_generates_1_file/output/TestComposablecomponentname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrows componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_component_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTest_PaparazziShowkaseTest.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTestImpl.kt similarity index 96% rename from showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTest_PaparazziShowkaseTest.kt rename to showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTestImpl.kt index a882731c9..41f0d07a8 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTest_PaparazziShowkaseTest.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/MyPaparazziScreenshotTestImpl.kt @@ -19,7 +19,7 @@ import org.junit.Test import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) -public class MyPaparazziScreenshotTest_PaparazziShowkaseTest : MyPaparazziScreenshotTest() { +public class MyPaparazziScreenshotTestImpl : MyPaparazziScreenshotTest() { @get:Rule public val paparazzi: Paparazzi = providePaparazzi() @@ -35,7 +35,7 @@ public class MyPaparazziScreenshotTest_PaparazziShowkaseTest : MyPaparazziScreen uiMode: PaparazziShowkaseUIMode, ) { paparazzi.unsafeUpdateConfig(config.deviceConfig.copy(softButtons = false)) - takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode) + takePaparazziSnapshot(paparazzi, elementPreview, direction, uiMode, elementPreview.captureType) } @Suppress("DEPRECATION") diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable1group1name1.kt index de6c18bd2..da1aab0fe 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable1group1name1.kt @@ -1,5 +1,6 @@ // This is an auto-generated file. Please do not edit/modify this file. import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -8,5 +9,6 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKDoc = "", componentKey = """_TestComposable1_null_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable1() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable2group2name2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable2group2name2.kt index 6c85a86d7..bdff419de 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable2group2name2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_Paparazzi_screenshot_test_for_composable/output/TestComposable2group2name2.kt @@ -1,5 +1,6 @@ // This is an auto-generated file. Please do not edit/modify this file. import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -8,5 +9,6 @@ public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowse componentKDoc = "", componentKey = """_TestComposable2_null_group2_name2_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable2() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable1group1name1.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable1group1name1.kt index 8405a4776..8f3c4bef1 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable1group1name1.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable1group1name1.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable1group1name1: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable1_null_group1_name1_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable1() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable2group2name2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable2group2name2.kt index db50716b3..0e36106c0 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable2group2name2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_and_class_with_@ScreenshotTest_generates_screenshot_test_for_composable/output/TestComposable2group2name2.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposable2group2name2: ShowkaseBrowserComponent = ShowkaseBrowse componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable2_null_group2_name2_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable2() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt index 3e90875e9..26df1f555 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -13,5 +14,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo isDefaultStyle = false, widthDp = 150, heightDp = 250, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_compiles_ok/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_compiles_ok/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_compiles_ok/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_compiles_ok/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt index a19dc0035..7a65acf6b 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_preview_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposablegroupname: List = componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable(text = previewParam) } ) } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_showkase_composable_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_showkase_composable_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt index a19dc0035..7a65acf6b 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_showkase_composable_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_preview_parameter_and_showkase_composable_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposablegroupname: List = componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable(text = previewParam) } ) } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_generates_1_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_tags_and_metadata/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_tags_and_metadata/output/TestComposablegroupname.kt index 4a547292d..f7045b168 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_tags_and_metadata/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_tags_and_metadata/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -13,5 +14,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo isDefaultStyle = false, tags = listOf("tag A", "tag B"), extraMetadata = listOf("meta A"), + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt index 512db2c5b..308368b93 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_and_showkaseroot_with_width_and_height/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -13,5 +14,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo isDefaultStyle = false, widthDp = 200, heightDp = 300, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_compiles_ok/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_compiles_ok/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_compiles_ok/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_compiles_ok/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt index 2f325cb58..2f2de10ac 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_function_with_showkase_annotation_generates_only_metadata_file/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablegroupname: ShowkaseBrowserComponent = ShowkaseBrowserCo componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_group_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_color_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_color_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt index 5ffef5afa..18f7eeb3b 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_color_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_color_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrows componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_component_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_textstyle_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_textstyle_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt index 5ffef5afa..18f7eeb3b 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_textstyle_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_composable_with_wrapped_textstyle_property_with_ShowkaseColor_annotation_generates_only_metadata_file/output/TestComposablecomponentname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrowserComponent( @@ -11,5 +12,6 @@ public val TestComposablecomponentname: ShowkaseBrowserComponent = ShowkaseBrows componentKey = """com.airbnb.android.showkase_processor_testing_TestComposable_null_component_name_0_null""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { TestComposable() } ) diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_function_with_preview_and_preview_parameter_and_showkaseroot_and_no_name_or_group/output/TestComposable2DefaultGroupTestComposable2.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_function_with_preview_and_preview_parameter_and_showkaseroot_and_no_name_or_group/output/TestComposable2DefaultGroupTestComposable2.kt index 75feb2440..716a49a62 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_function_with_preview_and_preview_parameter_and_showkaseroot_and_no_name_or_group/output/TestComposable2DefaultGroupTestComposable2.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/top_level_function_with_preview_and_preview_parameter_and_showkaseroot_and_no_name_or_group/output/TestComposable2DefaultGroupTestComposable2.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposable2DefaultGroupTestComposable2: List = componentKey = """com.airbnb.android.showkase_processor_testing.WrapperClass_TestComposable_com.airbnb.android.showkase_processor_testing.WrapperClass_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { WrapperClass().TestComposable(text = previewParam) } diff --git a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/wrapped_function_with_showkase_composable_and_preview_parameter_and_showkaseroot_/output/TestComposablegroupname.kt b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/wrapped_function_with_showkase_composable_and_preview_parameter_and_showkaseroot_/output/TestComposablegroupname.kt index b8dec99c4..2af1ea8a1 100644 --- a/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/wrapped_function_with_showkase_composable_and_preview_parameter_and_showkaseroot_/output/TestComposablegroupname.kt +++ b/showkase-processor-testing/src/test/resources/ShowkaseProcessorTest/wrapped_function_with_showkase_composable_and_preview_parameter_and_showkaseroot_/output/TestComposablegroupname.kt @@ -2,6 +2,7 @@ package com.airbnb.android.showkase_processor_testing import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.`annotation`.ScreenshotConfig import com.airbnb.android.showkase.models.ShowkaseBrowserComponent import kotlin.collections.List @@ -18,6 +19,7 @@ public val TestComposablegroupname: List = componentKey = """com.airbnb.android.showkase_processor_testing.WrapperClass_TestComposable_com.airbnb.android.showkase_processor_testing.WrapperClass_group_name_0_null_$index""", isDefaultStyle = false, + screenshotConfig = ScreenshotConfig.SingleStaticImage, component = @Composable { WrapperClass().TestComposable(text = previewParam) } diff --git a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/models/ShowkaseMetadata.kt b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/models/ShowkaseMetadata.kt index a91b0dba5..77061c722 100644 --- a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/models/ShowkaseMetadata.kt +++ b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/models/ShowkaseMetadata.kt @@ -8,6 +8,9 @@ import androidx.room.compiler.processing.XMethodElement import androidx.room.compiler.processing.XType import androidx.room.compiler.processing.XTypeElement import androidx.room.compiler.processing.compat.XConverters.toJavac +import com.airbnb.android.showkase.annotation.ScreenshotCaptureConfig +import com.airbnb.android.showkase.annotation.ScreenshotCaptureType +import com.airbnb.android.showkase.annotation.ScreenshotConfig import com.airbnb.android.showkase.annotation.ShowkaseColor import com.airbnb.android.showkase.annotation.ShowkaseComposable import com.airbnb.android.showkase.annotation.ShowkaseMultiPreviewCodegenMetadata @@ -61,7 +64,8 @@ internal sealed class ShowkaseMetadata { val showkaseStyleName: String? = null, val isDefaultStyle: Boolean = false, val tags: List = emptyList(), - val extraMetadata: List = emptyList() + val extraMetadata: List = emptyList(), + val screenshotConfig: ScreenshotConfig = ScreenshotConfig.SingleStaticImage, ) : ShowkaseMetadata() data class Color( @@ -141,7 +145,7 @@ internal fun getShowkaseMetadata( val showkaseStyleName = getShowkaseStyleName(annotation.getAsString("styleName"), isDefaultStyle) val tags = annotation.getAsStringList("tags") val extraMetadata = annotation.getAsStringList("extraMetadata") - + val screenshotConfig = screenshotConfigFrom(annotation) ShowkaseMetadata.Component( packageSimpleName = commonMetadata.moduleName, packageName = commonMetadata.packageName, @@ -161,11 +165,39 @@ internal fun getShowkaseMetadata( isDefaultStyle = isDefaultStyle, componentIndex = showkaseAnnotations.indexOf(annotation), tags = tags, - extraMetadata = extraMetadata + extraMetadata = extraMetadata, + screenshotConfig = screenshotConfig, ) } } +private fun screenshotConfigFrom(annotation: XAnnotation): ScreenshotConfig { + val screenshotCaptureConfig = + annotation.getAsAnnotation(ShowkaseComposable::screenshotCaptureConfig.name) + val screenshotCaptureType = ScreenshotCaptureType.valueOf( + screenshotCaptureConfig.getAsEnum(ScreenshotCaptureConfig::type.name).name + ) + val gifDurationMillis = + screenshotCaptureConfig.getAsInt(ScreenshotCaptureConfig::durationMillis.name) + val gifFramerate = + screenshotCaptureConfig.getAsInt(ScreenshotCaptureConfig::framerate.name) + val animationOffsetsMillis = + screenshotCaptureConfig.getAsIntList(ScreenshotCaptureConfig::offsetsMillis.name) + + val screenshotConfig = when (screenshotCaptureType) { + ScreenshotCaptureType.SingleStaticImage -> ScreenshotConfig.SingleStaticImage + ScreenshotCaptureType.MultipleImagesAtOffsets -> ScreenshotConfig.MultipleImagesAtOffsets( + offsetMillis = animationOffsetsMillis, + ) + + ScreenshotCaptureType.SingleAnimatedImage -> ScreenshotConfig.SingleAnimatedImage( + durationMillis = gifDurationMillis, + framerate = gifFramerate, + ) + } + return screenshotConfig +} + internal fun XMethodElement.extractCommonMetadata(showkaseValidator: ShowkaseValidator): CommonMetadata { return extractCommonMetadata(enclosingElement, showkaseValidator) } @@ -324,6 +356,7 @@ internal fun getShowkaseMetadata( } else { customPreviewMetadata.showkaseWidth } + return ShowkaseMetadata.Component( element = xElement, elementName = xElement.name, diff --git a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/PaparazziShowkaseScreenshotTestWriter.kt b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/PaparazziShowkaseScreenshotTestWriter.kt index b2cf7398e..4b39dd4fb 100644 --- a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/PaparazziShowkaseScreenshotTestWriter.kt +++ b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/PaparazziShowkaseScreenshotTestWriter.kt @@ -22,7 +22,7 @@ class PaparazziShowkaseScreenshotTestWriter(private val environment: XProcessing rootModulePackageName: String, testClassName: String ) { - val showkaseScreenshotTestClassName = "${testClassName}_PaparazziShowkaseTest" + val showkaseScreenshotTestClassName = "${testClassName}Impl" val fileBuilder = getFileBuilder(screenshotTestPackageName, showkaseScreenshotTestClassName) fileBuilder .addImport(rootModulePackageName, "getMetadata") @@ -207,7 +207,7 @@ class PaparazziShowkaseScreenshotTestWriter(private val environment: XProcessing ) .addCode("\n") .addCode( - "takePaparazziSnapshot(%N, %N, %N, %N)", + "takePaparazziSnapshot(%N, %N, %N, %N, elementPreview.captureType)", "paparazzi", "elementPreview", "direction", diff --git a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/WriterUtils.kt b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/WriterUtils.kt index 107461c63..f370b481c 100644 --- a/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/WriterUtils.kt +++ b/showkase-processor/src/main/java/com/airbnb/android/showkase/processor/writer/WriterUtils.kt @@ -4,6 +4,7 @@ import androidx.room.compiler.processing.XFiler import androidx.room.compiler.processing.XProcessingEnv import androidx.room.compiler.processing.addOriginatingElement import androidx.room.compiler.processing.writeTo +import com.airbnb.android.showkase.annotation.ScreenshotConfig import com.airbnb.android.showkase.processor.exceptions.ShowkaseProcessorException import com.airbnb.android.showkase.processor.models.ShowkaseMetadata import com.squareup.kotlinpoet.AnnotationSpec @@ -138,6 +139,7 @@ internal fun CodeBlock.Builder.addShowkaseBrowserComponent( } addStringList("tags", showkaseMetadata.tags) addStringList("extraMetadata", showkaseMetadata.extraMetadata) + add("\nscreenshotConfig = %L,", screenshotConfigCodeBlock(showkaseMetadata.screenshotConfig)) add( composePreviewFunctionLambdaCodeBlock( showkaseMetadata.packageName, @@ -164,6 +166,27 @@ private fun CodeBlock.Builder.addStringList(name: String, values: List) } } +fun screenshotConfigCodeBlock(config: ScreenshotConfig): CodeBlock = when (config) { + ScreenshotConfig.SingleStaticImage -> { + CodeBlock.of("%T", ScreenshotConfig.SingleStaticImage::class) + } + is ScreenshotConfig.SingleAnimatedImage -> { + CodeBlock.of( + "%T(durationMillis = %L, framerate = %L)", + ScreenshotConfig.SingleAnimatedImage::class, + config.durationMillis, + config.framerate, + ) + } + is ScreenshotConfig.MultipleImagesAtOffsets -> { + CodeBlock.of( + "%T(offsetMillis = listOf(%L))", + ScreenshotConfig.MultipleImagesAtOffsets::class, + config.offsetMillis.joinToString(", "), + ) + } +} + @Suppress("LongParameterList") internal fun composePreviewFunctionLambdaCodeBlock( functionPackageName: String, diff --git a/showkase-screenshot-testing-paparazzi-sample/build.gradle b/showkase-screenshot-testing-paparazzi-sample/build.gradle index 0e61c4922..e8830afb1 100644 --- a/showkase-screenshot-testing-paparazzi-sample/build.gradle +++ b/showkase-screenshot-testing-paparazzi-sample/build.gradle @@ -8,7 +8,7 @@ buildscript { plugins { id 'com.android.library' id 'kotlin-android' - id 'app.cash.paparazzi' version "1.2.0" + id 'app.cash.paparazzi' version "2.0.0-alpha02" id 'org.jetbrains.kotlin.plugin.compose' } @@ -156,4 +156,4 @@ dependencies { implementation deps.test.testParameterInjector testImplementation deps.compose.uiTest testImplementation project(':showkase-screenshot-testing-paparazzi') -} +} \ No newline at end of file diff --git a/showkase-screenshot-testing-paparazzi-sample/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/sample/Animation.kt b/showkase-screenshot-testing-paparazzi-sample/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/sample/Animation.kt new file mode 100644 index 000000000..f82dbf9a5 --- /dev/null +++ b/showkase-screenshot-testing-paparazzi-sample/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/sample/Animation.kt @@ -0,0 +1,58 @@ +package com.airbnb.android.showkase.screenshot.testing.paparazzi.sample + +import androidx.compose.animation.core.animateDpAsState +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.airbnb.android.showkase.annotation.ScreenshotCaptureConfig +import com.airbnb.android.showkase.annotation.ScreenshotCaptureType +import com.airbnb.android.showkase.annotation.ShowkaseComposable + +@ShowkaseComposable( + name = "AnimatedOffset", + group = "Animated", + defaultStyle = true, + screenshotCaptureConfig = ScreenshotCaptureConfig( + type = ScreenshotCaptureType.SingleAnimatedImage, + durationMillis = 2000, + ), +) +@Composable +fun BoxWithAnimatedOffsetPreview() { + // This code triggers an animation in this preview + var isOffsetToRight by remember { mutableStateOf(false) } + val offset by animateDpAsState( + if (isOffsetToRight) 200.dp else 0.dp, + animationSpec = tween(2000) + ) + LaunchedEffect(Unit) { + isOffsetToRight = true + } + + Box( + Modifier + .width(300.dp) + .border(1.dp, Color.Blue) + ) { + Spacer( + Modifier + .offset(x = offset) + .size(40.dp) + .background(Color.Red) + ) + } +} diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[1.Chips__Basic_Chip__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[1.Chips__Basic_Chip__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..a6ffc06c0 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[1.Chips__Basic_Chip__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[10.Buttons__CustomButton__Small,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[10.Buttons__CustomButton__Small,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..a57589c8a Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[10.Buttons__CustomButton__Small,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[11.Text__Sans_Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[11.Text__Sans_Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..dc2c229cc Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[11.Text__Sans_Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[12.Text__Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[12.Text__Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..7521d5a90 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[12.Text__Serif_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[13.Rows__Simple_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[13.Rows__Simple_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..be6f3568b Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[13.Rows__Simple_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[14.Rows__Title_Subtitle_with_Thumbnail__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[14.Rows__Title_Subtitle_with_Thumbnail__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..8adb18fc6 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[14.Rows__Title_Subtitle_with_Thumbnail__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[15.Scrollable__Vertical_Scroll__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[15.Scrollable__Vertical_Scroll__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..9d864e953 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[15.Scrollable__Vertical_Scroll__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[16.Default_Group__Preview_-_1.5_font__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[16.Default_Group__Preview_-_1.5_font__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..8872acad3 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[16.Default_Group__Preview_-_1.5_font__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[17.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[17.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..cf463e40b Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[17.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[18.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[18.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..6630e6962 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[18.Text__H6_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[19.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[19.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..cf463e40b Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[19.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[2.Chips__Basic_Chip__Yellow_Background,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[2.Chips__Basic_Chip__Yellow_Background,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..713af919d Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[2.Chips__Basic_Chip__Yellow_Background,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[20.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[20.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..6630e6962 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[20.Text__H6_Text_Row_&_special_chars__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[21.Light_Colors__Secondary,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[21.Light_Colors__Secondary,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..f5d6c27b4 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[21.Light_Colors__Secondary,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[22.Light_Colors__Secondary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[22.Light_Colors__Secondary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..ed343f670 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[22.Light_Colors__Secondary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[23.Light_Colors__Background,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[23.Light_Colors__Background,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..c916c592b Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[23.Light_Colors__Background,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[24.Light_Colors__Surface,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[24.Light_Colors__Surface,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..c916c592b Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[24.Light_Colors__Surface,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[25.Light_Colors__Error,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[25.Light_Colors__Error,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..959e21872 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[25.Light_Colors__Error,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[26.Light_Colors__Primary,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[26.Light_Colors__Primary,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..f714faf8f Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[26.Light_Colors__Primary,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[27.Light_Colors__Primary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[27.Light_Colors__Primary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..89b4a8edf Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[27.Light_Colors__Primary_Variant,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[28.Material__H1,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[28.Material__H1,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..b8719bd91 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[28.Material__H1,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[29.Material__H2,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[29.Material__H2,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..c7a9c96a7 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[29.Material__H2,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[3.Rows__Bottom_Label_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[3.Rows__Bottom_Label_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..7880e6397 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[3.Rows__Bottom_Label_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[30.Material__H3,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[30.Material__H3,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..4e80bbc4a Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[30.Material__H3,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[31.Material__H4,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[31.Material__H4,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..349c6b331 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[31.Material__H4,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[32.Material__H5,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[32.Material__H5,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..e9702c565 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[32.Material__H5,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[33.Material__H6,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[33.Material__H6,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..2d2ccb61a Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[33.Material__H6,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[34.Material__Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[34.Material__Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..643d29bc9 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[34.Material__Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[35.Material__Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[35.Material__Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..cc87203e2 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[35.Material__Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[36.Material__Body1,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[36.Material__Body1,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..c3c4f0e0e Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[36.Material__Body1,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[37.Material__Body2,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[37.Material__Body2,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..22c4ecdd1 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[37.Material__Body2,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[38.Material__Button,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[38.Material__Button,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..0bfd0c8f6 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[38.Material__Button,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[39.Material__Caption,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[39.Material__Caption,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..e85dfbb4c Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[39.Material__Caption,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[4.Navigation__Bottom_Navigation_Bar__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[4.Navigation__Bottom_Navigation_Bar__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..106727e80 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[4.Navigation__Bottom_Navigation_Bar__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[40.Material__Overline,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[40.Material__Overline,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..d249db967 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[40.Material__Overline,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[6.Text__Cursive_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[6.Text__Cursive_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..e549714c2 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[6.Text__Cursive_Text_Style__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[7.Text__H4_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[7.Text__H4_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..76f905bf0 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[7.Text__H4_Text_Row__null,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[8.Buttons__CustomButton__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[8.Buttons__CustomButton__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..1164b0c0f Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[8.Buttons__CustomButton__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[9.Buttons__CustomButton__Medium,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[9.Buttons__CustomButton__Medium,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..4e01c582a Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[9.Buttons__CustomButton__Medium,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[1.Chips**Basic Chip**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**default_style.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[1.Chips**Basic Chip**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**default_style.png deleted file mode 100644 index 232c4294c..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[1.Chips**Basic Chip**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**default_style.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[10.Text**Sans Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**sans_serif_text_style**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[10.Text**Sans Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**sans_serif_text_style**null.png deleted file mode 100644 index c72d809bc..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[10.Text**Sans Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**sans_serif_text_style**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[11.Text**Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**serif_text_style**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[11.Text**Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**serif_text_style**null.png deleted file mode 100644 index 82998d205..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[11.Text**Serif Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**serif_text_style**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[12.Rows**Simple Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**simple_row**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[12.Rows**Simple Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**simple_row**null.png deleted file mode 100644 index e95e07b29..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[12.Rows**Simple Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**simple_row**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[13.Rows**Title Subtitle with Thumbnail**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**title_subtitle_with_thumbnail**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[13.Rows**Title Subtitle with Thumbnail**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**title_subtitle_with_thumbnail**null.png deleted file mode 100644 index 447d4011a..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[13.Rows**Title Subtitle with Thumbnail**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**title_subtitle_with_thumbnail**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[14.Scrollable**Vertical Scroll**null,1.Pixel5,1.Ltr,1.DEFAULT]_scrollable**vertical_scroll**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[14.Scrollable**Vertical Scroll**null,1.Pixel5,1.Ltr,1.DEFAULT]_scrollable**vertical_scroll**null.png deleted file mode 100644 index b9e8b0308..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[14.Scrollable**Vertical Scroll**null,1.Pixel5,1.Ltr,1.DEFAULT]_scrollable**vertical_scroll**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[15.Default Group**Preview - 1.5 font**null,1.Pixel5,1.Ltr,1.DEFAULT]_default_group**preview_-_1.5_font**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[15.Default Group**Preview - 1.5 font**null,1.Pixel5,1.Ltr,1.DEFAULT]_default_group**preview_-_1.5_font**null.png deleted file mode 100644 index e5943ee10..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[15.Default Group**Preview - 1.5 font**null,1.Pixel5,1.Ltr,1.DEFAULT]_default_group**preview_-_1.5_font**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[16.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[16.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png deleted file mode 100644 index 15577b2c9..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[16.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[17.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[17.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png deleted file mode 100644 index 90a8b8f92..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[17.Text**H6 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[18.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[18.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png deleted file mode 100644 index 15577b2c9..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[18.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[19.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[19.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png deleted file mode 100644 index 90a8b8f92..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[19.Text**H6 Text Row & special chars**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h6_text_row_&_special_chars**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[2.Chips**Basic Chip**Yellow Background,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**yellow_background.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[2.Chips**Basic Chip**Yellow Background,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**yellow_background.png deleted file mode 100644 index 301b038a3..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[2.Chips**Basic Chip**Yellow Background,1.Pixel5,1.Ltr,1.DEFAULT]_chips**basic_chip**yellow_background.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[20.Light Colors**Secondary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[20.Light Colors**Secondary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary.png deleted file mode 100644 index 9be2cd703..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[20.Light Colors**Secondary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[21.Light Colors**Secondary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary_variant.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[21.Light Colors**Secondary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary_variant.png deleted file mode 100644 index cd09d576f..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[21.Light Colors**Secondary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**secondary_variant.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[22.Light Colors**Background,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**background.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[22.Light Colors**Background,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**background.png deleted file mode 100644 index 3f9e439b7..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[22.Light Colors**Background,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**background.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[23.Light Colors**Surface,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**surface.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[23.Light Colors**Surface,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**surface.png deleted file mode 100644 index 3f9e439b7..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[23.Light Colors**Surface,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**surface.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[24.Light Colors**Error,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**error.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[24.Light Colors**Error,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**error.png deleted file mode 100644 index f1ef48f6e..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[24.Light Colors**Error,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**error.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[25.Light Colors**Primary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[25.Light Colors**Primary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary.png deleted file mode 100644 index 90a126da4..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[25.Light Colors**Primary,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[26.Light Colors**Primary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary_variant.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[26.Light Colors**Primary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary_variant.png deleted file mode 100644 index 446b1f0a3..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[26.Light Colors**Primary Variant,1.Pixel5,1.Ltr,1.DEFAULT]_light_colors**primary_variant.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[27.Material**H1,1.Pixel5,1.Ltr,1.DEFAULT]_material**h1.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[27.Material**H1,1.Pixel5,1.Ltr,1.DEFAULT]_material**h1.png deleted file mode 100644 index 4fa9e60f0..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[27.Material**H1,1.Pixel5,1.Ltr,1.DEFAULT]_material**h1.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[28.Material**H2,1.Pixel5,1.Ltr,1.DEFAULT]_material**h2.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[28.Material**H2,1.Pixel5,1.Ltr,1.DEFAULT]_material**h2.png deleted file mode 100644 index d4e134f83..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[28.Material**H2,1.Pixel5,1.Ltr,1.DEFAULT]_material**h2.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[29.Material**H3,1.Pixel5,1.Ltr,1.DEFAULT]_material**h3.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[29.Material**H3,1.Pixel5,1.Ltr,1.DEFAULT]_material**h3.png deleted file mode 100644 index 338563aeb..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[29.Material**H3,1.Pixel5,1.Ltr,1.DEFAULT]_material**h3.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[3.Rows**Bottom Label Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**bottom_label_row**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[3.Rows**Bottom Label Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**bottom_label_row**null.png deleted file mode 100644 index 54fc67bba..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[3.Rows**Bottom Label Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_rows**bottom_label_row**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[30.Material**H4,1.Pixel5,1.Ltr,1.DEFAULT]_material**h4.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[30.Material**H4,1.Pixel5,1.Ltr,1.DEFAULT]_material**h4.png deleted file mode 100644 index 5fc112337..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[30.Material**H4,1.Pixel5,1.Ltr,1.DEFAULT]_material**h4.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[31.Material**H5,1.Pixel5,1.Ltr,1.DEFAULT]_material**h5.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[31.Material**H5,1.Pixel5,1.Ltr,1.DEFAULT]_material**h5.png deleted file mode 100644 index 7d697b4c0..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[31.Material**H5,1.Pixel5,1.Ltr,1.DEFAULT]_material**h5.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[32.Material**H6,1.Pixel5,1.Ltr,1.DEFAULT]_material**h6.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[32.Material**H6,1.Pixel5,1.Ltr,1.DEFAULT]_material**h6.png deleted file mode 100644 index 9d7b48a6d..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[32.Material**H6,1.Pixel5,1.Ltr,1.DEFAULT]_material**h6.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[33.Material**Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle1.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[33.Material**Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle1.png deleted file mode 100644 index 76e566ef1..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[33.Material**Subtitle1,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle1.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[34.Material**Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle2.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[34.Material**Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle2.png deleted file mode 100644 index a8d46d7cd..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[34.Material**Subtitle2,1.Pixel5,1.Ltr,1.DEFAULT]_material**subtitle2.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[35.Material**Body1,1.Pixel5,1.Ltr,1.DEFAULT]_material**body1.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[35.Material**Body1,1.Pixel5,1.Ltr,1.DEFAULT]_material**body1.png deleted file mode 100644 index 0d946525d..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[35.Material**Body1,1.Pixel5,1.Ltr,1.DEFAULT]_material**body1.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[36.Material**Body2,1.Pixel5,1.Ltr,1.DEFAULT]_material**body2.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[36.Material**Body2,1.Pixel5,1.Ltr,1.DEFAULT]_material**body2.png deleted file mode 100644 index 1511655b8..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[36.Material**Body2,1.Pixel5,1.Ltr,1.DEFAULT]_material**body2.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[37.Material**Button,1.Pixel5,1.Ltr,1.DEFAULT]_material**button.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[37.Material**Button,1.Pixel5,1.Ltr,1.DEFAULT]_material**button.png deleted file mode 100644 index 555c12344..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[37.Material**Button,1.Pixel5,1.Ltr,1.DEFAULT]_material**button.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[38.Material**Caption,1.Pixel5,1.Ltr,1.DEFAULT]_material**caption.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[38.Material**Caption,1.Pixel5,1.Ltr,1.DEFAULT]_material**caption.png deleted file mode 100644 index 36912ce86..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[38.Material**Caption,1.Pixel5,1.Ltr,1.DEFAULT]_material**caption.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[39.Material**Overline,1.Pixel5,1.Ltr,1.DEFAULT]_material**overline.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[39.Material**Overline,1.Pixel5,1.Ltr,1.DEFAULT]_material**overline.png deleted file mode 100644 index 75740e84c..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[39.Material**Overline,1.Pixel5,1.Ltr,1.DEFAULT]_material**overline.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[4.Navigation**Bottom Navigation Bar**null,1.Pixel5,1.Ltr,1.DEFAULT]_navigation**bottom_navigation_bar**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[4.Navigation**Bottom Navigation Bar**null,1.Pixel5,1.Ltr,1.DEFAULT]_navigation**bottom_navigation_bar**null.png deleted file mode 100644 index faac55190..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[4.Navigation**Bottom Navigation Bar**null,1.Pixel5,1.Ltr,1.DEFAULT]_navigation**bottom_navigation_bar**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[5.Text**Cursive Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**cursive_text_style**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[5.Text**Cursive Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**cursive_text_style**null.png deleted file mode 100644 index a6da9e024..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[5.Text**Cursive Text Style**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**cursive_text_style**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[6.Text**H4 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h4_text_row**null.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[6.Text**H4 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h4_text_row**null.png deleted file mode 100644 index 417794a53..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[6.Text**H4 Text Row**null,1.Pixel5,1.Ltr,1.DEFAULT]_text**h4_text_row**null.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[7.Buttons**CustomButton**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**default_style.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[7.Buttons**CustomButton**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**default_style.png deleted file mode 100644 index a1405e5f9..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[7.Buttons**CustomButton**Default Style,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**default_style.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[8.Buttons**CustomButton**Medium,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**medium.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[8.Buttons**CustomButton**Medium,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**medium.png deleted file mode 100644 index 3f8abadf1..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[8.Buttons**CustomButton**Medium,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**medium.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[9.Buttons**CustomButton**Small,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**small.png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[9.Buttons**CustomButton**Small,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**small.png deleted file mode 100644 index 83123377a..000000000 Binary files a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/images/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTest_PaparazziShowkaseTest_test_previews[9.Buttons**CustomButton**Small,1.Pixel5,1.Ltr,1.DEFAULT]_buttons**custombutton**small.png and /dev/null differ diff --git a/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/videos/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[5.Animated__AnimatedOffset__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/videos/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[5.Animated__AnimatedOffset__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png new file mode 100644 index 000000000..f12e93ab3 Binary files /dev/null and b/showkase-screenshot-testing-paparazzi-sample/src/test/snapshots/videos/com.airbnb.android.showkase.screenshot.testing.paparazzi.sample_MyPaparazziShowkaseScreenshotTestImpl_test_previews[5.Animated__AnimatedOffset__Default_Style,1.Pixel5,1.Ltr,1.DEFAULT].png differ diff --git a/showkase-screenshot-testing-paparazzi/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/PaparazziShowkaseScreenshotTest.kt b/showkase-screenshot-testing-paparazzi/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/PaparazziShowkaseScreenshotTest.kt index 3787055b6..2d094190c 100644 --- a/showkase-screenshot-testing-paparazzi/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/PaparazziShowkaseScreenshotTest.kt +++ b/showkase-screenshot-testing-paparazzi/src/main/java/com/airbnb/android/showkase/screenshot/testing/paparazzi/PaparazziShowkaseScreenshotTest.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.text.BasicText import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalInspectionMode @@ -24,6 +25,7 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import app.cash.paparazzi.DeviceConfig import app.cash.paparazzi.Paparazzi +import com.airbnb.android.showkase.annotation.ScreenshotConfig import com.airbnb.android.showkase.annotation.ShowkaseScreenshot import com.airbnb.android.showkase.models.ShowkaseBrowserColor import com.airbnb.android.showkase.models.ShowkaseBrowserComponent @@ -100,35 +102,62 @@ interface PaparazziShowkaseScreenshotTest { paparazzi: Paparazzi, testPreview: PaparazziShowkaseTestPreview, direction: LayoutDirection, - mode: PaparazziShowkaseUIMode + mode: PaparazziShowkaseUIMode, + captureType: ScreenshotConfig = ScreenshotConfig.SingleStaticImage, ) { - paparazzi.snapshot(name = testPreview.toString()) { - val lifecycleOwner = LocalLifecycleOwner.current - val configuration = if (mode == PaparazziShowkaseUIMode.DARK) { - Configuration(LocalConfiguration.current).apply { - uiMode = Configuration.UI_MODE_NIGHT_YES - } - } else { - LocalConfiguration.current + val hostView = ComposeView(paparazzi.context) + hostView.setContent { + PaparazziWrapper(mode, direction, testPreview) + } + when (captureType) { + ScreenshotConfig.SingleStaticImage -> paparazzi.snapshot(hostView) + is ScreenshotConfig.MultipleImagesAtOffsets -> captureType.offsetMillis.forEach { offsetMs -> + paparazzi.snapshot( + hostView, + name = "${offsetMs}ms", + offsetMillis = offsetMs.toLong() + ) + } + + is ScreenshotConfig.SingleAnimatedImage -> paparazzi.gif( + view = hostView, + end = captureType.durationMillis.toLong(), + fps = captureType.framerate + ) + } + } + + @Composable + fun PaparazziWrapper( + mode: PaparazziShowkaseUIMode, + direction: LayoutDirection, + testPreview: PaparazziShowkaseTestPreview + ) { + val lifecycleOwner = LocalLifecycleOwner.current + val configuration = if (mode == PaparazziShowkaseUIMode.DARK) { + Configuration(LocalConfiguration.current).apply { + uiMode = Configuration.UI_MODE_NIGHT_YES } - CompositionLocalProvider( - LocalInspectionMode provides true, - LocalDensity provides Density( - density = LocalDensity.current.density, - ), - LocalConfiguration provides configuration, - LocalLayoutDirection provides direction, - // Needed so that UI that uses it don't crash during screenshot tests - LocalOnBackPressedDispatcherOwner provides object : OnBackPressedDispatcherOwner { - override val lifecycle: Lifecycle - get() = lifecycleOwner.lifecycle - override val onBackPressedDispatcher: OnBackPressedDispatcher - get() = OnBackPressedDispatcher() - } - ) { - Box { - testPreview.Content() - } + } else { + LocalConfiguration.current + } + CompositionLocalProvider( + LocalInspectionMode provides true, + LocalDensity provides Density( + density = LocalDensity.current.density, + ), + LocalConfiguration provides configuration, + LocalLayoutDirection provides direction, + // Needed so that UI that uses it don't crash during screenshot tests + LocalOnBackPressedDispatcherOwner provides object : OnBackPressedDispatcherOwner { + override val lifecycle: Lifecycle + get() = lifecycleOwner.lifecycle + override val onBackPressedDispatcher: OnBackPressedDispatcher + get() = OnBackPressedDispatcher() + } + ) { + Box { + testPreview.Content() } } } @@ -137,9 +166,12 @@ interface PaparazziShowkaseScreenshotTest { interface PaparazziShowkaseTestPreview { @Composable fun Content() + + val captureType: ScreenshotConfig + get() = ScreenshotConfig.SingleStaticImage } -private const val DELIM = "**" +private const val DELIM = "__" // Can't use * which is an invalid character for Paparazzi class ComponentPaparazziShowkaseTestPreview( private val showkaseBrowserComponent: ShowkaseBrowserComponent, @@ -147,6 +179,9 @@ class ComponentPaparazziShowkaseTestPreview( @Composable override fun Content() = showkaseBrowserComponent.component() + + override val captureType = showkaseBrowserComponent.screenshotConfig + override fun toString(): String = "${showkaseBrowserComponent.group}$DELIM${showkaseBrowserComponent.componentName}$DELIM" + "${showkaseBrowserComponent.styleName}" diff --git a/showkase/src/main/java/com/airbnb/android/showkase/models/ShowkaseBrowserComponent.kt b/showkase/src/main/java/com/airbnb/android/showkase/models/ShowkaseBrowserComponent.kt index 0afe9537d..5dfc70259 100644 --- a/showkase/src/main/java/com/airbnb/android/showkase/models/ShowkaseBrowserComponent.kt +++ b/showkase/src/main/java/com/airbnb/android/showkase/models/ShowkaseBrowserComponent.kt @@ -1,6 +1,7 @@ package com.airbnb.android.showkase.models import androidx.compose.runtime.Composable +import com.airbnb.android.showkase.annotation.ScreenshotConfig // TODO(vinaygaba): Move it to a different module that has Android/Compose dependencies hoooked up. // This was added here only because this module has compose dependencies. @@ -15,5 +16,6 @@ data class ShowkaseBrowserComponent( val widthDp: Int? = null, val heightDp: Int? = null, val tags: List = emptyList(), - val extraMetadata: List = emptyList() -) + val extraMetadata: List = emptyList(), + val screenshotConfig: ScreenshotConfig = ScreenshotConfig.SingleStaticImage, + )