mirror of
https://github.com/ReVanced/revanced-patcher.git
synced 2026-01-31 07:01:02 +00:00
feat: registry for patch options
BREAKING CHANGE: Patch options now use the PatchOptions registry class instead of an Iterable. This change requires modifications to existing patches using this API.
This commit is contained in:
@@ -2,29 +2,36 @@ package app.revanced.patcher.usage
|
||||
|
||||
import app.revanced.patcher.patch.PatchOption
|
||||
import app.revanced.patcher.usage.bytecode.ExampleBytecodePatch
|
||||
import kotlin.test.Test
|
||||
|
||||
fun patchOptionsUsage() {
|
||||
val options = ExampleBytecodePatch().options
|
||||
for (option in options) {
|
||||
when (option) {
|
||||
is PatchOption.StringOption -> {
|
||||
option.value = "Hello World"
|
||||
}
|
||||
is PatchOption.BooleanOption -> {
|
||||
option.value = false
|
||||
}
|
||||
is PatchOption.StringListOption -> {
|
||||
option.value = option.options.first()
|
||||
for (choice in option.options) {
|
||||
println(choice)
|
||||
internal class PatchOptionsUsage {
|
||||
@Test
|
||||
fun patchOptionsUsage() {
|
||||
val options = ExampleBytecodePatch().options
|
||||
for (option in options) {
|
||||
when (option) {
|
||||
is PatchOption.StringOption -> {
|
||||
option.value = "Hello World"
|
||||
}
|
||||
}
|
||||
is PatchOption.IntListOption -> {
|
||||
option.value = option.options.first()
|
||||
for (choice in option.options) {
|
||||
println(choice)
|
||||
is PatchOption.BooleanOption -> {
|
||||
option.value = false
|
||||
}
|
||||
is PatchOption.StringListOption -> {
|
||||
option.value = option.options.first()
|
||||
for (choice in option.options) {
|
||||
println(choice)
|
||||
}
|
||||
}
|
||||
is PatchOption.IntListOption -> {
|
||||
option.value = option.options.first()
|
||||
for (choice in option.options) {
|
||||
println(choice)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
println(options["key1"].value)
|
||||
options["key1"] = "Hello, world!"
|
||||
println(options["key1"].value)
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.PatchOption
|
||||
import app.revanced.patcher.patch.PatchOptions
|
||||
import app.revanced.patcher.patch.PatchResult
|
||||
import app.revanced.patcher.patch.PatchResultSuccess
|
||||
import app.revanced.patcher.patch.annotations.DependencyType
|
||||
@@ -164,18 +165,18 @@ class ExampleBytecodePatch : BytecodePatch(listOf(ExampleFingerprint)) {
|
||||
)
|
||||
}
|
||||
|
||||
override val options = listOf(
|
||||
override val options = PatchOptions(
|
||||
PatchOption.StringOption(
|
||||
"key", "default", "title", "description", true
|
||||
"key1", "default", "title", "description", true
|
||||
),
|
||||
PatchOption.BooleanOption(
|
||||
"key", true, "title", "description" // required defaults to false
|
||||
"key2", true, "title", "description" // required defaults to false
|
||||
),
|
||||
PatchOption.StringListOption(
|
||||
"key", "TEST", listOf("TEST", "TEST1", "TEST2"), "title", "description"
|
||||
"key3", "TEST", listOf("TEST", "TEST1", "TEST2"), "title", "description"
|
||||
),
|
||||
PatchOption.IntListOption(
|
||||
"key", 1, listOf(1, 2, 3), "title", "description"
|
||||
"key4", 1, listOf(1, 2, 3), "title", "description"
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user