diff --git a/revanced-patch-annotation-processor/src/main/kotlin/app/revanced/patcher/patch/annotation/processor/PatchProcessor.kt b/revanced-patch-annotation-processor/src/main/kotlin/app/revanced/patcher/patch/annotation/processor/PatchProcessor.kt index a80c4e3..69220e1 100644 --- a/revanced-patch-annotation-processor/src/main/kotlin/app/revanced/patcher/patch/annotation/processor/PatchProcessor.kt +++ b/revanced-patch-annotation-processor/src/main/kotlin/app/revanced/patcher/patch/annotation/processor/PatchProcessor.kt @@ -81,14 +81,14 @@ class PatchProcessor( dependencies?.map { dependency -> dependency.toClassName() }, compatiblePackages?.map { val packageName = it.property("name") - val packageVersions = (it.property("versions") as List) - .joinToString(", ") { version -> "\"$version\"" } + val packageVersions = (it.property("versions") as List).ifEmpty { null } + ?.joinToString(", ") { version -> "\"$version\"" } CodeBlock.of( - "%T(%S, setOf(%L))", + "%T(%S, %L)", app.revanced.patcher.patch.Patch.CompatiblePackage::class, packageName, - packageVersions + packageVersions?.let { "setOf($packageVersions)" }, ) }, use, diff --git a/revanced-patch-annotation-processor/src/test/kotlin/app/revanced/patcher/patch/annotation/processor/TestPatchAnnotationProcessor.kt b/revanced-patch-annotation-processor/src/test/kotlin/app/revanced/patcher/patch/annotation/processor/TestPatchAnnotationProcessor.kt index 4321d64..82e6260 100644 --- a/revanced-patch-annotation-processor/src/test/kotlin/app/revanced/patcher/patch/annotation/processor/TestPatchAnnotationProcessor.kt +++ b/revanced-patch-annotation-processor/src/test/kotlin/app/revanced/patcher/patch/annotation/processor/TestPatchAnnotationProcessor.kt @@ -21,6 +21,16 @@ class TestPatchAnnotationProcessor { ).loadPatch("$SAMPLE_PACKAGE.processing.ProcessablePatchGenerated").name ) + @Test + fun generateNullProperties() = compile( + getSourceFile( + "null", "NullPropertiesPatch" + ) + ).loadPatch("$SAMPLE_PACKAGE.null.NullPropertiesPatchGenerated").let { + assertNull(it.description) // Because no description was provided. + assertNull(it.compatiblePackages!!.first().versions) // Because no versions were provided. + } + // endregion // region Dependencies diff --git a/revanced-patch-annotation-processor/src/test/resources/app/revanced/patcher/patch/annotation/processor/samples/null/NullPropertiesPatch.kt b/revanced-patch-annotation-processor/src/test/resources/app/revanced/patcher/patch/annotation/processor/samples/null/NullPropertiesPatch.kt new file mode 100644 index 0000000..a013dba --- /dev/null +++ b/revanced-patch-annotation-processor/src/test/resources/app/revanced/patcher/patch/annotation/processor/samples/null/NullPropertiesPatch.kt @@ -0,0 +1,14 @@ +package app.revanced.patcher.patch.annotation.processor.samples.`null` + +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.annotation.CompatiblePackage +import app.revanced.patcher.patch.annotation.Patch + +@Patch( + "Patch with null properties", + compatiblePackages = [CompatiblePackage("com.google.android.youtube")], +) +object NullPropertiesPatch : BytecodePatch() { + override fun execute(context: BytecodeContext) {} +} \ No newline at end of file