mirror of
https://github.com/revanced/revanced-patcher.git
synced 2025-05-09 16:44:25 +02:00
refactor: improve ResourceData.kt
Old methods have been marked as deprecated, and will be removed in the future. - ResourceData.kt was made an Iterable<File>, and the forEach method was removed in favor of Kotlin's forEach function. (no modifications required) - The resolve method was deprecated in favor of a new operator getter function, which can be either called using get(path) or data[path]. This keeps backwards compatibility with the old get method. - The getXmlEditor method was deprecated in favor of the new xmlEditor variable, which is a XmlFileHolder which has an operator getter which acts like an array. This is syntactically better.
This commit is contained in:
parent
35749454ab
commit
f565c4f6a7
@ -9,13 +9,20 @@ import javax.xml.transform.TransformerFactory
|
||||
import javax.xml.transform.dom.DOMSource
|
||||
import javax.xml.transform.stream.StreamResult
|
||||
|
||||
class ResourceData(private val resourceCacheDirectory: File) : Data {
|
||||
private fun resolve(path: String) = resourceCacheDirectory.resolve(path)
|
||||
class ResourceData(private val resourceCacheDirectory: File) : Data, Iterable<File> {
|
||||
operator fun get(path: String) = resourceCacheDirectory.resolve(path)
|
||||
val xmlEditor = XmlFileHolder()
|
||||
override fun iterator() = resourceCacheDirectory.walkTopDown().iterator()
|
||||
|
||||
fun forEach(action: (File) -> Unit) = resourceCacheDirectory.walkTopDown().forEach(action)
|
||||
fun get(path: String) = resolve(path)
|
||||
inner class XmlFileHolder {
|
||||
operator fun get(path: String) = DomFileEditor(this@ResourceData[path])
|
||||
}
|
||||
|
||||
fun getXmlEditor(path: String) = DomFileEditor(resolve(path))
|
||||
@Deprecated("Use operator getter instead of resolve function", ReplaceWith("get(path)"))
|
||||
fun resolve(path: String) = get(path)
|
||||
|
||||
@Deprecated("Use operator getter on xmlEditor instead of getXmlEditor function", ReplaceWith("xmlEditor[path]"))
|
||||
fun getXmlEditor(path: String) = xmlEditor[path]
|
||||
}
|
||||
|
||||
class DomFileEditor internal constructor(private val domFile: File) : Closeable {
|
||||
|
@ -18,8 +18,8 @@ import org.w3c.dom.Element
|
||||
@Version("0.0.1")
|
||||
class ExampleResourcePatch : ResourcePatch() {
|
||||
override fun execute(data: ResourceData): PatchResult {
|
||||
data.getXmlEditor("AndroidManifest.xml").use { domFileEditor ->
|
||||
val element = domFileEditor // regular DomFileEditor
|
||||
data.xmlEditor["AndroidManifest.xml"].use { editor ->
|
||||
val element = editor // regular DomFileEditor
|
||||
.file
|
||||
.getElementsByTagName("application")
|
||||
.item(0) as Element
|
||||
|
Loading…
x
Reference in New Issue
Block a user