From 336c863c7fb5b6d9b073606129488e7b136de3ef Mon Sep 17 00:00:00 2001 From: Canny Date: Sun, 18 Sep 2022 19:42:11 +0300 Subject: [PATCH] feat: dynamically enable resource decoding --- .../manager/patcher/worker/PatcherWorker.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/revanced/manager/patcher/worker/PatcherWorker.kt b/app/src/main/java/app/revanced/manager/patcher/worker/PatcherWorker.kt index ef86f43..1359d34 100644 --- a/app/src/main/java/app/revanced/manager/patcher/worker/PatcherWorker.kt +++ b/app/src/main/java/app/revanced/manager/patcher/worker/PatcherWorker.kt @@ -107,7 +107,7 @@ class PatcherWorker(context: Context, parameters: WorkerParameters) : PatcherOptions( inputFile, cacheDirectory.absolutePath, - patchResources = false, + patchResources = checkForResourcePatch(patches), aaptPath = aaptPath, frameworkFolderLocation = frameworkPath, logger = object : Logger { @@ -173,4 +173,18 @@ class PatcherWorker(context: Context, parameters: WorkerParameters) : val (patches) = patches.value as? Resource.Success ?: return listOf() return patches.filter { patch -> ids.any { it == patch.patchName } } } + + private fun checkForResourcePatch(patches: List>>): Boolean { + patches.forEach { patch -> + patch.dependencies?.forEach { + if (ResourcePatch::class.java.isAssignableFrom(patch)) { // check for resource patches in normal patches + return true + } + if (ResourcePatch::class.java.isAssignableFrom(it.java)) { // do the same thing in dependency patches + return true + } + } + } + return false + } }