From 7f2ebb9111d2b96236702218474da43e88533e7e Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Mon, 27 Oct 2025 13:18:09 +0800 Subject: [PATCH] Fix proxy bug --- .../com/fongmi/android/tv/api/loader/JarLoader.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java index c0475a517..e5d0bcde2 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java @@ -17,6 +17,7 @@ import java.lang.reflect.Method; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import dalvik.system.DexClassLoader; @@ -141,17 +142,13 @@ public class JarLoader { } public Object[] proxyInvoke(Map params) { + if (recent == null) return tryOthers(params); Object[] result = proxyInvoke(methods.get(recent), params); return result != null ? result : tryOthers(params); } - private Object[] tryOthers(Map params) { - for (Map.Entry entry : methods.entrySet()) { - if (entry.getKey().equals(recent)) continue; - Object[] result = proxyInvoke(entry.getValue(), params); - if (result != null) return result; - } - return null; + private Object[] tryOthers(Map p) { + return methods.entrySet().stream().filter(e -> !e.getKey().equals(recent)).map(e -> proxyInvoke(e.getValue(), p)).filter(Objects::nonNull).findFirst().orElse(null); } private Object[] proxyInvoke(Method method, Map params) {