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) {