Skip to content

Commit

Permalink
Configure Environment with local and library resource paths
Browse files Browse the repository at this point in the history
  • Loading branch information
jrodbx committed May 12, 2023
1 parent 11bea27 commit 4ff82ec
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ class PaparazziPlugin : Plugin<Project> {
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

Expand All @@ -120,8 +120,8 @@ class PaparazziPlugin : Plugin<Project> {
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"))
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String>
Expand Down Expand Up @@ -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()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 2 additions & 0 deletions paparazzi/paparazzi/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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("")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ data class Environment(
val assetsDir: String,
val packageName: String,
val compileSdkVersion: Int,
val resourcePackageNames: List<String>
val resourcePackageNames: List<String>,
val localResourceDirs: List<String>,
val libraryResourceDirs: List<String>
) {
init {
val platformDirPath = Path.of(platformDir)
Expand Down Expand Up @@ -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(",")
)
}

Expand Down

0 comments on commit 4ff82ec

Please sign in to comment.