build(Needs bump): Bump dependencies
This commit is contained in:
+17
-22
@@ -1,10 +1,9 @@
|
||||
package app.revanced.patches.all.misc.packagename
|
||||
|
||||
import app.revanced.patcher.data.ResourceContext
|
||||
import app.revanced.patcher.patch.PatchException
|
||||
import app.revanced.patcher.patch.ResourcePatch
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patcher.patch.options.types.StringPatchOption.Companion.stringPatchOption
|
||||
import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Patch(
|
||||
@@ -14,36 +13,32 @@ import org.w3c.dom.Element
|
||||
)
|
||||
@Suppress("unused")
|
||||
object ChangePackageNamePatch : ResourcePatch() {
|
||||
private const val DEFAULT_PACKAGE_NAME_OPTION = "Default"
|
||||
|
||||
private var packageName by stringPatchOption(
|
||||
key = "packageName",
|
||||
default = null,
|
||||
default = DEFAULT_PACKAGE_NAME_OPTION,
|
||||
values = mapOf("Default" to DEFAULT_PACKAGE_NAME_OPTION),
|
||||
title = "Package name",
|
||||
description = "The name of the package to rename the app to.",
|
||||
)
|
||||
required = true
|
||||
) {
|
||||
it == "Default" || it!!.matches(Regex("^[a-z]\\w*(\\.[a-z]\\w*)+\$"))
|
||||
}
|
||||
|
||||
override fun execute(context: ResourceContext) {
|
||||
val packageNameToUse = packageName ?: getDefaultPackageName(context)
|
||||
|
||||
val packageNameRegex = Regex("^[a-z]\\w*(\\.[a-z]\\w*)+\$")
|
||||
if (!packageNameToUse.matches(packageNameRegex))
|
||||
throw PatchException("Invalid package name")
|
||||
fun getOriginalPackageName(context: ResourceContext): String {
|
||||
context.xmlEditor["AndroidManifest.xml"].use { editor ->
|
||||
val manifest = editor.file.getElementsByTagName("manifest").item(0) as Element
|
||||
return manifest.getAttribute("package")
|
||||
}
|
||||
}
|
||||
|
||||
val originalPackageName = getOriginalPackageName(context)
|
||||
if (packageName == DEFAULT_PACKAGE_NAME_OPTION) packageName = "$originalPackageName.revanced"
|
||||
|
||||
context["AndroidManifest.xml"].apply {
|
||||
readText().replace(originalPackageName, packageNameToUse).let(::writeText)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getDefaultPackageName(context: ResourceContext): String {
|
||||
val originalPackageName = getOriginalPackageName(context)
|
||||
return "$originalPackageName.revanced"
|
||||
}
|
||||
|
||||
private fun getOriginalPackageName(context: ResourceContext): String {
|
||||
context.xmlEditor["AndroidManifest.xml"].use { editor ->
|
||||
val manifest = editor.file.getElementsByTagName("manifest").item(0) as Element
|
||||
return manifest.getAttribute("package")
|
||||
readText().replace(originalPackageName, packageName!!).let(::writeText)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user