mirror of
https://github.com/ReVanced/revanced-patcher.git
synced 2024-11-10 01:02:22 +01:00
feat: Add function to reset options to their default value
This commit is contained in:
parent
c7922e90d0
commit
e6de90d300
2 changed files with 16 additions and 5 deletions
|
@ -370,6 +370,7 @@ public abstract class app/revanced/patcher/patch/options/PatchOption {
|
|||
public final fun getValidator ()Lkotlin/jvm/functions/Function1;
|
||||
public final fun getValue ()Ljava/lang/Object;
|
||||
public final fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
|
||||
public fun reset ()V
|
||||
public final fun setValue (Ljava/lang/Object;)V
|
||||
public final fun setValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ abstract class PatchOption<T>(
|
|||
/**
|
||||
* The value of the [PatchOption].
|
||||
*/
|
||||
var value: T? = default
|
||||
var value: T?
|
||||
/**
|
||||
* Set the value of the [PatchOption].
|
||||
*
|
||||
|
@ -37,7 +37,7 @@ abstract class PatchOption<T>(
|
|||
assertRequiredButNotNull(value)
|
||||
assertValid(value)
|
||||
|
||||
field = value
|
||||
uncheckedValue = value
|
||||
}
|
||||
/**
|
||||
* Get the value of the [PatchOption].
|
||||
|
@ -48,12 +48,22 @@ abstract class PatchOption<T>(
|
|||
* @throws PatchOptionException.ValueValidationException If the value is invalid.
|
||||
*/
|
||||
get() {
|
||||
assertRequiredButNotNull(field)
|
||||
assertValid(field)
|
||||
assertRequiredButNotNull(uncheckedValue)
|
||||
assertValid(uncheckedValue)
|
||||
|
||||
return field
|
||||
return uncheckedValue
|
||||
}
|
||||
|
||||
// The unchecked value is used to allow setting the value without validation.
|
||||
private var uncheckedValue = default
|
||||
|
||||
/**
|
||||
* Reset the [PatchOption] to its default value.
|
||||
*/
|
||||
open fun reset() {
|
||||
uncheckedValue = default
|
||||
}
|
||||
|
||||
private fun assertRequiredButNotNull(value: T?) {
|
||||
if (required && value == null) throw PatchOptionException.ValueRequiredException(this)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue