.class public Lorg/greenrobot/eventbus/EventBus; .super Ljava/lang/Object; .source "EventBus.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lorg/greenrobot/eventbus/EventBus$PostCallback;, Lorg/greenrobot/eventbus/EventBus$PostingThreadState; } .end annotation # static fields .field private static final DEFAULT_BUILDER:Lorg/greenrobot/eventbus/EventBusBuilder; .field public static TAG:Ljava/lang/String; = "EventBus" .field static volatile defaultInstance:Lorg/greenrobot/eventbus/EventBus; .field private static final eventTypesCache:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Class<", "*>;", "Ljava/util/List<", "Ljava/lang/Class<", "*>;>;>;" } .end annotation .end field # instance fields .field private final asyncPoster:Lorg/greenrobot/eventbus/AsyncPoster; .field private final backgroundPoster:Lorg/greenrobot/eventbus/BackgroundPoster; .field private final currentPostingThreadState:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "Lorg/greenrobot/eventbus/EventBus$PostingThreadState;", ">;" } .end annotation .end field .field private final eventInheritance:Z .field private final executorService:Ljava/util/concurrent/ExecutorService; .field private final indexCount:I .field private final logNoSubscriberMessages:Z .field private final logSubscriberExceptions:Z .field private final mainThreadPoster:Lorg/greenrobot/eventbus/HandlerPoster; .field private final sendNoSubscriberEvent:Z .field private final sendSubscriberExceptionEvent:Z .field private final stickyEvents:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Class<", "*>;", "Ljava/lang/Object;", ">;" } .end annotation .end field .field private final subscriberMethodFinder:Lorg/greenrobot/eventbus/SubscriberMethodFinder; .field private final subscriptionsByEventType:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Class<", "*>;", "Ljava/util/concurrent/CopyOnWriteArrayList<", "Lorg/greenrobot/eventbus/Subscription;", ">;>;" } .end annotation .end field .field private final throwSubscriberException:Z .field private final typesBySubscriber:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/Object;", "Ljava/util/List<", "Ljava/lang/Class<", "*>;>;>;" } .end annotation .end field # direct methods .method static constructor ()V .registers 1 .line 48 new-instance v0, Lorg/greenrobot/eventbus/EventBusBuilder; invoke-direct {v0}, Lorg/greenrobot/eventbus/EventBusBuilder;->()V sput-object v0, Lorg/greenrobot/eventbus/EventBus;->DEFAULT_BUILDER:Lorg/greenrobot/eventbus/EventBusBuilder; .line 49 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lorg/greenrobot/eventbus/EventBus;->eventTypesCache:Ljava/util/Map; return-void .end method .method public constructor ()V .registers 2 .line 104 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->DEFAULT_BUILDER:Lorg/greenrobot/eventbus/EventBusBuilder; invoke-direct {p0, v0}, Lorg/greenrobot/eventbus/EventBus;->(Lorg/greenrobot/eventbus/EventBusBuilder;)V return-void .end method .method constructor (Lorg/greenrobot/eventbus/EventBusBuilder;)V .registers 6 .line 107 invoke-direct {p0}, Ljava/lang/Object;->()V .line 55 new-instance v0, Lorg/greenrobot/eventbus/EventBus$1; invoke-direct {v0, p0}, Lorg/greenrobot/eventbus/EventBus$1;->(Lorg/greenrobot/eventbus/EventBus;)V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->currentPostingThreadState:Ljava/lang/ThreadLocal; .line 108 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; .line 109 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; .line 110 new-instance v0, Ljava/util/concurrent/ConcurrentHashMap; invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;->()V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; .line 111 new-instance v0, Lorg/greenrobot/eventbus/HandlerPoster; invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; move-result-object v1 const/16 v2, 0xa invoke-direct {v0, p0, v1, v2}, Lorg/greenrobot/eventbus/HandlerPoster;->(Lorg/greenrobot/eventbus/EventBus;Landroid/os/Looper;I)V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->mainThreadPoster:Lorg/greenrobot/eventbus/HandlerPoster; .line 112 new-instance v0, Lorg/greenrobot/eventbus/BackgroundPoster; invoke-direct {v0, p0}, Lorg/greenrobot/eventbus/BackgroundPoster;->(Lorg/greenrobot/eventbus/EventBus;)V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->backgroundPoster:Lorg/greenrobot/eventbus/BackgroundPoster; .line 113 new-instance v0, Lorg/greenrobot/eventbus/AsyncPoster; invoke-direct {v0, p0}, Lorg/greenrobot/eventbus/AsyncPoster;->(Lorg/greenrobot/eventbus/EventBus;)V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->asyncPoster:Lorg/greenrobot/eventbus/AsyncPoster; .line 114 iget-object v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->subscriberInfoIndexes:Ljava/util/List; if-eqz v0, :cond_45 iget-object v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->subscriberInfoIndexes:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 goto :goto_46 :cond_45 const/4 v0, 0x0 :goto_46 iput v0, p0, Lorg/greenrobot/eventbus/EventBus;->indexCount:I .line 115 new-instance v0, Lorg/greenrobot/eventbus/SubscriberMethodFinder; iget-object v1, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->subscriberInfoIndexes:Ljava/util/List; iget-boolean v2, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->strictMethodVerification:Z iget-boolean v3, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->ignoreGeneratedIndex:Z invoke-direct {v0, v1, v2, v3}, Lorg/greenrobot/eventbus/SubscriberMethodFinder;->(Ljava/util/List;ZZ)V iput-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->subscriberMethodFinder:Lorg/greenrobot/eventbus/SubscriberMethodFinder; .line 117 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->logSubscriberExceptions:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->logSubscriberExceptions:Z .line 118 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->logNoSubscriberMessages:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->logNoSubscriberMessages:Z .line 119 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->sendSubscriberExceptionEvent:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->sendSubscriberExceptionEvent:Z .line 120 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->sendNoSubscriberEvent:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->sendNoSubscriberEvent:Z .line 121 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->throwSubscriberException:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->throwSubscriberException:Z .line 122 iget-boolean v0, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->eventInheritance:Z iput-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->eventInheritance:Z .line 123 iget-object p1, p1, Lorg/greenrobot/eventbus/EventBusBuilder;->executorService:Ljava/util/concurrent/ExecutorService; iput-object p1, p0, Lorg/greenrobot/eventbus/EventBus;->executorService:Ljava/util/concurrent/ExecutorService; return-void .end method .method static addInterfaces(Ljava/util/List;[Ljava/lang/Class;)V .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Ljava/lang/Class<", "*>;>;[", "Ljava/lang/Class<", "*>;)V" } .end annotation .line 460 array-length v0, p1 const/4 v1, 0x0 :goto_2 if-ge v1, v0, :cond_19 aget-object v2, p1, v1 .line 461 invoke-interface {p0, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_16 .line 462 invoke-interface {p0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 463 invoke-virtual {v2}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class; move-result-object v2 invoke-static {p0, v2}, Lorg/greenrobot/eventbus/EventBus;->addInterfaces(Ljava/util/List;[Ljava/lang/Class;)V :cond_16 add-int/lit8 v1, v1, 0x1 goto :goto_2 :cond_19 return-void .end method .method public static builder()Lorg/greenrobot/eventbus/EventBusBuilder; .registers 1 .line 90 new-instance v0, Lorg/greenrobot/eventbus/EventBusBuilder; invoke-direct {v0}, Lorg/greenrobot/eventbus/EventBusBuilder;->()V return-object v0 .end method .method private checkPostStickyEventToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V .registers 5 if-eqz p2, :cond_12 .line 199 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; move-result-object v0 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper; move-result-object v1 if-ne v0, v1, :cond_e const/4 v0, 0x1 goto :goto_f :cond_e const/4 v0, 0x0 :goto_f invoke-direct {p0, p1, p2, v0}, Lorg/greenrobot/eventbus/EventBus;->postToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;Z)V :cond_12 return-void .end method .method public static clearCaches()V .registers 1 .line 95 invoke-static {}, Lorg/greenrobot/eventbus/SubscriberMethodFinder;->clearCaches()V .line 96 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->eventTypesCache:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->clear()V return-void .end method .method public static getDefault()Lorg/greenrobot/eventbus/EventBus; .registers 2 .line 79 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->defaultInstance:Lorg/greenrobot/eventbus/EventBus; if-nez v0, :cond_17 .line 80 const-class v0, Lorg/greenrobot/eventbus/EventBus; monitor-enter v0 .line 81 :try_start_7 sget-object v1, Lorg/greenrobot/eventbus/EventBus;->defaultInstance:Lorg/greenrobot/eventbus/EventBus; if-nez v1, :cond_12 .line 82 new-instance v1, Lorg/greenrobot/eventbus/EventBus; invoke-direct {v1}, Lorg/greenrobot/eventbus/EventBus;->()V sput-object v1, Lorg/greenrobot/eventbus/EventBus;->defaultInstance:Lorg/greenrobot/eventbus/EventBus; .line 84 :cond_12 monitor-exit v0 goto :goto_17 :catchall_14 move-exception v1 monitor-exit v0 :try_end_16 .catchall {:try_start_7 .. :try_end_16} :catchall_14 throw v1 .line 86 :cond_17 :goto_17 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->defaultInstance:Lorg/greenrobot/eventbus/EventBus; return-object v0 .end method .method private handleSubscriberException(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;Ljava/lang/Throwable;)V .registers 7 .line 494 instance-of v0, p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent; if-eqz v0, :cond_4f .line 495 iget-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->logSubscriberExceptions:Z if-eqz v0, :cond_8d .line 497 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->TAG:Ljava/lang/String; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "SubscriberExceptionEvent subscriber " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriber:Ljava/lang/Object; invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 const-string v1, " threw an exception" invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1, p3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I .line 499 check-cast p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent; .line 500 sget-object p1, Lorg/greenrobot/eventbus/EventBus;->TAG:Ljava/lang/String; new-instance p3, Ljava/lang/StringBuilder; const-string v0, "Initial event " invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v0, p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent;->causingEvent:Ljava/lang/Object; invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p3 const-string v0, " caused exception in " invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p3 iget-object v0, p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent;->causingSubscriber:Ljava/lang/Object; invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p3 invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p3 iget-object p2, p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent;->throwable:Ljava/lang/Throwable; invoke-static {p1, p3, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I goto :goto_8d .line 504 :cond_4f iget-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->throwSubscriberException:Z if-nez v0, :cond_8e .line 507 iget-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->logSubscriberExceptions:Z if-eqz v0, :cond_7f .line 508 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->TAG:Ljava/lang/String; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Could not dispatch event: " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 const-string v2, " to subscribing class " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 iget-object v2, p1, Lorg/greenrobot/eventbus/Subscription;->subscriber:Ljava/lang/Object; .line 509 invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 508 invoke-static {v0, v1, p3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I .line 511 :cond_7f iget-boolean v0, p0, Lorg/greenrobot/eventbus/EventBus;->sendSubscriberExceptionEvent:Z if-eqz v0, :cond_8d .line 512 new-instance v0, Lorg/greenrobot/eventbus/SubscriberExceptionEvent; iget-object p1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriber:Ljava/lang/Object; invoke-direct {v0, p0, p3, p2, p1}, Lorg/greenrobot/eventbus/SubscriberExceptionEvent;->(Lorg/greenrobot/eventbus/EventBus;Ljava/lang/Throwable;Ljava/lang/Object;Ljava/lang/Object;)V .line 514 invoke-virtual {p0, v0}, Lorg/greenrobot/eventbus/EventBus;->post(Ljava/lang/Object;)V :cond_8d :goto_8d return-void .line 505 :cond_8e new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string p2, "Invoking subscriber failed" invoke-direct {p1, p2, p3}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p1 .end method .method private static lookupAllEventTypes(Ljava/lang/Class;)Ljava/util/List; .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)", "Ljava/util/List<", "Ljava/lang/Class<", "*>;>;" } .end annotation .line 442 sget-object v0, Lorg/greenrobot/eventbus/EventBus;->eventTypesCache:Ljava/util/Map; monitor-enter v0 .line 443 :try_start_3 invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/List; if-nez v1, :cond_27 .line 445 new-instance v1, Ljava/util/ArrayList; invoke-direct {v1}, Ljava/util/ArrayList;->()V move-object v2, p0 :goto_11 if-eqz v2, :cond_22 .line 448 invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 449 invoke-virtual {v2}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class; move-result-object v3 invoke-static {v1, v3}, Lorg/greenrobot/eventbus/EventBus;->addInterfaces(Ljava/util/List;[Ljava/lang/Class;)V .line 450 invoke-virtual {v2}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; move-result-object v2 goto :goto_11 .line 452 :cond_22 sget-object v2, Lorg/greenrobot/eventbus/EventBus;->eventTypesCache:Ljava/util/Map; invoke-interface {v2, p0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 454 :cond_27 monitor-exit v0 return-object v1 :catchall_29 move-exception p0 .line 455 monitor-exit v0 :try_end_2b .catchall {:try_start_3 .. :try_end_2b} :catchall_29 throw p0 .end method .method private postSingleEvent(Ljava/lang/Object;Lorg/greenrobot/eventbus/EventBus$PostingThreadState;)V .registers 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Error; } .end annotation .line 363 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 365 iget-boolean v1, p0, Lorg/greenrobot/eventbus/EventBus;->eventInheritance:Z if-eqz v1, :cond_22 .line 366 invoke-static {v0}, Lorg/greenrobot/eventbus/EventBus;->lookupAllEventTypes(Ljava/lang/Class;)Ljava/util/List; move-result-object v1 .line 367 invoke-interface {v1}, Ljava/util/List;->size()I move-result v2 const/4 v3, 0x0 move v4, v3 :goto_12 if-ge v3, v2, :cond_26 .line 369 invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v5 check-cast v5, Ljava/lang/Class; .line 370 invoke-direct {p0, p1, p2, v5}, Lorg/greenrobot/eventbus/EventBus;->postSingleEventForEventType(Ljava/lang/Object;Lorg/greenrobot/eventbus/EventBus$PostingThreadState;Ljava/lang/Class;)Z move-result v5 or-int/2addr v4, v5 add-int/lit8 v3, v3, 0x1 goto :goto_12 .line 373 :cond_22 invoke-direct {p0, p1, p2, v0}, Lorg/greenrobot/eventbus/EventBus;->postSingleEventForEventType(Ljava/lang/Object;Lorg/greenrobot/eventbus/EventBus$PostingThreadState;Ljava/lang/Class;)Z move-result v4 :cond_26 if-nez v4, :cond_54 .line 376 iget-boolean p2, p0, Lorg/greenrobot/eventbus/EventBus;->logNoSubscriberMessages:Z if-eqz p2, :cond_40 .line 377 sget-object p2, Lorg/greenrobot/eventbus/EventBus;->TAG:Ljava/lang/String; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "No subscribers registered for event " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {p2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 379 :cond_40 iget-boolean p2, p0, Lorg/greenrobot/eventbus/EventBus;->sendNoSubscriberEvent:Z if-eqz p2, :cond_54 const-class p2, Lorg/greenrobot/eventbus/NoSubscriberEvent; if-eq v0, p2, :cond_54 const-class p2, Lorg/greenrobot/eventbus/SubscriberExceptionEvent; if-eq v0, p2, :cond_54 .line 381 new-instance p2, Lorg/greenrobot/eventbus/NoSubscriberEvent; invoke-direct {p2, p0, p1}, Lorg/greenrobot/eventbus/NoSubscriberEvent;->(Lorg/greenrobot/eventbus/EventBus;Ljava/lang/Object;)V invoke-virtual {p0, p2}, Lorg/greenrobot/eventbus/EventBus;->post(Ljava/lang/Object;)V :cond_54 return-void .end method .method private postSingleEventForEventType(Ljava/lang/Object;Lorg/greenrobot/eventbus/EventBus$PostingThreadState;Ljava/lang/Class;)Z .registers 8 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", "Lorg/greenrobot/eventbus/EventBus$PostingThreadState;", "Ljava/lang/Class<", "*>;)Z" } .end annotation .line 388 monitor-enter p0 .line 389 :try_start_1 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; invoke-interface {v0, p3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p3 check-cast p3, Ljava/util/concurrent/CopyOnWriteArrayList; .line 390 monitor-exit p0 :try_end_a .catchall {:try_start_1 .. :try_end_a} :catchall_43 const/4 v0, 0x0 if-eqz p3, :cond_42 .line 391 invoke-virtual {p3}, Ljava/util/concurrent/CopyOnWriteArrayList;->isEmpty()Z move-result v1 if-nez v1, :cond_42 .line 392 invoke-virtual {p3}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator; move-result-object p3 :cond_17 invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_40 invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/greenrobot/eventbus/Subscription; .line 393 iput-object p1, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->event:Ljava/lang/Object; .line 394 iput-object v1, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->subscription:Lorg/greenrobot/eventbus/Subscription; const/4 v2, 0x0 .line 397 :try_start_28 iget-boolean v3, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isMainThread:Z invoke-direct {p0, v1, p1, v3}, Lorg/greenrobot/eventbus/EventBus;->postToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;Z)V .line 398 iget-boolean v1, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->canceled:Z :try_end_2f .catchall {:try_start_28 .. :try_end_2f} :catchall_38 .line 400 iput-object v2, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->event:Ljava/lang/Object; .line 401 iput-object v2, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->subscription:Lorg/greenrobot/eventbus/Subscription; .line 402 iput-boolean v0, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->canceled:Z if-eqz v1, :cond_17 goto :goto_40 :catchall_38 move-exception p1 .line 400 iput-object v2, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->event:Ljava/lang/Object; .line 401 iput-object v2, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->subscription:Lorg/greenrobot/eventbus/Subscription; .line 402 iput-boolean v0, p2, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->canceled:Z throw p1 :cond_40 :goto_40 const/4 p1, 0x1 return p1 :cond_42 return v0 :catchall_43 move-exception p1 .line 390 :try_start_44 monitor-exit p0 :try_end_45 .catchall {:try_start_44 .. :try_end_45} :catchall_43 throw p1 .end method .method private postToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;Z)V .registers 6 .line 414 sget-object v0, Lorg/greenrobot/eventbus/EventBus$2;->$SwitchMap$org$greenrobot$eventbus$ThreadMode:[I iget-object v1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriberMethod:Lorg/greenrobot/eventbus/SubscriberMethod; iget-object v1, v1, Lorg/greenrobot/eventbus/SubscriberMethod;->threadMode:Lorg/greenrobot/eventbus/ThreadMode; invoke-virtual {v1}, Lorg/greenrobot/eventbus/ThreadMode;->ordinal()I move-result v1 aget v0, v0, v1 const/4 v1, 0x1 if-eq v0, v1, :cond_4f const/4 v1, 0x2 if-eq v0, v1, :cond_43 const/4 v1, 0x3 if-eq v0, v1, :cond_37 const/4 p3, 0x4 if-ne v0, p3, :cond_1e .line 433 iget-object p3, p0, Lorg/greenrobot/eventbus/EventBus;->asyncPoster:Lorg/greenrobot/eventbus/AsyncPoster; invoke-virtual {p3, p1, p2}, Lorg/greenrobot/eventbus/AsyncPoster;->enqueue(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_52 .line 436 :cond_1e new-instance p2, Ljava/lang/IllegalStateException; new-instance p3, Ljava/lang/StringBuilder; const-string v0, "Unknown thread mode: " invoke-direct {p3, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriberMethod:Lorg/greenrobot/eventbus/SubscriberMethod; iget-object p1, p1, Lorg/greenrobot/eventbus/SubscriberMethod;->threadMode:Lorg/greenrobot/eventbus/ThreadMode; invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p2, p1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p2 :cond_37 if-eqz p3, :cond_3f .line 427 iget-object p3, p0, Lorg/greenrobot/eventbus/EventBus;->backgroundPoster:Lorg/greenrobot/eventbus/BackgroundPoster; invoke-virtual {p3, p1, p2}, Lorg/greenrobot/eventbus/BackgroundPoster;->enqueue(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_52 .line 429 :cond_3f invoke-virtual {p0, p1, p2}, Lorg/greenrobot/eventbus/EventBus;->invokeSubscriber(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_52 :cond_43 if-eqz p3, :cond_49 .line 420 invoke-virtual {p0, p1, p2}, Lorg/greenrobot/eventbus/EventBus;->invokeSubscriber(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_52 .line 422 :cond_49 iget-object p3, p0, Lorg/greenrobot/eventbus/EventBus;->mainThreadPoster:Lorg/greenrobot/eventbus/HandlerPoster; invoke-virtual {p3, p1, p2}, Lorg/greenrobot/eventbus/HandlerPoster;->enqueue(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_52 .line 416 :cond_4f invoke-virtual {p0, p1, p2}, Lorg/greenrobot/eventbus/EventBus;->invokeSubscriber(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V :goto_52 return-void .end method .method private subscribe(Ljava/lang/Object;Lorg/greenrobot/eventbus/SubscriberMethod;)V .registers 10 .line 146 iget-object v0, p2, Lorg/greenrobot/eventbus/SubscriberMethod;->eventType:Ljava/lang/Class; .line 147 new-instance v1, Lorg/greenrobot/eventbus/Subscription; invoke-direct {v1, p1, p2}, Lorg/greenrobot/eventbus/Subscription;->(Ljava/lang/Object;Lorg/greenrobot/eventbus/SubscriberMethod;)V .line 148 iget-object v2, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; invoke-interface {v2, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/concurrent/CopyOnWriteArrayList; if-nez v2, :cond_1c .line 150 new-instance v2, Ljava/util/concurrent/CopyOnWriteArrayList; invoke-direct {v2}, Ljava/util/concurrent/CopyOnWriteArrayList;->()V .line 151 iget-object v3, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; invoke-interface {v3, v0, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_22 .line 153 :cond_1c invoke-virtual {v2, v1}, Ljava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_93 .line 159 :goto_22 invoke-virtual {v2}, Ljava/util/concurrent/CopyOnWriteArrayList;->size()I move-result v3 const/4 v4, 0x0 :goto_27 if-gt v4, v3, :cond_40 if-eq v4, v3, :cond_3d .line 161 iget v5, p2, Lorg/greenrobot/eventbus/SubscriberMethod;->priority:I invoke-virtual {v2, v4}, Ljava/util/concurrent/CopyOnWriteArrayList;->get(I)Ljava/lang/Object; move-result-object v6 check-cast v6, Lorg/greenrobot/eventbus/Subscription; iget-object v6, v6, Lorg/greenrobot/eventbus/Subscription;->subscriberMethod:Lorg/greenrobot/eventbus/SubscriberMethod; iget v6, v6, Lorg/greenrobot/eventbus/SubscriberMethod;->priority:I if-le v5, v6, :cond_3a goto :goto_3d :cond_3a add-int/lit8 v4, v4, 0x1 goto :goto_27 .line 162 :cond_3d :goto_3d invoke-virtual {v2, v4, v1}, Ljava/util/concurrent/CopyOnWriteArrayList;->add(ILjava/lang/Object;)V .line 167 :cond_40 iget-object v2, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; invoke-interface {v2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/List; if-nez v2, :cond_54 .line 169 new-instance v2, Ljava/util/ArrayList; invoke-direct {v2}, Ljava/util/ArrayList;->()V .line 170 iget-object v3, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; invoke-interface {v3, p1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 172 :cond_54 invoke-interface {v2, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 174 iget-boolean p1, p2, Lorg/greenrobot/eventbus/SubscriberMethod;->sticky:Z if-eqz p1, :cond_92 .line 175 iget-boolean p1, p0, Lorg/greenrobot/eventbus/EventBus;->eventInheritance:Z if-eqz p1, :cond_89 .line 180 iget-object p1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object p1 .line 181 invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p1 :cond_69 :goto_69 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result p2 if-eqz p2, :cond_92 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object p2 check-cast p2, Ljava/util/Map$Entry; .line 182 invoke-interface {p2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/Class; .line 183 invoke-virtual {v0, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v2 if-eqz v2, :cond_69 .line 184 invoke-interface {p2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object p2 .line 185 invoke-direct {p0, v1, p2}, Lorg/greenrobot/eventbus/EventBus;->checkPostStickyEventToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V goto :goto_69 .line 189 :cond_89 iget-object p1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 .line 190 invoke-direct {p0, v1, p1}, Lorg/greenrobot/eventbus/EventBus;->checkPostStickyEventToSubscription(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V :cond_92 return-void .line 154 :cond_93 new-instance p2, Lorg/greenrobot/eventbus/EventBusException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Subscriber " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 const-string v1, " already registered to event " invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p2, p1}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p2 .end method .method private unsubscribeByEventType(Ljava/lang/Object;Ljava/lang/Class;)V .registers 8 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", "Ljava/lang/Class<", "*>;)V" } .end annotation .line 209 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; invoke-interface {v0, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 check-cast p2, Ljava/util/List; if-eqz p2, :cond_28 .line 211 invoke-interface {p2}, Ljava/util/List;->size()I move-result v0 const/4 v1, 0x0 move v2, v1 :goto_10 if-ge v2, v0, :cond_28 .line 213 invoke-interface {p2, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Lorg/greenrobot/eventbus/Subscription; .line 214 iget-object v4, v3, Lorg/greenrobot/eventbus/Subscription;->subscriber:Ljava/lang/Object; if-ne v4, p1, :cond_25 .line 215 iput-boolean v1, v3, Lorg/greenrobot/eventbus/Subscription;->active:Z .line 216 invoke-interface {p2, v2}, Ljava/util/List;->remove(I)Ljava/lang/Object; add-int/lit8 v2, v2, -0x1 add-int/lit8 v0, v0, -0x1 :cond_25 add-int/lit8 v2, v2, 0x1 goto :goto_10 :cond_28 return-void .end method # virtual methods .method public cancelEventDelivery(Ljava/lang/Object;)V .registers 4 .line 268 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->currentPostingThreadState:Ljava/lang/ThreadLocal; invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState; .line 269 iget-boolean v1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isPosting:Z if-eqz v1, :cond_38 if-eqz p1, :cond_30 .line 274 iget-object v1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->event:Ljava/lang/Object; if-ne v1, p1, :cond_28 .line 276 iget-object p1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->subscription:Lorg/greenrobot/eventbus/Subscription; iget-object p1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriberMethod:Lorg/greenrobot/eventbus/SubscriberMethod; iget-object p1, p1, Lorg/greenrobot/eventbus/SubscriberMethod;->threadMode:Lorg/greenrobot/eventbus/ThreadMode; sget-object v1, Lorg/greenrobot/eventbus/ThreadMode;->POSTING:Lorg/greenrobot/eventbus/ThreadMode; if-ne p1, v1, :cond_20 const/4 p1, 0x1 .line 280 iput-boolean p1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->canceled:Z return-void .line 277 :cond_20 new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string v0, " event handlers may only abort the incoming event" invoke-direct {p1, v0}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 .line 275 :cond_28 new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string v0, "Only the currently handled event may be aborted" invoke-direct {p1, v0}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 .line 273 :cond_30 new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string v0, "Event may not be null" invoke-direct {p1, v0}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 .line 270 :cond_38 new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string v0, "This method may only be called from inside event handling methods on the posting thread" invoke-direct {p1, v0}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 .end method .method getExecutorService()Ljava/util/concurrent/ExecutorService; .registers 2 .line 530 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->executorService:Ljava/util/concurrent/ExecutorService; return-object v0 .end method .method public getStickyEvent(Ljava/lang/Class;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TT;>;)TT;" } .end annotation .line 301 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; monitor-enter v0 .line 302 :try_start_3 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 invoke-virtual {p1, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 monitor-exit v0 return-object p1 :catchall_f move-exception p1 .line 303 monitor-exit v0 :try_end_11 .catchall {:try_start_3 .. :try_end_11} :catchall_f throw p1 .end method .method public hasSubscriberForEvent(Ljava/lang/Class;)Z .registers 7 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)Z" } .end annotation .line 345 invoke-static {p1}, Lorg/greenrobot/eventbus/EventBus;->lookupAllEventTypes(Ljava/lang/Class;)Ljava/util/List; move-result-object p1 const/4 v0, 0x0 if-eqz p1, :cond_2e .line 347 invoke-interface {p1}, Ljava/util/List;->size()I move-result v1 move v2, v0 :goto_c if-ge v2, v1, :cond_2e .line 349 invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/Class; .line 351 monitor-enter p0 .line 352 :try_start_15 iget-object v4, p0, Lorg/greenrobot/eventbus/EventBus;->subscriptionsByEventType:Ljava/util/Map; invoke-interface {v4, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/concurrent/CopyOnWriteArrayList; .line 353 monitor-exit p0 :try_end_1e .catchall {:try_start_15 .. :try_end_1e} :catchall_2b if-eqz v3, :cond_28 .line 354 invoke-virtual {v3}, Ljava/util/concurrent/CopyOnWriteArrayList;->isEmpty()Z move-result v3 if-nez v3, :cond_28 const/4 p1, 0x1 return p1 :cond_28 add-int/lit8 v2, v2, 0x1 goto :goto_c :catchall_2b move-exception p1 .line 353 :try_start_2c monitor-exit p0 :try_end_2d .catchall {:try_start_2c .. :try_end_2d} :catchall_2b throw p1 :cond_2e return v0 .end method .method invokeSubscriber(Lorg/greenrobot/eventbus/PendingPost;)V .registers 4 .line 475 iget-object v0, p1, Lorg/greenrobot/eventbus/PendingPost;->event:Ljava/lang/Object; .line 476 iget-object v1, p1, Lorg/greenrobot/eventbus/PendingPost;->subscription:Lorg/greenrobot/eventbus/Subscription; .line 477 invoke-static {p1}, Lorg/greenrobot/eventbus/PendingPost;->releasePendingPost(Lorg/greenrobot/eventbus/PendingPost;)V .line 478 iget-boolean p1, v1, Lorg/greenrobot/eventbus/Subscription;->active:Z if-eqz p1, :cond_e .line 479 invoke-virtual {p0, v1, v0}, Lorg/greenrobot/eventbus/EventBus;->invokeSubscriber(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V :cond_e return-void .end method .method invokeSubscriber(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V .registers 6 .line 485 :try_start_0 iget-object v0, p1, Lorg/greenrobot/eventbus/Subscription;->subscriberMethod:Lorg/greenrobot/eventbus/SubscriberMethod; iget-object v0, v0, Lorg/greenrobot/eventbus/SubscriberMethod;->method:Ljava/lang/reflect/Method; iget-object v1, p1, Lorg/greenrobot/eventbus/Subscription;->subscriber:Ljava/lang/Object; filled-new-array {p2}, [Ljava/lang/Object; move-result-object v2 invoke-virtual {v0, v1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; :try_end_d .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_d} :catch_17 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_d} :catch_e goto :goto_1f :catch_e move-exception p1 .line 489 new-instance p2, Ljava/lang/IllegalStateException; const-string v0, "Unexpected exception" invoke-direct {p2, v0, p1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p2 :catch_17 move-exception v0 .line 487 invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable; move-result-object v0 invoke-direct {p0, p1, p2, v0}, Lorg/greenrobot/eventbus/EventBus;->handleSubscriberException(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;Ljava/lang/Throwable;)V :goto_1f return-void .end method .method public declared-synchronized isRegistered(Ljava/lang/Object;)Z .registers 3 monitor-enter p0 .line 204 :try_start_1 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z move-result p1 :try_end_7 .catchall {:try_start_1 .. :try_end_7} :catchall_9 monitor-exit p0 return p1 :catchall_9 move-exception p1 :try_start_a monitor-exit p0 :try_end_b .catchall {:try_start_a .. :try_end_b} :catchall_9 throw p1 .end method .method public post(Ljava/lang/Object;)V .registers 7 .line 239 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->currentPostingThreadState:Ljava/lang/ThreadLocal; invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState; .line 240 iget-object v1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->eventQueue:Ljava/util/List; .line 241 invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 243 iget-boolean p1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isPosting:Z if-nez p1, :cond_49 .line 244 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; move-result-object p1 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper; move-result-object v2 const/4 v3, 0x1 const/4 v4, 0x0 if-ne p1, v2, :cond_1f move p1, v3 goto :goto_20 :cond_1f move p1, v4 :goto_20 iput-boolean p1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isMainThread:Z .line 245 iput-boolean v3, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isPosting:Z .line 246 iget-boolean p1, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->canceled:Z if-nez p1, :cond_41 .line 250 :goto_28 :try_start_28 invoke-interface {v1}, Ljava/util/List;->isEmpty()Z move-result p1 if-nez p1, :cond_36 .line 251 invoke-interface {v1, v4}, Ljava/util/List;->remove(I)Ljava/lang/Object; move-result-object p1 invoke-direct {p0, p1, v0}, Lorg/greenrobot/eventbus/EventBus;->postSingleEvent(Ljava/lang/Object;Lorg/greenrobot/eventbus/EventBus$PostingThreadState;)V :try_end_35 .catchall {:try_start_28 .. :try_end_35} :catchall_3b goto :goto_28 .line 254 :cond_36 iput-boolean v4, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isPosting:Z .line 255 iput-boolean v4, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isMainThread:Z goto :goto_49 :catchall_3b move-exception p1 .line 254 iput-boolean v4, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isPosting:Z .line 255 iput-boolean v4, v0, Lorg/greenrobot/eventbus/EventBus$PostingThreadState;->isMainThread:Z throw p1 .line 247 :cond_41 new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string v0, "Internal error. Abort state was not reset" invoke-direct {p1, v0}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 :cond_49 :goto_49 return-void .end method .method public postSticky(Ljava/lang/Object;)V .registers 5 .line 288 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; monitor-enter v0 .line 289 :try_start_3 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v2 invoke-interface {v1, v2, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 290 monitor-exit v0 :try_end_d .catchall {:try_start_3 .. :try_end_d} :catchall_11 .line 292 invoke-virtual {p0, p1}, Lorg/greenrobot/eventbus/EventBus;->post(Ljava/lang/Object;)V return-void :catchall_11 move-exception p1 .line 290 :try_start_12 monitor-exit v0 :try_end_13 .catchall {:try_start_12 .. :try_end_13} :catchall_11 throw p1 .end method .method public register(Ljava/lang/Object;)V .registers 4 .line 135 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 136 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->subscriberMethodFinder:Lorg/greenrobot/eventbus/SubscriberMethodFinder; invoke-virtual {v1, v0}, Lorg/greenrobot/eventbus/SubscriberMethodFinder;->findSubscriberMethods(Ljava/lang/Class;)Ljava/util/List; move-result-object v0 .line 137 monitor-enter p0 .line 138 :try_start_b invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_f invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1f invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/greenrobot/eventbus/SubscriberMethod; .line 139 invoke-direct {p0, p1, v1}, Lorg/greenrobot/eventbus/EventBus;->subscribe(Ljava/lang/Object;Lorg/greenrobot/eventbus/SubscriberMethod;)V goto :goto_f .line 141 :cond_1f monitor-exit p0 return-void :catchall_21 move-exception p1 monitor-exit p0 :try_end_23 .catchall {:try_start_b .. :try_end_23} :catchall_21 throw p1 .end method .method public removeAllStickyEvents()V .registers 3 .line 339 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; monitor-enter v0 .line 340 :try_start_3 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {v1}, Ljava/util/Map;->clear()V .line 341 monitor-exit v0 return-void :catchall_a move-exception v1 monitor-exit v0 :try_end_c .catchall {:try_start_3 .. :try_end_c} :catchall_a throw v1 .end method .method public removeStickyEvent(Ljava/lang/Class;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TT;>;)TT;" } .end annotation .line 312 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; monitor-enter v0 .line 313 :try_start_3 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {v1, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 invoke-virtual {p1, v1}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 monitor-exit v0 return-object p1 :catchall_f move-exception p1 .line 314 monitor-exit v0 :try_end_11 .catchall {:try_start_3 .. :try_end_11} :catchall_f throw p1 .end method .method public removeStickyEvent(Ljava/lang/Object;)Z .registers 5 .line 323 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; monitor-enter v0 .line 324 :try_start_3 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 .line 325 iget-object v2, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {v2, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 .line 326 invoke-virtual {p1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_1b .line 327 iget-object p1, p0, Lorg/greenrobot/eventbus/EventBus;->stickyEvents:Ljava/util/Map; invoke-interface {p1, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; .line 328 monitor-exit v0 const/4 p1, 0x1 return p1 .line 330 :cond_1b monitor-exit v0 const/4 p1, 0x0 return p1 :catchall_1e move-exception p1 .line 332 monitor-exit v0 :try_end_20 .catchall {:try_start_3 .. :try_end_20} :catchall_1e throw p1 .end method .method public toString()Ljava/lang/String; .registers 3 .line 540 new-instance v0, Ljava/lang/StringBuilder; const-string v1, "EventBus[indexCount=" invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget v1, p0, Lorg/greenrobot/eventbus/EventBus;->indexCount:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", eventInheritance=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-boolean v1, p0, Lorg/greenrobot/eventbus/EventBus;->eventInheritance:Z invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "]" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public declared-synchronized unregister(Ljava/lang/Object;)V .registers 5 const-string v0, "Subscriber to unregister was not registered before: " monitor-enter p0 .line 226 :try_start_3 iget-object v1, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/List; if-eqz v1, :cond_27 .line 228 invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_11 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_21 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/Class; .line 229 invoke-direct {p0, p1, v1}, Lorg/greenrobot/eventbus/EventBus;->unsubscribeByEventType(Ljava/lang/Object;Ljava/lang/Class;)V goto :goto_11 .line 231 :cond_21 iget-object v0, p0, Lorg/greenrobot/eventbus/EventBus;->typesBySubscriber:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; goto :goto_3d .line 233 :cond_27 sget-object v1, Lorg/greenrobot/eventbus/EventBus;->TAG:Ljava/lang/String; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p1 invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v1, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :try_end_3d .catchall {:try_start_3 .. :try_end_3d} :catchall_3f .line 235 :goto_3d monitor-exit p0 return-void :catchall_3f move-exception p1 :try_start_40 monitor-exit p0 :try_end_41 .catchall {:try_start_40 .. :try_end_41} :catchall_3f throw p1 .end method