fix: NewApi NoSuchMethodError

Signed-off-by: ACh Sulfate <dex@libart.so>
This commit is contained in:
ACh Sulfate
2023-02-11 18:25:25 +08:00
parent d5ba63e2bf
commit 089c340d61

View File

@@ -51,8 +51,7 @@ import java.lang.reflect.Method;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import kotlin.collections.CollectionsKt;
import java.util.stream.Collectors;
//强制使用默认字体 //强制使用默认字体
@FunctionHookEntry @FunctionHookEntry
@@ -148,9 +147,8 @@ public class DefaultFont extends CommonSwitchFunctionHook implements DexKitFinde
.callerMethodReturnType("void") .callerMethodReturnType("void")
.callerMethodParamTypes(new String[]{"", Initiator._ChatMessage().getName()}) .callerMethodParamTypes(new String[]{"", Initiator._ChatMessage().getName()})
.build()); .build());
List<DexMethodDescriptor> methods = resultMethods.keySet().stream() List<DexMethodDescriptor> methods = CollectionsKt.filter(resultMethods.keySet(),
.filter(s -> s.getParameterTypesSig().contains("BaseBubbleBuilder")) s -> s.getParameterTypesSig().contains("BaseBubbleBuilder"));
.collect(Collectors.toList());
if (methods.size() == 1) { if (methods.size() == 1) {
try { try {
DexMethodDescriptor descriptor = methods.get(0); DexMethodDescriptor descriptor = methods.get(0);
@@ -172,12 +170,9 @@ public class DefaultFont extends CommonSwitchFunctionHook implements DexKitFinde
.beInvokedMethodReturnType("boolean") .beInvokedMethodReturnType("boolean")
.build() .build()
); );
Set<DexMethodDescriptor> methodSet = resMap.keySet().stream() List<DexMethodDescriptor> methodSet = CollectionsKt.filter(resMap.keySet(),
.filter(s -> s.getParameterTypesSig().contains("BaseBubbleBuilder")) s -> s.getParameterTypesSig().contains("BaseBubbleBuilder"));
.collect(Collectors.toSet()); List<DexMethodDescriptor> res = CollectionsKt.filter(methods, s -> !methodSet.contains(s));
List<DexMethodDescriptor> res = methods.stream()
.filter(s -> !methodSet.contains(s))
.collect(Collectors.toList());
if (res.size() == 1) { if (res.size() == 1) {
try { try {
DexMethodDescriptor descriptor = res.get(0); DexMethodDescriptor descriptor = res.get(0);