Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add boolean Flag to decide if image should be original size or not #1382

Merged
merged 13 commits into from
May 16, 2024
6 changes: 4 additions & 2 deletions paparazzi/api/paparazzi.api
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ public final class app/cash/paparazzi/Paparazzi : org/junit/rules/TestRule {
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;Z)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;ZZ)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;ZZZ)V
public synthetic fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;ZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;ZZZZ)V
public synthetic fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZDLapp/cash/paparazzi/SnapshotHandler;Ljava/util/Set;ZZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun apply (Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;)Lorg/junit/runners/model/Statement;
public final fun close ()V
public final fun getContext ()Landroid/content/Context;
Expand Down Expand Up @@ -153,7 +154,8 @@ public final class app/cash/paparazzi/PaparazziSdk {
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZLkotlin/jvm/functions/Function1;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZZLkotlin/jvm/functions/Function1;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZZZLkotlin/jvm/functions/Function1;)V
public synthetic fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZZZLkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZZZZLkotlin/jvm/functions/Function1;)V
public synthetic fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLjava/util/Set;ZZZZLkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lcom/android/ide/common/rendering/api/SessionParams$RenderingMode;ZLkotlin/jvm/functions/Function1;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
public fun <init> (Lapp/cash/paparazzi/Environment;Lapp/cash/paparazzi/DeviceConfig;Lkotlin/jvm/functions/Function1;)V
Expand Down
6 changes: 4 additions & 2 deletions paparazzi/src/main/java/app/cash/paparazzi/Paparazzi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ public class Paparazzi @JvmOverloads constructor(
private val renderExtensions: Set<RenderExtension> = setOf(),
private val supportsRtl: Boolean = false,
private val showSystemUi: Boolean = false,
private val validateAccessibility: Boolean = false
private val validateAccessibility: Boolean = false,
private val useDeviceResolution: Boolean = false
) : TestRule {
private lateinit var sdk: PaparazziSdk
private lateinit var frameHandler: SnapshotHandler.FrameHandler
Expand Down Expand Up @@ -69,7 +70,8 @@ public class Paparazzi @JvmOverloads constructor(
supportsRtl = supportsRtl,
showSystemUi = showSystemUi,
validateAccessibility = validateAccessibility,
onNewFrame = { frameHandler.handle(it) }
onNewFrame = { frameHandler.handle(it) },
useDeviceResolution = useDeviceResolution
)
sdk.setup()
prepare(description)
Expand Down
5 changes: 3 additions & 2 deletions paparazzi/src/main/java/app/cash/paparazzi/PaparazziSdk.kt
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public class PaparazziSdk @JvmOverloads constructor(
private val supportsRtl: Boolean = false,
private val showSystemUi: Boolean = false,
private val validateAccessibility: Boolean = false,
private val useDeviceResolution: Boolean = false,
private val onNewFrame: (BufferedImage) -> Unit
) {
private val logger = PaparazziLogger()
Expand Down Expand Up @@ -381,8 +382,8 @@ public class PaparazziSdk @JvmOverloads constructor(

private fun scaleImage(image: BufferedImage): BufferedImage {
val scale = ImageUtils.getThumbnailScale(image)
// Only scale images down so we don't waste storage space enlarging smaller layouts.
return if (scale < 1f) ImageUtils.scale(image, scale, scale) else image
// Only scale images down, so we don't waste storage space enlarging smaller layouts.
return if (scale < 1f && !useDeviceResolution) ImageUtils.scale(image, scale, scale) else image
}
emuguy1 marked this conversation as resolved.
Show resolved Hide resolved

private fun validateLayoutAccessibility(view: View, image: BufferedImage? = null) {
Expand Down