From 922f474b59bb28a095336a0c0947e94d8bc5edb2 Mon Sep 17 00:00:00 2001 From: d4rkk3y <43563783+d4rkk3y@users.noreply.github.com> Date: Fri, 25 Nov 2022 00:14:04 +0700 Subject: [PATCH] fix: apply correct patch if patch names are same (#535) --- .../revanced/manager/flutter/MainActivity.kt | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt index 0d87497a..ee84f070 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt @@ -11,6 +11,7 @@ import app.revanced.manager.flutter.utils.zip.ZipFile import app.revanced.manager.flutter.utils.zip.structures.ZipEntry import app.revanced.patcher.Patcher import app.revanced.patcher.PatcherOptions +import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages import app.revanced.patcher.extensions.PatchExtensions.patchName import app.revanced.patcher.logging.Logger import app.revanced.patcher.util.patch.PatchBundle @@ -98,21 +99,7 @@ class MainActivity : FlutterActivity() { val keyStoreFile = File(keyStoreFilePath) Thread { - try { - val patches = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) { - PatchBundle.Dex( - patchBundleFilePath, - DexClassLoader( - patchBundleFilePath, - cacheDirPath, - null, - javaClass.classLoader - ) - ).loadPatches().filter { patch -> selectedPatches.any { it == patch.patchName } } - } else { - TODO("VERSION.SDK_INT < CUPCAKE") - } - + try { handler.post { installerChannel.invokeMethod( "update", @@ -177,6 +164,22 @@ class MainActivity : FlutterActivity() { ) } + val patches = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) { + PatchBundle.Dex( + patchBundleFilePath, + DexClassLoader( + patchBundleFilePath, + cacheDirPath, + null, + javaClass.classLoader + ) + ).loadPatches().filter { patch -> + patch.compatiblePackages!!.any { it.name == patcher.context.packageMetadata.packageName } && + selectedPatches.any { it == patch.patchName } + } + } else { + TODO("VERSION.SDK_INT < CUPCAKE") + } patcher.addPatches(patches) patcher.executePatches().forEach { (patch, res) -> if (res.isSuccess) { @@ -308,6 +311,7 @@ class MainActivity : FlutterActivity() { } } - override fun trace(_msg: String) { /* unused */ } + override fun trace(_msg: String) { /* unused */ + } } }