package org.greenrobot.eventbus; import android.os.Looper; import android.util.Log; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutorService; import org.greenrobot.eventbus.meta.SubscriberInfoIndex; /* loaded from: classes2.dex */ public class EventBus { public static String q = "EventBus"; static volatile EventBus r; private static final EventBusBuilder s = new EventBusBuilder(); private static final Map, List>> t = new HashMap(); private final Map, CopyOnWriteArrayList> a; private final Map>> b; private final Map, Object> c; private final ThreadLocal d; private final HandlerPoster e; private final BackgroundPoster f; private final AsyncPoster g; private final SubscriberMethodFinder h; private final ExecutorService i; private final boolean j; private final boolean k; private final boolean l; private final boolean m; private final boolean n; private final boolean o; private final int p; /* renamed from: org.greenrobot.eventbus.EventBus$2, reason: invalid class name */ static /* synthetic */ class AnonymousClass2 { static final /* synthetic */ int[] a = new int[ThreadMode.values().length]; static { try { a[ThreadMode.POSTING.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { a[ThreadMode.MAIN.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } try { a[ThreadMode.BACKGROUND.ordinal()] = 3; } catch (NoSuchFieldError unused3) { } try { a[ThreadMode.ASYNC.ordinal()] = 4; } catch (NoSuchFieldError unused4) { } } } static final class PostingThreadState { final List a = new ArrayList(); boolean b; boolean c; Subscription d; Object e; boolean f; PostingThreadState() { } } public EventBus() { this(s); } private void a(Object obj, SubscriberMethod subscriberMethod) { Class cls = subscriberMethod.c; Subscription subscription = new Subscription(obj, subscriberMethod); CopyOnWriteArrayList copyOnWriteArrayList = this.a.get(cls); if (copyOnWriteArrayList == null) { copyOnWriteArrayList = new CopyOnWriteArrayList<>(); this.a.put(cls, copyOnWriteArrayList); } else if (copyOnWriteArrayList.contains(subscription)) { throw new EventBusException("Subscriber " + obj.getClass() + " already registered to event " + cls); } int size = copyOnWriteArrayList.size(); for (int i = 0; i <= size; i++) { if (i == size || subscriberMethod.d > copyOnWriteArrayList.get(i).b.d) { copyOnWriteArrayList.add(i, subscription); break; } } List> list = this.b.get(obj); if (list == null) { list = new ArrayList<>(); this.b.put(obj, list); } list.add(cls); if (subscriberMethod.e) { if (!this.o) { b(subscription, this.c.get(cls)); return; } for (Map.Entry, Object> entry : this.c.entrySet()) { if (cls.isAssignableFrom(entry.getKey())) { b(subscription, entry.getValue()); } } } } public static EventBus b() { if (r == null) { synchronized (EventBus.class) { if (r == null) { r = new EventBus(); } } } return r; } public void c(Object obj) { List a = this.h.a(obj.getClass()); synchronized (this) { Iterator it = a.iterator(); while (it.hasNext()) { a(obj, it.next()); } } } public synchronized void d(Object obj) { List> list = this.b.get(obj); if (list != null) { Iterator> it = list.iterator(); while (it.hasNext()) { a(obj, it.next()); } this.b.remove(obj); } else { Log.w(q, "Subscriber to unregister was not registered before: " + obj.getClass()); } } public String toString() { return "EventBus[indexCount=" + this.p + ", eventInheritance=" + this.o + "]"; } EventBus(EventBusBuilder eventBusBuilder) { this.d = new ThreadLocal(this) { // from class: org.greenrobot.eventbus.EventBus.1 /* JADX INFO: Access modifiers changed from: protected */ @Override // java.lang.ThreadLocal public PostingThreadState initialValue() { return new PostingThreadState(); } }; this.a = new HashMap(); this.b = new HashMap(); this.c = new ConcurrentHashMap(); this.e = new HandlerPoster(this, Looper.getMainLooper(), 10); this.f = new BackgroundPoster(this); this.g = new AsyncPoster(this); List list = eventBusBuilder.j; this.p = list != null ? list.size() : 0; this.h = new SubscriberMethodFinder(eventBusBuilder.j, eventBusBuilder.h, eventBusBuilder.g); this.k = eventBusBuilder.a; this.l = eventBusBuilder.b; this.m = eventBusBuilder.c; this.n = eventBusBuilder.d; this.j = eventBusBuilder.e; this.o = eventBusBuilder.f; this.i = eventBusBuilder.i; } private void b(Subscription subscription, Object obj) { if (obj != null) { a(subscription, obj, Looper.getMainLooper() == Looper.myLooper()); } } public void b(Object obj) { PostingThreadState postingThreadState = this.d.get(); List list = postingThreadState.a; list.add(obj); if (postingThreadState.b) { return; } postingThreadState.c = Looper.getMainLooper() == Looper.myLooper(); postingThreadState.b = true; if (!postingThreadState.f) { while (!list.isEmpty()) { try { a(list.remove(0), postingThreadState); } finally { postingThreadState.b = false; postingThreadState.c = false; } } return; } throw new EventBusException("Internal error. Abort state was not reset"); } public synchronized boolean a(Object obj) { return this.b.containsKey(obj); } private void a(Object obj, Class cls) { CopyOnWriteArrayList copyOnWriteArrayList = this.a.get(cls); if (copyOnWriteArrayList != null) { int size = copyOnWriteArrayList.size(); int i = 0; while (i < size) { Subscription subscription = copyOnWriteArrayList.get(i); if (subscription.a == obj) { subscription.c = false; copyOnWriteArrayList.remove(i); i--; size--; } i++; } } } private void a(Object obj, PostingThreadState postingThreadState) throws Error { boolean a; Class cls = obj.getClass(); if (this.o) { List> a2 = a(cls); int size = a2.size(); a = false; for (int i = 0; i < size; i++) { a |= a(obj, postingThreadState, a2.get(i)); } } else { a = a(obj, postingThreadState, cls); } if (a) { return; } if (this.l) { Log.d(q, "No subscribers registered for event " + cls); } if (!this.n || cls == NoSubscriberEvent.class || cls == SubscriberExceptionEvent.class) { return; } b(new NoSubscriberEvent(this, obj)); } private boolean a(Object obj, PostingThreadState postingThreadState, Class cls) { CopyOnWriteArrayList copyOnWriteArrayList; synchronized (this) { copyOnWriteArrayList = this.a.get(cls); } if (copyOnWriteArrayList == null || copyOnWriteArrayList.isEmpty()) { return false; } Iterator it = copyOnWriteArrayList.iterator(); while (it.hasNext()) { Subscription next = it.next(); postingThreadState.e = obj; postingThreadState.d = next; try { a(next, obj, postingThreadState.c); if (postingThreadState.f) { return true; } } finally { postingThreadState.e = null; postingThreadState.d = null; postingThreadState.f = false; } } return true; } private void a(Subscription subscription, Object obj, boolean z) { int i = AnonymousClass2.a[subscription.b.b.ordinal()]; if (i == 1) { a(subscription, obj); return; } if (i == 2) { if (z) { a(subscription, obj); return; } else { this.e.a(subscription, obj); return; } } if (i == 3) { if (z) { this.f.a(subscription, obj); return; } else { a(subscription, obj); return; } } if (i == 4) { this.g.a(subscription, obj); return; } throw new IllegalStateException("Unknown thread mode: " + subscription.b.b); } private static List> a(Class cls) { List> list; synchronized (t) { list = t.get(cls); if (list == null) { list = new ArrayList<>(); for (Class cls2 = cls; cls2 != null; cls2 = cls2.getSuperclass()) { list.add(cls2); a(list, cls2.getInterfaces()); } t.put(cls, list); } } return list; } static void a(List> list, Class[] clsArr) { for (Class cls : clsArr) { if (!list.contains(cls)) { list.add(cls); a(list, cls.getInterfaces()); } } } void a(PendingPost pendingPost) { Object obj = pendingPost.a; Subscription subscription = pendingPost.b; PendingPost.a(pendingPost); if (subscription.c) { a(subscription, obj); } } void a(Subscription subscription, Object obj) { try { subscription.b.a.invoke(subscription.a, obj); } catch (IllegalAccessException e) { throw new IllegalStateException("Unexpected exception", e); } catch (InvocationTargetException e2) { a(subscription, obj, e2.getCause()); } } private void a(Subscription subscription, Object obj, Throwable th) { if (obj instanceof SubscriberExceptionEvent) { if (this.k) { Log.e(q, "SubscriberExceptionEvent subscriber " + subscription.a.getClass() + " threw an exception", th); SubscriberExceptionEvent subscriberExceptionEvent = (SubscriberExceptionEvent) obj; Log.e(q, "Initial event " + subscriberExceptionEvent.b + " caused exception in " + subscriberExceptionEvent.c, subscriberExceptionEvent.a); return; } return; } if (!this.j) { if (this.k) { Log.e(q, "Could not dispatch event: " + obj.getClass() + " to subscribing class " + subscription.a.getClass(), th); } if (this.m) { b(new SubscriberExceptionEvent(this, th, obj, subscription.a)); return; } return; } throw new EventBusException("Invoking subscriber failed", th); } ExecutorService a() { return this.i; } }