feat: sort patches in lexicographical order

Closes #125
This commit is contained in:
oSumAtrIX 2022-12-02 03:30:35 +01:00
parent b6dcd88495
commit a306561b55
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -3,6 +3,7 @@
package app.revanced.patcher.util.patch package app.revanced.patcher.util.patch
import app.revanced.patcher.data.Context import app.revanced.patcher.data.Context
import app.revanced.patcher.extensions.PatchExtensions.patchName
import app.revanced.patcher.patch.Patch import app.revanced.patcher.patch.Patch
import org.jf.dexlib2.DexFileFactory import org.jf.dexlib2.DexFileFactory
import java.io.File import java.io.File
@ -16,12 +17,12 @@ import java.util.jar.JarFile
*/ */
sealed class PatchBundle(path: String) : File(path) { sealed class PatchBundle(path: String) : File(path) {
internal fun loadPatches(classLoader: ClassLoader, classNames: Iterator<String>) = buildList { internal fun loadPatches(classLoader: ClassLoader, classNames: Iterator<String>) = buildList {
for (className in classNames) { classNames.forEach { className ->
val clazz = classLoader.loadClass(className) val clazz = classLoader.loadClass(className)
if (!clazz.isAnnotationPresent(app.revanced.patcher.patch.annotations.Patch::class.java)) continue if (!clazz.isAnnotationPresent(app.revanced.patcher.patch.annotations.Patch::class.java)) return@forEach
@Suppress("UNCHECKED_CAST") this.add(clazz as Class<out Patch<Context>>) @Suppress("UNCHECKED_CAST") this.add(clazz as Class<out Patch<Context>>)
} }
} }.sortedBy { it.patchName }
/** /**
* A patch bundle of type [Jar]. * A patch bundle of type [Jar].