Files
rr3-apk/decompiled/sources/com/mbridge/msdk/dycreator/bus/SubscriberMethodFinder.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

93 lines
3.5 KiB
Java

package com.mbridge.msdk.dycreator.bus;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/* loaded from: classes4.dex */
class SubscriberMethodFinder {
private static final Map<String, List<SubscriberMethod>> a = new HashMap();
private static final Map<Class<?>, Class<?>> b = new ConcurrentHashMap();
public final List<SubscriberMethod> a(Class<?> cls, String str) {
List<SubscriberMethod> list;
ThreadMode threadMode;
String str2 = cls.getName() + '.' + str;
Map<String, List<SubscriberMethod>> map = a;
synchronized (map) {
list = map.get(str2);
}
if (list != null) {
return list;
}
ArrayList arrayList = new ArrayList();
HashSet hashSet = new HashSet();
StringBuilder sb = new StringBuilder();
for (Class<?> cls2 = cls; cls2 != null; cls2 = cls2.getSuperclass()) {
String name = cls2.getName();
if (name.startsWith("java.") || name.startsWith("javax.") || name.startsWith("android.")) {
break;
}
for (Method method : cls2.getDeclaredMethods()) {
String name2 = method.getName();
if (name2.startsWith(str)) {
Class<?>[] parameterTypes = method.getParameterTypes();
if (parameterTypes.length == 1) {
String substring = name2.substring(str.length());
if (substring.length() == 0) {
threadMode = ThreadMode.PostThread;
} else if (substring.equals("MainThread")) {
threadMode = ThreadMode.MainThread;
} else if (substring.equals("BackgroundThread")) {
threadMode = ThreadMode.BackgroundThread;
} else if (!substring.equals("Async")) {
if (!b.containsKey(cls2)) {
throw new EventBusException("Illegal onEvent method, check for typos: " + method);
}
} else {
threadMode = ThreadMode.Async;
}
Class<?> cls3 = parameterTypes[0];
sb.setLength(0);
sb.append(name2);
sb.append('>');
sb.append(cls3.getName());
if (hashSet.add(sb.toString())) {
arrayList.add(new SubscriberMethod(method, threadMode, cls3));
}
} else {
continue;
}
}
}
}
if (arrayList.isEmpty()) {
throw new EventBusException("Subscriber " + cls + " has no methods called " + str);
}
Map<String, List<SubscriberMethod>> map2 = a;
synchronized (map2) {
map2.put(str2, arrayList);
}
return arrayList;
}
public static void a() {
a.clear();
}
public static void a(Class<?> cls) {
if (!a.isEmpty()) {
throw new IllegalStateException("This method must be called before registering anything");
}
b.put(cls, cls);
}
public static void clearSkipMethodNameVerifications() {
b.clear();
}
}