SafeObserver.smali 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  1. .class public final Lio/reactivex/observers/SafeObserver;
  2. .super Ljava/lang/Object;
  3. .source "SafeObserver.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/lang/Object;",
  14. "Lio/reactivex/Observer<",
  15. "TT;>;",
  16. "Lio/reactivex/disposables/Disposable;"
  17. }
  18. .end annotation
  19. # instance fields
  20. .field final actual:Lio/reactivex/Observer;
  21. .annotation system Ldalvik/annotation/Signature;
  22. value = {
  23. "Lio/reactivex/Observer<",
  24. "-TT;>;"
  25. }
  26. .end annotation
  27. .end field
  28. .field done:Z
  29. .field s:Lio/reactivex/disposables/Disposable;
  30. # direct methods
  31. .method public constructor <init>(Lio/reactivex/Observer;)V
  32. .locals 0
  33. .annotation system Ldalvik/annotation/Signature;
  34. value = {
  35. "(",
  36. "Lio/reactivex/Observer<",
  37. "-TT;>;)V"
  38. }
  39. .end annotation
  40. .line 39
  41. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  42. .line 40
  43. iput-object p1, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  44. return-void
  45. .end method
  46. # virtual methods
  47. .method public dispose()V
  48. .locals 1
  49. .line 68
  50. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  51. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->dispose()V
  52. return-void
  53. .end method
  54. .method public isDisposed()Z
  55. .locals 1
  56. .line 73
  57. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  58. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->isDisposed()Z
  59. move-result v0
  60. return v0
  61. .end method
  62. .method public onComplete()V
  63. .locals 1
  64. .line 180
  65. iget-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  66. if-eqz v0, :cond_0
  67. return-void
  68. :cond_0
  69. const/4 v0, 0x1
  70. .line 184
  71. iput-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  72. .line 186
  73. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  74. if-nez v0, :cond_1
  75. .line 187
  76. invoke-virtual {p0}, Lio/reactivex/observers/SafeObserver;->onCompleteNoSubscription()V
  77. return-void
  78. .line 192
  79. :cond_1
  80. :try_start_0
  81. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  82. invoke-interface {v0}, Lio/reactivex/Observer;->onComplete()V
  83. :try_end_0
  84. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  85. goto :goto_0
  86. :catch_0
  87. move-exception v0
  88. .line 194
  89. invoke-static {v0}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  90. .line 195
  91. invoke-static {v0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  92. :goto_0
  93. return-void
  94. .end method
  95. .method onCompleteNoSubscription()V
  96. .locals 6
  97. .line 201
  98. new-instance v0, Ljava/lang/NullPointerException;
  99. const-string v1, "Subscription not set!"
  100. invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  101. const/4 v1, 0x1
  102. const/4 v2, 0x0
  103. const/4 v3, 0x2
  104. .line 204
  105. :try_start_0
  106. iget-object v4, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  107. sget-object v5, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  108. invoke-interface {v4, v5}, Lio/reactivex/Observer;->onSubscribe(Lio/reactivex/disposables/Disposable;)V
  109. :try_end_0
  110. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_1
  111. .line 212
  112. :try_start_1
  113. iget-object v4, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  114. invoke-interface {v4, v0}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
  115. :try_end_1
  116. .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_0
  117. goto :goto_0
  118. :catch_0
  119. move-exception v4
  120. .line 214
  121. invoke-static {v4}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  122. .line 216
  123. new-instance v5, Lio/reactivex/exceptions/CompositeException;
  124. new-array v3, v3, [Ljava/lang/Throwable;
  125. aput-object v0, v3, v2
  126. aput-object v4, v3, v1
  127. invoke-direct {v5, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  128. invoke-static {v5}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  129. :goto_0
  130. return-void
  131. :catch_1
  132. move-exception v4
  133. .line 206
  134. invoke-static {v4}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  135. .line 208
  136. new-instance v5, Lio/reactivex/exceptions/CompositeException;
  137. new-array v3, v3, [Ljava/lang/Throwable;
  138. aput-object v0, v3, v2
  139. aput-object v4, v3, v1
  140. invoke-direct {v5, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  141. invoke-static {v5}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  142. return-void
  143. .end method
  144. .method public onError(Ljava/lang/Throwable;)V
  145. .locals 8
  146. .line 138
  147. iget-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  148. if-eqz v0, :cond_0
  149. .line 139
  150. invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  151. return-void
  152. :cond_0
  153. const/4 v0, 0x1
  154. .line 142
  155. iput-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  156. .line 144
  157. iget-object v1, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  158. const/4 v2, 0x0
  159. const/4 v3, 0x2
  160. if-nez v1, :cond_1
  161. .line 145
  162. new-instance v1, Ljava/lang/NullPointerException;
  163. const-string v4, "Subscription not set!"
  164. invoke-direct {v1, v4}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  165. const/4 v4, 0x3
  166. .line 148
  167. :try_start_0
  168. iget-object v5, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  169. sget-object v6, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  170. invoke-interface {v5, v6}, Lio/reactivex/Observer;->onSubscribe(Lio/reactivex/disposables/Disposable;)V
  171. :try_end_0
  172. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_1
  173. .line 156
  174. :try_start_1
  175. iget-object v5, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  176. new-instance v6, Lio/reactivex/exceptions/CompositeException;
  177. new-array v7, v3, [Ljava/lang/Throwable;
  178. aput-object p1, v7, v2
  179. aput-object v1, v7, v0
  180. invoke-direct {v6, v7}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  181. invoke-interface {v5, v6}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
  182. :try_end_1
  183. .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_0
  184. goto :goto_0
  185. :catch_0
  186. move-exception v5
  187. .line 158
  188. invoke-static {v5}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  189. .line 160
  190. new-instance v6, Lio/reactivex/exceptions/CompositeException;
  191. new-array v4, v4, [Ljava/lang/Throwable;
  192. aput-object p1, v4, v2
  193. aput-object v1, v4, v0
  194. aput-object v5, v4, v3
  195. invoke-direct {v6, v4}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  196. invoke-static {v6}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  197. :goto_0
  198. return-void
  199. :catch_1
  200. move-exception v5
  201. .line 150
  202. invoke-static {v5}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  203. .line 152
  204. new-instance v6, Lio/reactivex/exceptions/CompositeException;
  205. new-array v4, v4, [Ljava/lang/Throwable;
  206. aput-object p1, v4, v2
  207. aput-object v1, v4, v0
  208. aput-object v5, v4, v3
  209. invoke-direct {v6, v4}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  210. invoke-static {v6}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  211. return-void
  212. :cond_1
  213. if-nez p1, :cond_2
  214. .line 166
  215. new-instance p1, Ljava/lang/NullPointerException;
  216. const-string v1, "onError called with null. Null values are generally not allowed in 2.x operators and sources."
  217. invoke-direct {p1, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  218. .line 170
  219. :cond_2
  220. :try_start_2
  221. iget-object v1, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  222. invoke-interface {v1, p1}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
  223. :try_end_2
  224. .catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_2} :catch_2
  225. goto :goto_1
  226. :catch_2
  227. move-exception v1
  228. .line 172
  229. invoke-static {v1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  230. .line 174
  231. new-instance v4, Lio/reactivex/exceptions/CompositeException;
  232. new-array v3, v3, [Ljava/lang/Throwable;
  233. aput-object p1, v3, v2
  234. aput-object v1, v3, v0
  235. invoke-direct {v4, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  236. invoke-static {v4}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  237. :goto_1
  238. return-void
  239. .end method
  240. .method public onNext(Ljava/lang/Object;)V
  241. .locals 5
  242. .annotation system Ldalvik/annotation/Signature;
  243. value = {
  244. "(TT;)V"
  245. }
  246. .end annotation
  247. .line 78
  248. iget-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  249. if-eqz v0, :cond_0
  250. return-void
  251. .line 81
  252. :cond_0
  253. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  254. if-nez v0, :cond_1
  255. .line 82
  256. invoke-virtual {p0}, Lio/reactivex/observers/SafeObserver;->onNextNoSubscription()V
  257. return-void
  258. :cond_1
  259. const/4 v0, 0x1
  260. const/4 v1, 0x0
  261. const/4 v2, 0x2
  262. if-nez p1, :cond_2
  263. .line 87
  264. new-instance p1, Ljava/lang/NullPointerException;
  265. const-string v3, "onNext called with null. Null values are generally not allowed in 2.x operators and sources."
  266. invoke-direct {p1, v3}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  267. .line 89
  268. :try_start_0
  269. iget-object v3, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  270. invoke-interface {v3}, Lio/reactivex/disposables/Disposable;->dispose()V
  271. :try_end_0
  272. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  273. .line 95
  274. invoke-virtual {p0, p1}, Lio/reactivex/observers/SafeObserver;->onError(Ljava/lang/Throwable;)V
  275. return-void
  276. :catch_0
  277. move-exception v3
  278. .line 91
  279. invoke-static {v3}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  280. .line 92
  281. new-instance v4, Lio/reactivex/exceptions/CompositeException;
  282. new-array v2, v2, [Ljava/lang/Throwable;
  283. aput-object p1, v2, v1
  284. aput-object v3, v2, v0
  285. invoke-direct {v4, v2}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  286. invoke-virtual {p0, v4}, Lio/reactivex/observers/SafeObserver;->onError(Ljava/lang/Throwable;)V
  287. return-void
  288. .line 100
  289. :cond_2
  290. :try_start_1
  291. iget-object v3, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  292. invoke-interface {v3, p1}, Lio/reactivex/Observer;->onNext(Ljava/lang/Object;)V
  293. :try_end_1
  294. .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_1
  295. goto :goto_0
  296. :catch_1
  297. move-exception p1
  298. .line 102
  299. invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  300. .line 104
  301. :try_start_2
  302. iget-object v3, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  303. invoke-interface {v3}, Lio/reactivex/disposables/Disposable;->dispose()V
  304. :try_end_2
  305. .catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_2} :catch_2
  306. .line 110
  307. invoke-virtual {p0, p1}, Lio/reactivex/observers/SafeObserver;->onError(Ljava/lang/Throwable;)V
  308. :goto_0
  309. return-void
  310. :catch_2
  311. move-exception v3
  312. .line 106
  313. invoke-static {v3}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  314. .line 107
  315. new-instance v4, Lio/reactivex/exceptions/CompositeException;
  316. new-array v2, v2, [Ljava/lang/Throwable;
  317. aput-object p1, v2, v1
  318. aput-object v3, v2, v0
  319. invoke-direct {v4, v2}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  320. invoke-virtual {p0, v4}, Lio/reactivex/observers/SafeObserver;->onError(Ljava/lang/Throwable;)V
  321. return-void
  322. .end method
  323. .method onNextNoSubscription()V
  324. .locals 6
  325. const/4 v0, 0x1
  326. .line 115
  327. iput-boolean v0, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  328. .line 117
  329. new-instance v1, Ljava/lang/NullPointerException;
  330. const-string v2, "Subscription not set!"
  331. invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  332. const/4 v2, 0x0
  333. const/4 v3, 0x2
  334. .line 120
  335. :try_start_0
  336. iget-object v4, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  337. sget-object v5, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  338. invoke-interface {v4, v5}, Lio/reactivex/Observer;->onSubscribe(Lio/reactivex/disposables/Disposable;)V
  339. :try_end_0
  340. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_1
  341. .line 128
  342. :try_start_1
  343. iget-object v4, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  344. invoke-interface {v4, v1}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
  345. :try_end_1
  346. .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_0
  347. goto :goto_0
  348. :catch_0
  349. move-exception v4
  350. .line 130
  351. invoke-static {v4}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  352. .line 132
  353. new-instance v5, Lio/reactivex/exceptions/CompositeException;
  354. new-array v3, v3, [Ljava/lang/Throwable;
  355. aput-object v1, v3, v2
  356. aput-object v4, v3, v0
  357. invoke-direct {v5, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  358. invoke-static {v5}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  359. :goto_0
  360. return-void
  361. :catch_1
  362. move-exception v4
  363. .line 122
  364. invoke-static {v4}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  365. .line 124
  366. new-instance v5, Lio/reactivex/exceptions/CompositeException;
  367. new-array v3, v3, [Ljava/lang/Throwable;
  368. aput-object v1, v3, v2
  369. aput-object v4, v3, v0
  370. invoke-direct {v5, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  371. invoke-static {v5}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  372. return-void
  373. .end method
  374. .method public onSubscribe(Lio/reactivex/disposables/Disposable;)V
  375. .locals 5
  376. .line 45
  377. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  378. invoke-static {v0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->validate(Lio/reactivex/disposables/Disposable;Lio/reactivex/disposables/Disposable;)Z
  379. move-result v0
  380. if-eqz v0, :cond_0
  381. .line 46
  382. iput-object p1, p0, Lio/reactivex/observers/SafeObserver;->s:Lio/reactivex/disposables/Disposable;
  383. .line 48
  384. :try_start_0
  385. iget-object v0, p0, Lio/reactivex/observers/SafeObserver;->actual:Lio/reactivex/Observer;
  386. invoke-interface {v0, p0}, Lio/reactivex/Observer;->onSubscribe(Lio/reactivex/disposables/Disposable;)V
  387. :try_end_0
  388. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  389. goto :goto_0
  390. :catch_0
  391. move-exception v0
  392. .line 50
  393. invoke-static {v0}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  394. const/4 v1, 0x1
  395. .line 51
  396. iput-boolean v1, p0, Lio/reactivex/observers/SafeObserver;->done:Z
  397. .line 54
  398. :try_start_1
  399. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  400. :try_end_1
  401. .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_1
  402. .line 60
  403. invoke-static {v0}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  404. goto :goto_0
  405. :catch_1
  406. move-exception p1
  407. .line 56
  408. invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  409. .line 57
  410. new-instance v2, Lio/reactivex/exceptions/CompositeException;
  411. const/4 v3, 0x2
  412. new-array v3, v3, [Ljava/lang/Throwable;
  413. const/4 v4, 0x0
  414. aput-object v0, v3, v4
  415. aput-object p1, v3, v1
  416. invoke-direct {v2, v3}, Lio/reactivex/exceptions/CompositeException;-><init>([Ljava/lang/Throwable;)V
  417. invoke-static {v2}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  418. :cond_0
  419. :goto_0
  420. return-void
  421. .end method