From 5d26cbd97913b573cf7d2b6d5fef647aa4d2de69 Mon Sep 17 00:00:00 2001 From: takahirom Date: Tue, 3 Dec 2024 12:55:13 +0900 Subject: [PATCH] Add a deprecated method of ComposablePreview.applyToRobolectricConfiguration() as it was a ExperimentalApi --- .../RoborazziPreviewScannerSupport.kt | 29 ++++++++++++++----- .../roborazzi/RoborazziComposeConfig.kt | 3 +- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/roborazzi-compose-preview-scanner-support/src/main/java/com/github/takahirom/roborazzi/RoborazziPreviewScannerSupport.kt b/roborazzi-compose-preview-scanner-support/src/main/java/com/github/takahirom/roborazzi/RoborazziPreviewScannerSupport.kt index 150af481..0f91a6d0 100644 --- a/roborazzi-compose-preview-scanner-support/src/main/java/com/github/takahirom/roborazzi/RoborazziPreviewScannerSupport.kt +++ b/roborazzi-compose-preview-scanner-support/src/main/java/com/github/takahirom/roborazzi/RoborazziPreviewScannerSupport.kt @@ -13,7 +13,18 @@ import sergio.sastre.composable.preview.scanner.core.preview.ComposablePreview fun ComposablePreview.captureRoboImage( filePath: String, roborazziOptions: RoborazziOptions = provideRoborazziContext().options, - configBuilder: RoborazziComposeConfigBuilder = RoborazziComposeConfigBuilder() + configBuilder: RoborazziComposeConfigBuilder = this.toRoborazziComposeConfigBuilder() +) { + if (!roborazziOptions.taskType.isEnabled()) return + val composablePreview = this + captureRoboImage(filePath, roborazziOptions, configBuilder) { + composablePreview() + } +} + +@ExperimentalRoborazziApi +fun ComposablePreview.toRoborazziComposeConfigBuilder() = + RoborazziComposeConfigBuilder() .size( widthDp = previewInfo.widthDp, heightDp = previewInfo.heightDp @@ -26,12 +37,16 @@ fun ComposablePreview.captureRoboImage( .configurationUiMode(previewInfo.uiMode) .previewDevice(previewInfo.device) .fontScale(previewInfo.fontScale) -) { - if (!roborazziOptions.taskType.isEnabled()) return - val composablePreview = this - captureRoboImage(filePath, roborazziOptions, configBuilder) { - composablePreview() - } + + +@Suppress("UnusedReceiverParameter") +@Deprecated( + message = "Use previewInfo.toRoborazziComposeConfigBuilder().apply(scenario, composeContent) or ComposablePreview.captureRoboImage() instead", + replaceWith = ReplaceWith("previewInfo.toRoborazziComposeConfigBuilder().apply(scenario, composeContent)"), + level = DeprecationLevel.ERROR +) +fun ComposablePreview.applyToRobolectricConfiguration() { + throw UnsupportedOperationException("Use previewInfo.toRoborazziComposeConfigBuilder().apply(scenario, composeContent) or ComposablePreview.captureRoboImage() instead") } fun RoborazziComposeConfigBuilder.previewDevice(previewDevice: String) = diff --git a/roborazzi-compose/src/main/java/com/github/takahirom/roborazzi/RoborazziComposeConfig.kt b/roborazzi-compose/src/main/java/com/github/takahirom/roborazzi/RoborazziComposeConfig.kt index 5270673b..dca14bf9 100644 --- a/roborazzi-compose/src/main/java/com/github/takahirom/roborazzi/RoborazziComposeConfig.kt +++ b/roborazzi-compose/src/main/java/com/github/takahirom/roborazzi/RoborazziComposeConfig.kt @@ -34,7 +34,6 @@ interface RoborazziComposeComposableConfig : RoborazziComposeConfig { fun configureWithComposable(content: @Composable () -> Unit): @Composable () -> Unit } - @ExperimentalRoborazziApi class RoborazziComposeConfigBuilder { private val activityScenarioConfigs = @@ -55,7 +54,7 @@ class RoborazziComposeConfigBuilder { return this } - @InternalRoborazziApi + @ExperimentalRoborazziApi fun configure( scenario: ActivityScenario, content: @Composable () -> Unit