commit bfe367efd0405408442f34f171497e3044e3220c
parent 98d0f987145f022f92cd1f637c0dff403bf7e3ff
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Sat,  2 Dec 2023 23:02:05 +0100

fix(mapper): content callback class

Diffstat:
Mmapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/CallbackMapper.kt | 7++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/CallbackMapper.kt b/mapper/src/main/kotlin/me/rhunk/snapenhance/mapper/impl/CallbackMapper.kt @@ -4,6 +4,9 @@ import me.rhunk.snapenhance.mapper.AbstractClassMapper import me.rhunk.snapenhance.mapper.ext.getClassName import me.rhunk.snapenhance.mapper.ext.getSuperClassName import me.rhunk.snapenhance.mapper.ext.isFinal +import org.jf.dexlib2.Opcode +import org.jf.dexlib2.iface.instruction.formats.Instruction21t +import org.jf.dexlib2.iface.instruction.formats.Instruction22t class CallbackMapper : AbstractClassMapper() { init { @@ -18,7 +21,9 @@ class CallbackMapper : AbstractClassMapper() { if (clazz.getClassName().endsWith("\$CppProxy")) return@filter false // ignore dummy ContentCallback class - if (superclassName.endsWith("ContentCallback") && !clazz.methods.first { it.name == "<init>" }.parameterTypes.contains("Z")) + if (superclassName.endsWith("ContentCallback") && clazz.methods.none { it.name == "handleContentResult" && it.implementation?.instructions?.firstOrNull { instruction -> + instruction is Instruction22t || instruction is Instruction21t + } != null}) return@filter false val superClass = getClass(clazz.superclass) ?: return@filter false