ForEachWhileObserver.smali 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. .class public final Lio/reactivex/internal/observers/ForEachWhileObserver;
  2. .super Ljava/util/concurrent/atomic/AtomicReference;
  3. .source "ForEachWhileObserver.java"
  4. # interfaces
  5. .implements Lio/reactivex/Observer;
  6. .implements Lio/reactivex/disposables/Disposable;
  7. # annotations
  8. .annotation system Ldalvik/annotation/Signature;
  9. value = {
  10. "<T:",
  11. "Ljava/lang/Object;",
  12. ">",
  13. "Ljava/util/concurrent/atomic/AtomicReference<",
  14. "Lio/reactivex/disposables/Disposable;",
  15. ">;",
  16. "Lio/reactivex/Observer<",
  17. "TT;>;",
  18. "Lio/reactivex/disposables/Disposable;"
  19. }
  20. .end annotation
  21. # static fields
  22. .field private static final serialVersionUID:J = -0x3d1b3ceaf2a05f88L
  23. # instance fields
  24. .field done:Z
  25. .field final onComplete:Lio/reactivex/functions/Action;
  26. .field final onError:Lio/reactivex/functions/Consumer;
  27. .annotation system Ldalvik/annotation/Signature;
  28. value = {
  29. "Lio/reactivex/functions/Consumer<",
  30. "-",
  31. "Ljava/lang/Throwable;",
  32. ">;"
  33. }
  34. .end annotation
  35. .end field
  36. .field final onNext:Lio/reactivex/functions/Predicate;
  37. .annotation system Ldalvik/annotation/Signature;
  38. value = {
  39. "Lio/reactivex/functions/Predicate<",
  40. "-TT;>;"
  41. }
  42. .end annotation
  43. .end field
  44. # direct methods
  45. .method public constructor <init>(Lio/reactivex/functions/Predicate;Lio/reactivex/functions/Consumer;Lio/reactivex/functions/Action;)V
  46. .locals 0
  47. .annotation system Ldalvik/annotation/Signature;
  48. value = {
  49. "(",
  50. "Lio/reactivex/functions/Predicate<",
  51. "-TT;>;",
  52. "Lio/reactivex/functions/Consumer<",
  53. "-",
  54. "Ljava/lang/Throwable;",
  55. ">;",
  56. "Lio/reactivex/functions/Action;",
  57. ")V"
  58. }
  59. .end annotation
  60. .line 41
  61. invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  62. .line 42
  63. iput-object p1, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onNext:Lio/reactivex/functions/Predicate;
  64. .line 43
  65. iput-object p2, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onError:Lio/reactivex/functions/Consumer;
  66. .line 44
  67. iput-object p3, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onComplete:Lio/reactivex/functions/Action;
  68. return-void
  69. .end method
  70. # virtual methods
  71. .method public dispose()V
  72. .locals 0
  73. .line 105
  74. invoke-static {p0}, Lio/reactivex/internal/disposables/DisposableHelper;->dispose(Ljava/util/concurrent/atomic/AtomicReference;)Z
  75. return-void
  76. .end method
  77. .method public isDisposed()Z
  78. .locals 1
  79. .line 110
  80. invoke-virtual {p0}, Lio/reactivex/internal/observers/ForEachWhileObserver;->get()Ljava/lang/Object;
  81. move-result-object v0
  82. check-cast v0, Lio/reactivex/disposables/Disposable;
  83. invoke-static {v0}, Lio/reactivex/internal/disposables/DisposableHelper;->isDisposed(Lio/reactivex/disposables/Disposable;)Z
  84. move-result v0
  85. return v0
  86. .end method
  87. .method public onComplete()V
  88. .locals 1
  89. .line 91
  90. iget-boolean v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->done:Z
  91. if-eqz v0, :cond_0
  92. return-void
  93. :cond_0
  94. const/4 v0, 0x1
  95. .line 94
  96. iput-boolean v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->done:Z
  97. .line 96
  98. :try_start_0
  99. iget-object v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onComplete:Lio/reactivex/functions/Action;
  100. invoke-interface {v0}, Lio/reactivex/functions/Action;->run()V
  101. :try_end_0
  102. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  103. goto :goto_0
  104. :catch_0
  105. move-exception v0
  106. .line 98
  107. invoke-static {v0}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  108. .line 99
  109. invoke-static {v0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  110. :goto_0
  111. return-void
  112. .end method
  113. .method public onError(Ljava/lang/Throwable;)V
  114. .locals 5
  115. .line 76
  116. iget-boolean v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->done:Z
  117. if-eqz v0, :cond_0
  118. .line 77
  119. invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  120. return-void
  121. :cond_0
  122. const/4 v0, 0x1
  123. .line 80
  124. iput-boolean v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->done:Z
  125. .line 82
  126. :try_start_0
  127. iget-object v1, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onError:Lio/reactivex/functions/Consumer;
  128. invoke-interface {v1, p1}, Lio/reactivex/functions/Consumer;->accept(Ljava/lang/Object;)V
  129. :try_end_0
  130. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  131. goto :goto_0
  132. :catch_0
  133. move-exception v1
  134. .line 84
  135. invoke-static {v1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  136. .line 85
  137. new-instance v2, Lio/reactivex/exceptions/CompositeException;
  138. const/4 v3, 0x2
  139. new-array v3, v3, [Ljava/lang/Throwable;
  140. const/4 v4, 0x0
  141. aput-object p1, v3, v4
  142. aput-object v1, v3, v0
  143. invoke-direct {v2, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  144. invoke-static {v2}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  145. :goto_0
  146. return-void
  147. .end method
  148. .method public onNext(Ljava/lang/Object;)V
  149. .locals 1
  150. .annotation system Ldalvik/annotation/Signature;
  151. value = {
  152. "(TT;)V"
  153. }
  154. .end annotation
  155. .line 54
  156. iget-boolean v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->done:Z
  157. if-eqz v0, :cond_0
  158. return-void
  159. .line 60
  160. :cond_0
  161. :try_start_0
  162. iget-object v0, p0, Lio/reactivex/internal/observers/ForEachWhileObserver;->onNext:Lio/reactivex/functions/Predicate;
  163. invoke-interface {v0, p1}, Lio/reactivex/functions/Predicate;->test(Ljava/lang/Object;)Z
  164. move-result p1
  165. :try_end_0
  166. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  167. if-nez p1, :cond_1
  168. .line 69
  169. invoke-virtual {p0}, Lio/reactivex/internal/observers/ForEachWhileObserver;->dispose()V
  170. .line 70
  171. invoke-virtual {p0}, Lio/reactivex/internal/observers/ForEachWhileObserver;->onComplete()V
  172. :cond_1
  173. return-void
  174. :catch_0
  175. move-exception p1
  176. .line 62
  177. invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  178. .line 63
  179. invoke-virtual {p0}, Lio/reactivex/internal/observers/ForEachWhileObserver;->dispose()V
  180. .line 64
  181. invoke-virtual {p0, p1}, Lio/reactivex/internal/observers/ForEachWhileObserver;->onError(Ljava/lang/Throwable;)V
  182. return-void
  183. .end method
  184. .method public onSubscribe(Lio/reactivex/disposables/Disposable;)V
  185. .locals 0
  186. .line 49
  187. invoke-static {p0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->setOnce(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  188. return-void
  189. .end method