.class final Lorg/greenrobot/eventbus/HandlerPoster; .super Landroid/os/Handler; .source "HandlerPoster.java" # instance fields .field private final eventBus:Lorg/greenrobot/eventbus/EventBus; .field private handlerActive:Z .field private final maxMillisInsideHandleMessage:I .field private final queue:Lorg/greenrobot/eventbus/PendingPostQueue; # direct methods .method constructor (Lorg/greenrobot/eventbus/EventBus;Landroid/os/Looper;I)V .registers 4 .line 31 invoke-direct {p0, p2}, Landroid/os/Handler;->(Landroid/os/Looper;)V .line 32 iput-object p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->eventBus:Lorg/greenrobot/eventbus/EventBus; .line 33 iput p3, p0, Lorg/greenrobot/eventbus/HandlerPoster;->maxMillisInsideHandleMessage:I .line 34 new-instance p1, Lorg/greenrobot/eventbus/PendingPostQueue; invoke-direct {p1}, Lorg/greenrobot/eventbus/PendingPostQueue;->()V iput-object p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->queue:Lorg/greenrobot/eventbus/PendingPostQueue; return-void .end method # virtual methods .method enqueue(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)V .registers 3 .line 38 invoke-static {p1, p2}, Lorg/greenrobot/eventbus/PendingPost;->obtainPendingPost(Lorg/greenrobot/eventbus/Subscription;Ljava/lang/Object;)Lorg/greenrobot/eventbus/PendingPost; move-result-object p1 .line 39 monitor-enter p0 .line 40 :try_start_5 iget-object p2, p0, Lorg/greenrobot/eventbus/HandlerPoster;->queue:Lorg/greenrobot/eventbus/PendingPostQueue; invoke-virtual {p2, p1}, Lorg/greenrobot/eventbus/PendingPostQueue;->enqueue(Lorg/greenrobot/eventbus/PendingPost;)V .line 41 iget-boolean p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->handlerActive:Z if-nez p1, :cond_24 const/4 p1, 0x1 .line 42 iput-boolean p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->handlerActive:Z .line 43 invoke-virtual {p0}, Lorg/greenrobot/eventbus/HandlerPoster;->obtainMessage()Landroid/os/Message; move-result-object p1 invoke-virtual {p0, p1}, Lorg/greenrobot/eventbus/HandlerPoster;->sendMessage(Landroid/os/Message;)Z move-result p1 if-eqz p1, :cond_1c goto :goto_24 .line 44 :cond_1c new-instance p1, Lorg/greenrobot/eventbus/EventBusException; const-string p2, "Could not send handler message" invoke-direct {p1, p2}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw p1 .line 47 :cond_24 :goto_24 monitor-exit p0 return-void :catchall_26 move-exception p1 monitor-exit p0 :try_end_28 .catchall {:try_start_5 .. :try_end_28} :catchall_26 throw p1 .end method .method public handleMessage(Landroid/os/Message;)V .registers 8 const/4 p1, 0x0 .line 54 :try_start_1 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J move-result-wide v0 .line 56 :cond_5 iget-object v2, p0, Lorg/greenrobot/eventbus/HandlerPoster;->queue:Lorg/greenrobot/eventbus/PendingPostQueue; invoke-virtual {v2}, Lorg/greenrobot/eventbus/PendingPostQueue;->poll()Lorg/greenrobot/eventbus/PendingPost; move-result-object v2 if-nez v2, :cond_1f .line 58 monitor-enter p0 :try_end_e .catchall {:try_start_1 .. :try_end_e} :catchall_46 .line 60 :try_start_e iget-object v2, p0, Lorg/greenrobot/eventbus/HandlerPoster;->queue:Lorg/greenrobot/eventbus/PendingPostQueue; invoke-virtual {v2}, Lorg/greenrobot/eventbus/PendingPostQueue;->poll()Lorg/greenrobot/eventbus/PendingPost; move-result-object v2 if-nez v2, :cond_1a .line 63 monitor-exit p0 :try_end_17 .catchall {:try_start_e .. :try_end_17} :catchall_1c .line 78 iput-boolean p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->handlerActive:Z return-void .line 65 :cond_1a :try_start_1a monitor-exit p0 goto :goto_1f :catchall_1c move-exception v0 monitor-exit p0 :try_end_1e .catchall {:try_start_1a .. :try_end_1e} :catchall_1c :try_start_1e throw v0 .line 67 :cond_1f :goto_1f iget-object v3, p0, Lorg/greenrobot/eventbus/HandlerPoster;->eventBus:Lorg/greenrobot/eventbus/EventBus; invoke-virtual {v3, v2}, Lorg/greenrobot/eventbus/EventBus;->invokeSubscriber(Lorg/greenrobot/eventbus/PendingPost;)V .line 68 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J move-result-wide v2 sub-long/2addr v2, v0 .line 69 iget v4, p0, Lorg/greenrobot/eventbus/HandlerPoster;->maxMillisInsideHandleMessage:I int-to-long v4, v4 cmp-long v2, v2, v4 if-ltz v2, :cond_5 .line 70 invoke-virtual {p0}, Lorg/greenrobot/eventbus/HandlerPoster;->obtainMessage()Landroid/os/Message; move-result-object v0 invoke-virtual {p0, v0}, Lorg/greenrobot/eventbus/HandlerPoster;->sendMessage(Landroid/os/Message;)Z move-result v0 :try_end_38 .catchall {:try_start_1e .. :try_end_38} :catchall_46 if-eqz v0, :cond_3e const/4 p1, 0x1 .line 78 iput-boolean p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->handlerActive:Z return-void .line 71 :cond_3e :try_start_3e new-instance v0, Lorg/greenrobot/eventbus/EventBusException; const-string v1, "Could not send handler message" invoke-direct {v0, v1}, Lorg/greenrobot/eventbus/EventBusException;->(Ljava/lang/String;)V throw v0 :try_end_46 .catchall {:try_start_3e .. :try_end_46} :catchall_46 :catchall_46 move-exception v0 .line 78 iput-boolean p1, p0, Lorg/greenrobot/eventbus/HandlerPoster;->handlerActive:Z throw v0 .end method