Skip to content

Commit 02d2834

Browse files
committed
Cleanup
1 parent 06812b2 commit 02d2834

File tree

10 files changed

+195
-342
lines changed

10 files changed

+195
-342
lines changed

paparazzi-annotations/src/main/java/app/cash/paparazzi/annotations/PaparazziPreviewData.kt

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ public sealed interface PaparazziPreviewData {
2222
val preview: PreviewData,
2323
val composable: @Composable () -> Unit
2424
) : PaparazziPreviewData {
25-
override fun toString(): String = buildList {
26-
add(snapshotName)
27-
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
28-
}.joinToString(",")
25+
override fun toString(): String =
26+
buildList {
27+
add(snapshotName)
28+
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
29+
}.joinToString(",")
2930
}
3031

3132
public data class Provider<T>(
@@ -34,13 +35,15 @@ public sealed interface PaparazziPreviewData {
3435
val composable: @Composable (T) -> Unit,
3536
val previewParameter: PreviewParameterData<T>
3637
) : PaparazziPreviewData {
37-
override fun toString(): String = buildList {
38-
add(snapshotName)
39-
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
40-
add(previewParameter.toString())
41-
}.joinToString(",")
38+
override fun toString(): String =
39+
buildList {
40+
add(snapshotName)
41+
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
42+
add(previewParameter.toString())
43+
}.joinToString(",")
4244

43-
public fun withPreviewParameterIndex(index: Int): Provider<T> = copy(previewParameter = previewParameter.copy(index = index))
45+
public fun withPreviewParameterIndex(index: Int): Provider<T> =
46+
copy(previewParameter = previewParameter.copy(index = index))
4447
}
4548

4649
public data object Empty : PaparazziPreviewData
@@ -50,10 +53,11 @@ public sealed interface PaparazziPreviewData {
5053
val preview: PreviewData,
5154
val message: String
5255
) : PaparazziPreviewData {
53-
override fun toString(): String = buildList {
54-
add(snapshotName)
55-
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
56-
}.joinToString(",")
56+
override fun toString(): String =
57+
buildList {
58+
add(snapshotName)
59+
preview.toString().takeIf { it.isNotEmpty() }?.let(::add)
60+
}.joinToString(",")
5761
}
5862
}
5963

@@ -66,22 +70,23 @@ public data class PreviewData(
6670
val locale: String? = null,
6771
val backgroundColor: String? = null
6872
) {
69-
override fun toString(): String = buildList {
70-
fontScale?.fontScale()?.displayName()?.let(::add)
71-
uiMode?.lightDarkName()?.let(::add)
72-
uiMode?.uiModeName()?.let(::add)
73-
device?.let {
74-
if (it != PaparazziPreviewDefaults.DEVICE_ID) {
75-
add(it.substringAfterLast(":"))
73+
override fun toString(): String =
74+
buildList {
75+
fontScale?.fontScale()?.displayName()?.let(::add)
76+
uiMode?.lightDarkName()?.let(::add)
77+
uiMode?.uiModeName()?.let(::add)
78+
device?.let {
79+
if (it != PaparazziPreviewDefaults.DEVICE_ID) {
80+
add(it.substringAfterLast(":"))
81+
}
7682
}
77-
}
78-
widthDp?.let { add("w_$it") }
79-
heightDp?.let { add("h_$it") }
80-
locale?.let(::add)
81-
backgroundColor?.let { add("bg_$it") }
82-
}.takeIf { it.isNotEmpty() }
83-
?.joinToString(",")
84-
?: ""
83+
widthDp?.let { add("w_$it") }
84+
heightDp?.let { add("h_$it") }
85+
locale?.let(::add)
86+
backgroundColor?.let { add("bg_$it") }
87+
}.takeIf { it.isNotEmpty() }
88+
?.joinToString(",")
89+
?: ""
8590
}
8691

8792
public data class PreviewParameterData<T>(
@@ -107,24 +112,27 @@ internal enum class FontScale(var value: Float?) {
107112
LARGEST(1.30f),
108113
CUSTOM(null);
109114

110-
fun displayName() = when (this) {
111-
CUSTOM -> "fs_$value"
112-
else -> name
113-
}
115+
fun displayName() =
116+
when (this) {
117+
CUSTOM -> "fs_$value"
118+
else -> name
119+
}
114120
}
115121

116-
internal fun Int.lightDarkName() = when (this and Configuration.UI_MODE_NIGHT_MASK) {
117-
Configuration.UI_MODE_NIGHT_NO -> "Light"
118-
Configuration.UI_MODE_NIGHT_YES -> "Dark"
119-
else -> null
120-
}
122+
internal fun Int.lightDarkName() =
123+
when (this and Configuration.UI_MODE_NIGHT_MASK) {
124+
Configuration.UI_MODE_NIGHT_NO -> "Light"
125+
Configuration.UI_MODE_NIGHT_YES -> "Dark"
126+
else -> null
127+
}
121128

122-
internal fun Int.uiModeName() = when (this and Configuration.UI_MODE_TYPE_MASK) {
123-
Configuration.UI_MODE_TYPE_NORMAL -> "Normal"
124-
Configuration.UI_MODE_TYPE_CAR -> "Car"
125-
Configuration.UI_MODE_TYPE_DESK -> "Desk"
126-
Configuration.UI_MODE_TYPE_APPLIANCE -> "Appliance"
127-
Configuration.UI_MODE_TYPE_WATCH -> "Watch"
128-
Configuration.UI_MODE_TYPE_VR_HEADSET -> "VR_Headset"
129-
else -> null
130-
}
129+
internal fun Int.uiModeName() =
130+
when (this and Configuration.UI_MODE_TYPE_MASK) {
131+
Configuration.UI_MODE_TYPE_NORMAL -> "Normal"
132+
Configuration.UI_MODE_TYPE_CAR -> "Car"
133+
Configuration.UI_MODE_TYPE_DESK -> "Desk"
134+
Configuration.UI_MODE_TYPE_APPLIANCE -> "Appliance"
135+
Configuration.UI_MODE_TYPE_WATCH -> "Watch"
136+
Configuration.UI_MODE_TYPE_VR_HEADSET -> "VR_Headset"
137+
else -> null
138+
}

paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/PaparazziPlugin.kt

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,6 @@ import com.android.build.api.variant.LibraryAndroidComponentsExtension
3030
import com.android.build.gradle.BaseExtension
3131
import com.google.devtools.ksp.gradle.KspExtension
3232
import com.google.devtools.ksp.gradle.KspGradleSubplugin
33-
import com.android.build.gradle.LibraryExtension
34-
import com.android.build.gradle.TestedExtension
35-
import com.android.build.gradle.api.BaseVariant
36-
import com.android.build.gradle.internal.api.TestedVariant
37-
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
38-
import com.android.build.gradle.internal.dsl.DynamicFeatureExtension
39-
import com.android.build.gradle.internal.publishing.AndroidArtifacts.ArtifactType
40-
import com.google.devtools.ksp.gradle.KspExtension
41-
import com.google.devtools.ksp.gradle.KspGradleSubplugin
4233
import org.gradle.api.DefaultTask
4334
import org.gradle.api.Plugin
4435
import org.gradle.api.Project
@@ -405,37 +396,6 @@ public class PaparazziPlugin @Inject constructor(
405396
configurations.getByName("testImplementation").dependencies.add(dependency)
406397
}
407398

408-
private fun Project.addAnnotationsDependency() {
409-
val dependency = if (isInternal()) {
410-
dependencies.project(mapOf("path" to ":paparazzi-annotations"))
411-
} else {
412-
dependencies.create("app.cash.paparazzi:paparazzi-annotations:$VERSION")
413-
}
414-
configurations.getByName("implementation").dependencies.add(dependency)
415-
}
416-
417-
private fun Project.addProcessorDependency() {
418-
val dependency = if (isInternal()) {
419-
dependencies.project(mapOf("path" to ":paparazzi-preview-processor"))
420-
} else {
421-
dependencies.create("app.cash.paparazzi:paparazzi-preview-processor:$VERSION")
422-
}
423-
if (project.plugins.hasPlugin("org.jetbrains.kotlin.multiplatform")) {
424-
configurations.getByName("kspCommonMainMetadata").dependencies.add(dependency)
425-
} else {
426-
configurations.getByName("ksp").dependencies.add(dependency)
427-
}
428-
}
429-
430-
private fun Project.addPreviewTestDependency() {
431-
val dependency = if (isInternal()) {
432-
dependencies.project(mapOf("path" to ":paparazzi-preview-test-junit"))
433-
} else {
434-
dependencies.create("app.cash.paparazzi:paparazzi-preview-test-junit:$VERSION")
435-
}
436-
configurations.getByName("testImplementation").dependencies.add(dependency)
437-
}
438-
439399
private fun Project.isInternal(): Boolean = providers.gradleProperty("app.cash.paparazzi.internal").orNull == "true"
440400

441401
private fun BaseExtension.packageName(): String = namespace ?: ""

paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/utils/PreviewUtils.kt

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package app.cash.paparazzi.gradle.utils
22

3-
import app.cash.paparazzi.gradle.PREVIEW_TEST_SOURCE
43
import com.android.build.api.variant.AndroidComponentsExtension
54
import com.android.build.api.variant.HasUnitTest
65
import org.gradle.api.Project
@@ -67,54 +66,10 @@ internal fun Project.registerGeneratePreviewTask(extension: AndroidComponentsExt
6766
task.outputs.dir(previewTestDir)
6867
task.outputs.file("$previewTestDir${File.separator}$PREVIEW_TEST_FILE")
6968
task.outputs.cacheIf { true }
70-
71-
// test compilation depends on the task
72-
project.tasks.named {
73-
it == "compile${testVariantSlug}Kotlin" ||
74-
it == "generate${testVariantSlug}LintModel" ||
75-
it == "lintAnalyze$testVariantSlug"
76-
}.configureEach { it.dependsOn(taskProvider) }
77-
// run task before processing symbols
78-
project.tasks.named { it == "ksp${testVariantSlug}Kotlin" }
79-
.configureEach { it.mustRunAfter(taskProvider) }
80-
81-
gradle.taskGraph.whenReady {
82-
taskProvider.configure { task ->
83-
// Test variant appends .test to the namespace
84-
val namespace = testVariant.namespace.get().replace(".test$".toRegex(), "")
85-
val namespaceDir = namespace.replace(".", File.separator)
86-
val previewTestDir = "$testSourceDir${File.separator}$namespaceDir"
87-
88-
// Optional input if KSP doesn't output preview annotation file
89-
task.inputs
90-
.file(
91-
"$projectDir${File.separator}$KSP_SOURCE_DIR${File.separator}${buildType}${File.separator}kotlin${File.separator}$namespaceDir${File.separator}$PREVIEW_DATA_FILE"
92-
)
93-
.optional()
94-
.skipWhenEmpty()
95-
96-
task.outputs.dir(previewTestDir)
97-
task.outputs.file("$previewTestDir${File.separator}$PREVIEW_TEST_FILE")
98-
task.outputs.cacheIf { true }
99-
100-
// test compilation depends on the task
101-
tasks.findByName("compile${buildTypeCap}UnitTestKotlin")?.dependsOn(taskName)
102-
// run task before processing symbols
103-
tasks.findByName("ksp${buildTypeCap}UnitTestKotlin")?.mustRunAfter(taskName)
104-
105-
task.doLast {
106-
File(previewTestDir).mkdirs()
107-
File(previewTestDir, PREVIEW_TEST_FILE).writeText(
108-
buildString {
109-
appendLine("package $namespace")
110-
append(PREVIEW_TEST_SOURCE)
111-
}
112-
)
113-
}
11469
}
11570
}
11671
}
11772
}
11873

119-
private fun String.capitalize() =
120-
replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.ROOT) else it.toString() }
74+
private fun String.capitalize() =
75+
replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.ROOT) else it.toString() }

paparazzi-gradle-plugin/src/test/java/app/cash/paparazzi/gradle/PaparazziPluginTest.kt

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1459,59 +1459,6 @@ class PaparazziPluginTest {
14591459
.runFixture(fixtureRoot) { build() }
14601460
}
14611461

1462-
@Test
1463-
fun previewAnnotationEmptyTestSuite() {
1464-
val fixtureRoot = File("src/test/projects/preview-annotation-empty-test-suite")
1465-
1466-
val result = gradleRunner
1467-
.withArguments("verifyPaparazziDebug", "--stacktrace")
1468-
.runFixture(fixtureRoot) { build() }
1469-
1470-
assertThat(result.task(":paparazziGeneratePreviewDebugUnitTestKotlin")).isNotNull()
1471-
1472-
val generatedPreviewsDir = File(fixtureRoot, "build/generated/ksp/debug/kotlin/app/cash/paparazzi/plugin/test/")
1473-
assertThat(
1474-
generatedPreviewsDir.listFiles()?.any {
1475-
it.name == "PaparazziPreviews.kt"
1476-
}
1477-
).isTrue()
1478-
1479-
val generatedPreviewTestDir = File(fixtureRoot, "build/generated/source/paparazzi/debugUnitTest/app/cash/paparazzi/plugin/test/")
1480-
assertThat(
1481-
generatedPreviewTestDir.listFiles()?.any {
1482-
it.name == "PreviewTests.kt"
1483-
}
1484-
).isTrue()
1485-
}
1486-
1487-
@Test
1488-
fun previewAnnotationErrorPrivatePreview() {
1489-
val fixtureRoot = File("src/test/projects/preview-annotation-private-preview")
1490-
1491-
val result = gradleRunner
1492-
.withArguments("verifyPaparazziDebug", "--stacktrace")
1493-
.forwardOutput()
1494-
.runFixture(fixtureRoot) { buildAndFail() }
1495-
1496-
assertThat(result.task(":testDebugUnitTest")?.outcome).isEqualTo(TaskOutcome.FAILED)
1497-
assertThat(result.output).contains("IllegalStateException at PreviewTests.kt")
1498-
}
1499-
1500-
@Test
1501-
fun previewAnnotationDslDisable() {
1502-
val fixtureRoot = File("src/test/projects/preview-annotation-dsl-disable")
1503-
1504-
val result = gradleRunner
1505-
.forwardOutput()
1506-
.withArguments("verifyPaparazziDebug", "--stacktrace")
1507-
.runFixture(fixtureRoot) { build() }
1508-
1509-
assertThat(result.task(":paparazziGeneratePreviewDebugUnitTestKotlin")?.outcome).isEqualTo(TaskOutcome.SKIPPED)
1510-
1511-
val generatedPreviewTestDir = File(fixtureRoot, "build/generated/source/paparazzi/debugUnitTest/app/cash/paparazzi/plugin/test/")
1512-
assertThat(generatedPreviewTestDir.exists()).isFalse()
1513-
}
1514-
15151462
@Test
15161463
fun previewAnnotationEmptyTestSuite() {
15171464
val fixtureRoot = File("src/test/projects/preview-annotation-empty-test-suite")

0 commit comments

Comments
 (0)