From 4ff82ec263ae2b61830545c6afaa74db93250778 Mon Sep 17 00:00:00 2001 From: John Rodriguez Date: Fri, 12 May 2023 04:23:23 -0400 Subject: [PATCH] Configure Environment with local and library resource paths --- .../java/app/cash/paparazzi/gradle/PaparazziPlugin.kt | 8 ++++---- .../app/cash/paparazzi/gradle/PrepareResourcesTask.kt | 8 ++++---- .../java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt | 4 ++-- paparazzi/paparazzi/build.gradle | 2 ++ .../src/main/java/app/cash/paparazzi/Environment.kt | 8 ++++++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PaparazziPlugin.kt b/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PaparazziPlugin.kt index f8e3d7504..f00406e4e 100644 --- a/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PaparazziPlugin.kt +++ b/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PaparazziPlugin.kt @@ -92,12 +92,12 @@ class PaparazziPlugin : Plugin { val snapshotOutputDir = project.layout.projectDirectory.dir("src/test/snapshots") // local resources - val localResourceFiles = project + val localResourceDirs = project .files(variant.sourceSets.flatMap { it.resDirectories }) // library resources // https://android.googlesource.com/platform/tools/base/+/96015063acd3455a76cdf1cc71b23b0828c0907f/build-system/gradle-core/src/main/java/com/android/build/gradle/tasks/MergeResources.kt#875 - val libraryResourceFiles = variant.runtimeConfiguration + val libraryResourceDirs = variant.runtimeConfiguration .artifactsFor(ArtifactType.ANDROID_RES.type) .artifactFiles @@ -120,8 +120,8 @@ class PaparazziPlugin : Plugin { task.targetSdkVersion.set(android.targetSdkVersion()) task.compileSdkVersion.set(android.compileSdkVersion()) task.mergeAssetsOutputDir.set(buildDirectory.asRelativePathString(mergeAssetsOutputDir)) - task.localResourceFiles.from(localResourceFiles) - task.libraryResourceFiles.from(libraryResourceFiles) + task.localResourceDirs.from(localResourceDirs) + task.libraryResourceDirs.from(libraryResourceDirs) task.paparazziResources.set(buildDirectory.file("intermediates/paparazzi/${variant.name}/resources.txt")) } diff --git a/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PrepareResourcesTask.kt b/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PrepareResourcesTask.kt index d35291bde..e7d36f348 100644 --- a/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PrepareResourcesTask.kt +++ b/paparazzi/paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PrepareResourcesTask.kt @@ -44,11 +44,11 @@ abstract class PrepareResourcesTask : DefaultTask() { @get:InputFiles @get:PathSensitive(PathSensitivity.NONE) - abstract val localResourceFiles: ConfigurableFileCollection + abstract val localResourceDirs: ConfigurableFileCollection @get:InputFiles @get:PathSensitive(PathSensitivity.NONE) - abstract val libraryResourceFiles: ConfigurableFileCollection + abstract val libraryResourceDirs: ConfigurableFileCollection @get:Input abstract val mergeAssetsOutputDir: Property @@ -99,9 +99,9 @@ abstract class PrepareResourcesTask : DefaultTask() { it.newLine() it.write(resourcePackageNames) it.newLine() - it.write(localResourceFiles.joinFiles(projectDirectory)) + it.write(localResourceDirs.joinFiles(projectDirectory)) it.newLine() - it.write(libraryResourceFiles.joinFiles(projectDirectory)) + it.write(libraryResourceDirs.joinFiles(projectDirectory)) it.newLine() } } diff --git a/paparazzi/paparazzi-gradle-plugin/src/test/java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt b/paparazzi/paparazzi-gradle-plugin/src/test/java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt index 10822fc46..f57b222fa 100644 --- a/paparazzi/paparazzi-gradle-plugin/src/test/java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt +++ b/paparazzi/paparazzi-gradle-plugin/src/test/java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt @@ -751,7 +751,7 @@ class PaparazziPluginTest { assertThat(resourceFileContents[4]).isEqualTo("intermediates/assets/debug") assertThat(resourceFileContents[5]).isEqualTo("app.cash.paparazzi.plugin.test") assertThat(resourceFileContents[6]).isEqualTo("src/main/res,src/debug/res") - assertThat(resourceFileContents[7]).isEqualTo("../../../../build/tmp/test/work/.gradle-test-kit/caches/transforms-3/57296c8dafa8e42375ba5dc0569953b4/transformed/external/res") + assertThat(resourceFileContents[7]).isEqualTo("../../../../build/tmp/test/work/.gradle-test-kit/caches/transforms-3/05b86fef7254f66e4a9c0b458c40632f/transformed/external/res") } @Test @@ -773,7 +773,7 @@ class PaparazziPluginTest { assertThat(resourceFileContents[4]).isEqualTo("intermediates/assets/debug") assertThat(resourceFileContents[5]).isEqualTo("app.cash.paparazzi.plugin.test") assertThat(resourceFileContents[6]).isEqualTo("src/main/res,src/debug/res") - assertThat(resourceFileContents[7]).isEqualTo("../../../../build/tmp/test/work/.gradle-test-kit/caches/transforms-3/57296c8dafa8e42375ba5dc0569953b4/transformed/external/res") + assertThat(resourceFileContents[7]).isEqualTo("../../../../build/tmp/test/work/.gradle-test-kit/caches/transforms-3/05b86fef7254f66e4a9c0b458c40632f/transformed/external/res") } @Test diff --git a/paparazzi/paparazzi/build.gradle b/paparazzi/paparazzi/build.gradle index 6095fe88d..92f4d68f0 100644 --- a/paparazzi/paparazzi/build.gradle +++ b/paparazzi/paparazzi/build.gradle @@ -104,6 +104,8 @@ def generateTestConfig = tasks.register("generateTestConfig") { writer.writeLine("platforms/android-31/") writer.writeLine(".") writer.writeLine("app.cash.paparazzi") + writer.writeLine("") + writer.writeLine("") } } } diff --git a/paparazzi/paparazzi/src/main/java/app/cash/paparazzi/Environment.kt b/paparazzi/paparazzi/src/main/java/app/cash/paparazzi/Environment.kt index 9155340fb..621b669e9 100644 --- a/paparazzi/paparazzi/src/main/java/app/cash/paparazzi/Environment.kt +++ b/paparazzi/paparazzi/src/main/java/app/cash/paparazzi/Environment.kt @@ -29,7 +29,9 @@ data class Environment( val assetsDir: String, val packageName: String, val compileSdkVersion: Int, - val resourcePackageNames: List + val resourcePackageNames: List, + val localResourceDirs: List, + val libraryResourceDirs: List ) { init { val platformDirPath = Path.of(platformDir) @@ -62,7 +64,9 @@ fun detectEnvironment(): Environment { assetsDir = appTestDir.resolve(configLines[4]).toString(), packageName = configLines[0], compileSdkVersion = configLines[2].toInt(), - resourcePackageNames = configLines[5].split(",") + resourcePackageNames = configLines[5].split(","), + localResourceDirs = configLines[6].split(","), + libraryResourceDirs = configLines[7].split(",") ) }