TestObserver.smali 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025
  1. .class public Lio/reactivex/observers/TestObserver;
  2. .super Lio/reactivex/observers/BaseTestConsumer;
  3. .source "TestObserver.java"
  4. # interfaces
  5. .implements Lio/reactivex/Observer;
  6. .implements Lio/reactivex/disposables/Disposable;
  7. .implements Lio/reactivex/MaybeObserver;
  8. .implements Lio/reactivex/SingleObserver;
  9. .implements Lio/reactivex/CompletableObserver;
  10. # annotations
  11. .annotation system Ldalvik/annotation/MemberClasses;
  12. value = {
  13. Lio/reactivex/observers/TestObserver$EmptyObserver;
  14. }
  15. .end annotation
  16. .annotation system Ldalvik/annotation/Signature;
  17. value = {
  18. "<T:",
  19. "Ljava/lang/Object;",
  20. ">",
  21. "Lio/reactivex/observers/BaseTestConsumer<",
  22. "TT;",
  23. "Lio/reactivex/observers/TestObserver<",
  24. "TT;>;>;",
  25. "Lio/reactivex/Observer<",
  26. "TT;>;",
  27. "Lio/reactivex/disposables/Disposable;",
  28. "Lio/reactivex/MaybeObserver<",
  29. "TT;>;",
  30. "Lio/reactivex/SingleObserver<",
  31. "TT;>;",
  32. "Lio/reactivex/CompletableObserver;"
  33. }
  34. .end annotation
  35. # instance fields
  36. .field private final actual:Lio/reactivex/Observer;
  37. .annotation system Ldalvik/annotation/Signature;
  38. value = {
  39. "Lio/reactivex/Observer<",
  40. "-TT;>;"
  41. }
  42. .end annotation
  43. .end field
  44. .field private qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  45. .annotation system Ldalvik/annotation/Signature;
  46. value = {
  47. "Lio/reactivex/internal/fuseable/QueueDisposable<",
  48. "TT;>;"
  49. }
  50. .end annotation
  51. .end field
  52. .field private final subscription:Ljava/util/concurrent/atomic/AtomicReference;
  53. .annotation system Ldalvik/annotation/Signature;
  54. value = {
  55. "Ljava/util/concurrent/atomic/AtomicReference<",
  56. "Lio/reactivex/disposables/Disposable;",
  57. ">;"
  58. }
  59. .end annotation
  60. .end field
  61. # direct methods
  62. .method public constructor <init>()V
  63. .locals 1
  64. .line 68
  65. sget-object v0, Lio/reactivex/observers/TestObserver$EmptyObserver;->INSTANCE:Lio/reactivex/observers/TestObserver$EmptyObserver;
  66. invoke-direct {p0, v0}, Lio/reactivex/observers/TestObserver;-><init>(Lio/reactivex/Observer;)V
  67. return-void
  68. .end method
  69. .method public constructor <init>(Lio/reactivex/Observer;)V
  70. .locals 1
  71. .annotation system Ldalvik/annotation/Signature;
  72. value = {
  73. "(",
  74. "Lio/reactivex/Observer<",
  75. "-TT;>;)V"
  76. }
  77. .end annotation
  78. .line 75
  79. invoke-direct {p0}, Lio/reactivex/observers/BaseTestConsumer;-><init>()V
  80. .line 41
  81. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  82. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  83. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  84. .line 76
  85. iput-object p1, p0, Lio/reactivex/observers/TestObserver;->actual:Lio/reactivex/Observer;
  86. return-void
  87. .end method
  88. .method public static create()Lio/reactivex/observers/TestObserver;
  89. .locals 1
  90. .annotation system Ldalvik/annotation/Signature;
  91. value = {
  92. "<T:",
  93. "Ljava/lang/Object;",
  94. ">()",
  95. "Lio/reactivex/observers/TestObserver<",
  96. "TT;>;"
  97. }
  98. .end annotation
  99. .line 51
  100. new-instance v0, Lio/reactivex/observers/TestObserver;
  101. invoke-direct {v0}, Lio/reactivex/observers/TestObserver;-><init>()V
  102. return-object v0
  103. .end method
  104. .method public static create(Lio/reactivex/Observer;)Lio/reactivex/observers/TestObserver;
  105. .locals 1
  106. .annotation system Ldalvik/annotation/Signature;
  107. value = {
  108. "<T:",
  109. "Ljava/lang/Object;",
  110. ">(",
  111. "Lio/reactivex/Observer<",
  112. "-TT;>;)",
  113. "Lio/reactivex/observers/TestObserver<",
  114. "TT;>;"
  115. }
  116. .end annotation
  117. .line 61
  118. new-instance v0, Lio/reactivex/observers/TestObserver;
  119. invoke-direct {v0, p0}, Lio/reactivex/observers/TestObserver;-><init>(Lio/reactivex/Observer;)V
  120. return-object v0
  121. .end method
  122. .method static fusionModeToString(I)Ljava/lang/String;
  123. .locals 2
  124. if-eqz p0, :cond_2
  125. const/4 v0, 0x1
  126. if-eq p0, v0, :cond_1
  127. const/4 v0, 0x2
  128. if-eq p0, v0, :cond_0
  129. .line 314
  130. new-instance v0, Ljava/lang/StringBuilder;
  131. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  132. const-string v1, "Unknown("
  133. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  134. invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  135. const-string p0, ")"
  136. invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  137. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  138. move-result-object p0
  139. return-object p0
  140. :cond_0
  141. const-string p0, "ASYNC"
  142. return-object p0
  143. :cond_1
  144. const-string p0, "SYNC"
  145. return-object p0
  146. :cond_2
  147. const-string p0, "NONE"
  148. return-object p0
  149. .end method
  150. # virtual methods
  151. .method final assertFuseable()Lio/reactivex/observers/TestObserver;
  152. .locals 2
  153. .annotation system Ldalvik/annotation/Signature;
  154. value = {
  155. "()",
  156. "Lio/reactivex/observers/TestObserver<",
  157. "TT;>;"
  158. }
  159. .end annotation
  160. .line 325
  161. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  162. if-eqz v0, :cond_0
  163. return-object p0
  164. .line 326
  165. :cond_0
  166. new-instance v0, Ljava/lang/AssertionError;
  167. const-string v1, "Upstream is not fuseable."
  168. invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
  169. throw v0
  170. .end method
  171. .method final assertFusionMode(I)Lio/reactivex/observers/TestObserver;
  172. .locals 4
  173. .annotation system Ldalvik/annotation/Signature;
  174. value = {
  175. "(I)",
  176. "Lio/reactivex/observers/TestObserver<",
  177. "TT;>;"
  178. }
  179. .end annotation
  180. .line 297
  181. iget v0, p0, Lio/reactivex/observers/TestObserver;->establishedFusionMode:I
  182. if-eq v0, p1, :cond_1
  183. .line 299
  184. iget-object v1, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  185. if-eqz v1, :cond_0
  186. .line 300
  187. new-instance v1, Ljava/lang/AssertionError;
  188. new-instance v2, Ljava/lang/StringBuilder;
  189. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  190. const-string v3, "Fusion mode different. Expected: "
  191. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  192. invoke-static {p1}, Lio/reactivex/observers/TestObserver;->fusionModeToString(I)Ljava/lang/String;
  193. move-result-object p1
  194. invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  195. const-string p1, ", actual: "
  196. invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  197. invoke-static {v0}, Lio/reactivex/observers/TestObserver;->fusionModeToString(I)Ljava/lang/String;
  198. move-result-object p1
  199. invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  200. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  201. move-result-object p1
  202. invoke-direct {v1, p1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
  203. throw v1
  204. :cond_0
  205. const-string p1, "Upstream is not fuseable"
  206. .line 303
  207. invoke-virtual {p0, p1}, Lio/reactivex/observers/TestObserver;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
  208. move-result-object p1
  209. throw p1
  210. :cond_1
  211. return-object p0
  212. .end method
  213. .method final assertNotFuseable()Lio/reactivex/observers/TestObserver;
  214. .locals 2
  215. .annotation system Ldalvik/annotation/Signature;
  216. value = {
  217. "()",
  218. "Lio/reactivex/observers/TestObserver<",
  219. "TT;>;"
  220. }
  221. .end annotation
  222. .line 338
  223. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  224. if-nez v0, :cond_0
  225. return-object p0
  226. .line 339
  227. :cond_0
  228. new-instance v0, Ljava/lang/AssertionError;
  229. const-string v1, "Upstream is fuseable."
  230. invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V
  231. throw v0
  232. .end method
  233. .method public bridge synthetic assertNotSubscribed()Lio/reactivex/observers/BaseTestConsumer;
  234. .locals 1
  235. .line 34
  236. invoke-virtual {p0}, Lio/reactivex/observers/TestObserver;->assertNotSubscribed()Lio/reactivex/observers/TestObserver;
  237. move-result-object v0
  238. return-object v0
  239. .end method
  240. .method public final assertNotSubscribed()Lio/reactivex/observers/TestObserver;
  241. .locals 1
  242. .annotation system Ldalvik/annotation/Signature;
  243. value = {
  244. "()",
  245. "Lio/reactivex/observers/TestObserver<",
  246. "TT;>;"
  247. }
  248. .end annotation
  249. .line 254
  250. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  251. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  252. move-result-object v0
  253. if-nez v0, :cond_1
  254. .line 257
  255. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  256. invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
  257. move-result v0
  258. if-eqz v0, :cond_0
  259. return-object p0
  260. :cond_0
  261. const-string v0, "Not subscribed but errors found"
  262. .line 258
  263. invoke-virtual {p0, v0}, Lio/reactivex/observers/TestObserver;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
  264. move-result-object v0
  265. throw v0
  266. :cond_1
  267. const-string v0, "Subscribed!"
  268. .line 255
  269. invoke-virtual {p0, v0}, Lio/reactivex/observers/TestObserver;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
  270. move-result-object v0
  271. throw v0
  272. .end method
  273. .method public final assertOf(Lio/reactivex/functions/Consumer;)Lio/reactivex/observers/TestObserver;
  274. .locals 0
  275. .annotation system Ldalvik/annotation/Signature;
  276. value = {
  277. "(",
  278. "Lio/reactivex/functions/Consumer<",
  279. "-",
  280. "Lio/reactivex/observers/TestObserver<",
  281. "TT;>;>;)",
  282. "Lio/reactivex/observers/TestObserver<",
  283. "TT;>;"
  284. }
  285. .end annotation
  286. .line 270
  287. :try_start_0
  288. invoke-interface {p1, p0}, Lio/reactivex/functions/Consumer;->accept(Ljava/lang/Object;)V
  289. :try_end_0
  290. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  291. return-object p0
  292. :catch_0
  293. move-exception p1
  294. .line 272
  295. invoke-static {p1}, Lio/reactivex/internal/util/ExceptionHelper;->wrapOrThrow(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
  296. move-result-object p1
  297. throw p1
  298. .end method
  299. .method public bridge synthetic assertSubscribed()Lio/reactivex/observers/BaseTestConsumer;
  300. .locals 1
  301. .line 34
  302. invoke-virtual {p0}, Lio/reactivex/observers/TestObserver;->assertSubscribed()Lio/reactivex/observers/TestObserver;
  303. move-result-object v0
  304. return-object v0
  305. .end method
  306. .method public final assertSubscribed()Lio/reactivex/observers/TestObserver;
  307. .locals 1
  308. .annotation system Ldalvik/annotation/Signature;
  309. value = {
  310. "()",
  311. "Lio/reactivex/observers/TestObserver<",
  312. "TT;>;"
  313. }
  314. .end annotation
  315. .line 242
  316. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  317. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  318. move-result-object v0
  319. if-eqz v0, :cond_0
  320. return-object p0
  321. :cond_0
  322. const-string v0, "Not subscribed!"
  323. .line 243
  324. invoke-virtual {p0, v0}, Lio/reactivex/observers/TestObserver;->fail(Ljava/lang/String;)Ljava/lang/AssertionError;
  325. move-result-object v0
  326. throw v0
  327. .end method
  328. .method public final cancel()V
  329. .locals 0
  330. .line 214
  331. invoke-virtual {p0}, Lio/reactivex/observers/TestObserver;->dispose()V
  332. return-void
  333. .end method
  334. .method public final dispose()V
  335. .locals 1
  336. .line 219
  337. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  338. invoke-static {v0}, Lio/reactivex/internal/disposables/DisposableHelper;->dispose(Ljava/util/concurrent/atomic/AtomicReference;)Z
  339. return-void
  340. .end method
  341. .method public final hasSubscription()Z
  342. .locals 1
  343. .line 233
  344. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  345. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  346. move-result-object v0
  347. if-eqz v0, :cond_0
  348. const/4 v0, 0x1
  349. goto :goto_0
  350. :cond_0
  351. const/4 v0, 0x0
  352. :goto_0
  353. return v0
  354. .end method
  355. .method public final isCancelled()Z
  356. .locals 1
  357. .line 205
  358. invoke-virtual {p0}, Lio/reactivex/observers/TestObserver;->isDisposed()Z
  359. move-result v0
  360. return v0
  361. .end method
  362. .method public final isDisposed()Z
  363. .locals 1
  364. .line 224
  365. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  366. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  367. move-result-object v0
  368. check-cast v0, Lio/reactivex/disposables/Disposable;
  369. invoke-static {v0}, Lio/reactivex/internal/disposables/DisposableHelper;->isDisposed(Lio/reactivex/disposables/Disposable;)Z
  370. move-result v0
  371. return v0
  372. .end method
  373. .method public onComplete()V
  374. .locals 4
  375. .line 183
  376. iget-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  377. if-nez v0, :cond_0
  378. const/4 v0, 0x1
  379. .line 184
  380. iput-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  381. .line 185
  382. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  383. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  384. move-result-object v0
  385. if-nez v0, :cond_0
  386. .line 186
  387. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  388. new-instance v1, Ljava/lang/IllegalStateException;
  389. const-string v2, "onSubscribe not called in proper order"
  390. invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  391. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  392. .line 191
  393. :cond_0
  394. :try_start_0
  395. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  396. move-result-object v0
  397. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->lastThread:Ljava/lang/Thread;
  398. .line 192
  399. iget-wide v0, p0, Lio/reactivex/observers/TestObserver;->completions:J
  400. const-wide/16 v2, 0x1
  401. add-long/2addr v0, v2
  402. iput-wide v0, p0, Lio/reactivex/observers/TestObserver;->completions:J
  403. .line 194
  404. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->actual:Lio/reactivex/Observer;
  405. invoke-interface {v0}, Lio/reactivex/Observer;->onComplete()V
  406. :try_end_0
  407. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  408. .line 196
  409. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->done:Ljava/util/concurrent/CountDownLatch;
  410. invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
  411. return-void
  412. :catchall_0
  413. move-exception v0
  414. iget-object v1, p0, Lio/reactivex/observers/TestObserver;->done:Ljava/util/concurrent/CountDownLatch;
  415. invoke-virtual {v1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
  416. throw v0
  417. .end method
  418. .method public onError(Ljava/lang/Throwable;)V
  419. .locals 3
  420. .line 160
  421. iget-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  422. if-nez v0, :cond_0
  423. const/4 v0, 0x1
  424. .line 161
  425. iput-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  426. .line 162
  427. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  428. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  429. move-result-object v0
  430. if-nez v0, :cond_0
  431. .line 163
  432. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  433. new-instance v1, Ljava/lang/IllegalStateException;
  434. const-string v2, "onSubscribe not called in proper order"
  435. invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  436. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  437. .line 168
  438. :cond_0
  439. :try_start_0
  440. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  441. move-result-object v0
  442. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->lastThread:Ljava/lang/Thread;
  443. if-nez p1, :cond_1
  444. .line 170
  445. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  446. new-instance v1, Ljava/lang/NullPointerException;
  447. const-string v2, "onError received a null Throwable"
  448. invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  449. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  450. goto :goto_0
  451. .line 172
  452. :cond_1
  453. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  454. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  455. .line 175
  456. :goto_0
  457. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->actual:Lio/reactivex/Observer;
  458. invoke-interface {v0, p1}, Lio/reactivex/Observer;->onError(Ljava/lang/Throwable;)V
  459. :try_end_0
  460. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  461. .line 177
  462. iget-object p1, p0, Lio/reactivex/observers/TestObserver;->done:Ljava/util/concurrent/CountDownLatch;
  463. invoke-virtual {p1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
  464. return-void
  465. :catchall_0
  466. move-exception p1
  467. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->done:Ljava/util/concurrent/CountDownLatch;
  468. invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
  469. throw p1
  470. .end method
  471. .method public onNext(Ljava/lang/Object;)V
  472. .locals 3
  473. .annotation system Ldalvik/annotation/Signature;
  474. value = {
  475. "(TT;)V"
  476. }
  477. .end annotation
  478. .line 128
  479. iget-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  480. if-nez v0, :cond_0
  481. const/4 v0, 0x1
  482. .line 129
  483. iput-boolean v0, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  484. .line 130
  485. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  486. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  487. move-result-object v0
  488. if-nez v0, :cond_0
  489. .line 131
  490. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  491. new-instance v1, Ljava/lang/IllegalStateException;
  492. const-string v2, "onSubscribe not called in proper order"
  493. invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  494. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  495. .line 135
  496. :cond_0
  497. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  498. move-result-object v0
  499. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->lastThread:Ljava/lang/Thread;
  500. .line 137
  501. iget v0, p0, Lio/reactivex/observers/TestObserver;->establishedFusionMode:I
  502. const/4 v1, 0x2
  503. if-ne v0, v1, :cond_2
  504. .line 139
  505. :goto_0
  506. :try_start_0
  507. iget-object p1, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  508. invoke-interface {p1}, Lio/reactivex/internal/fuseable/QueueDisposable;->poll()Ljava/lang/Object;
  509. move-result-object p1
  510. if-eqz p1, :cond_1
  511. .line 140
  512. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->values:Ljava/util/List;
  513. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  514. :try_end_0
  515. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  516. goto :goto_0
  517. :catch_0
  518. move-exception p1
  519. .line 144
  520. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  521. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  522. :cond_1
  523. return-void
  524. .line 149
  525. :cond_2
  526. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->values:Ljava/util/List;
  527. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  528. if-nez p1, :cond_3
  529. .line 152
  530. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  531. new-instance v1, Ljava/lang/NullPointerException;
  532. const-string v2, "onNext received a null value"
  533. invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  534. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  535. .line 155
  536. :cond_3
  537. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->actual:Lio/reactivex/Observer;
  538. invoke-interface {v0, p1}, Lio/reactivex/Observer;->onNext(Ljava/lang/Object;)V
  539. return-void
  540. .end method
  541. .method public onSubscribe(Lio/reactivex/disposables/Disposable;)V
  542. .locals 4
  543. .line 82
  544. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  545. move-result-object v0
  546. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->lastThread:Ljava/lang/Thread;
  547. if-nez p1, :cond_0
  548. .line 85
  549. iget-object p1, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  550. new-instance v0, Ljava/lang/NullPointerException;
  551. const-string v1, "onSubscribe received a null Subscription"
  552. invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
  553. invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  554. return-void
  555. .line 88
  556. :cond_0
  557. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  558. const/4 v1, 0x0
  559. invoke-virtual {v0, v1, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  560. move-result v0
  561. if-nez v0, :cond_2
  562. .line 89
  563. invoke-interface {p1}, Lio/reactivex/disposables/Disposable;->dispose()V
  564. .line 90
  565. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  566. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  567. move-result-object v0
  568. sget-object v1, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  569. if-eq v0, v1, :cond_1
  570. .line 91
  571. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  572. new-instance v1, Ljava/lang/IllegalStateException;
  573. new-instance v2, Ljava/lang/StringBuilder;
  574. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  575. const-string v3, "onSubscribe received multiple subscriptions: "
  576. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  577. invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  578. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  579. move-result-object p1
  580. invoke-direct {v1, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  581. invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  582. :cond_1
  583. return-void
  584. .line 96
  585. :cond_2
  586. iget v0, p0, Lio/reactivex/observers/TestObserver;->initialFusionMode:I
  587. if-eqz v0, :cond_4
  588. .line 97
  589. instance-of v0, p1, Lio/reactivex/internal/fuseable/QueueDisposable;
  590. if-eqz v0, :cond_4
  591. .line 98
  592. move-object v0, p1
  593. check-cast v0, Lio/reactivex/internal/fuseable/QueueDisposable;
  594. iput-object v0, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  595. .line 100
  596. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  597. iget v1, p0, Lio/reactivex/observers/TestObserver;->initialFusionMode:I
  598. invoke-interface {v0, v1}, Lio/reactivex/internal/fuseable/QueueDisposable;->requestFusion(I)I
  599. move-result v0
  600. .line 101
  601. iput v0, p0, Lio/reactivex/observers/TestObserver;->establishedFusionMode:I
  602. const/4 v1, 0x1
  603. if-ne v0, v1, :cond_4
  604. .line 104
  605. iput-boolean v1, p0, Lio/reactivex/observers/TestObserver;->checkSubscriptionOnce:Z
  606. .line 105
  607. invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
  608. move-result-object p1
  609. iput-object p1, p0, Lio/reactivex/observers/TestObserver;->lastThread:Ljava/lang/Thread;
  610. .line 108
  611. :goto_0
  612. :try_start_0
  613. iget-object p1, p0, Lio/reactivex/observers/TestObserver;->qs:Lio/reactivex/internal/fuseable/QueueDisposable;
  614. invoke-interface {p1}, Lio/reactivex/internal/fuseable/QueueDisposable;->poll()Ljava/lang/Object;
  615. move-result-object p1
  616. if-eqz p1, :cond_3
  617. .line 109
  618. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->values:Ljava/util/List;
  619. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  620. goto :goto_0
  621. .line 111
  622. :cond_3
  623. iget-wide v0, p0, Lio/reactivex/observers/TestObserver;->completions:J
  624. const-wide/16 v2, 0x1
  625. add-long/2addr v0, v2
  626. iput-wide v0, p0, Lio/reactivex/observers/TestObserver;->completions:J
  627. .line 113
  628. iget-object p1, p0, Lio/reactivex/observers/TestObserver;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  629. sget-object v0, Lio/reactivex/internal/disposables/DisposableHelper;->DISPOSED:Lio/reactivex/internal/disposables/DisposableHelper;
  630. invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
  631. :try_end_0
  632. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  633. goto :goto_1
  634. :catch_0
  635. move-exception p1
  636. .line 116
  637. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->errors:Ljava/util/List;
  638. invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
  639. :goto_1
  640. return-void
  641. .line 123
  642. :cond_4
  643. iget-object v0, p0, Lio/reactivex/observers/TestObserver;->actual:Lio/reactivex/Observer;
  644. invoke-interface {v0, p1}, Lio/reactivex/Observer;->onSubscribe(Lio/reactivex/disposables/Disposable;)V
  645. return-void
  646. .end method
  647. .method public onSuccess(Ljava/lang/Object;)V
  648. .locals 0
  649. .annotation system Ldalvik/annotation/Signature;
  650. value = {
  651. "(TT;)V"
  652. }
  653. .end annotation
  654. .line 346
  655. invoke-virtual {p0, p1}, Lio/reactivex/observers/TestObserver;->onNext(Ljava/lang/Object;)V
  656. .line 347
  657. invoke-virtual {p0}, Lio/reactivex/observers/TestObserver;->onComplete()V
  658. return-void
  659. .end method
  660. .method final setInitialFusionMode(I)Lio/reactivex/observers/TestObserver;
  661. .locals 0
  662. .annotation system Ldalvik/annotation/Signature;
  663. value = {
  664. "(I)",
  665. "Lio/reactivex/observers/TestObserver<",
  666. "TT;>;"
  667. }
  668. .end annotation
  669. .line 285
  670. iput p1, p0, Lio/reactivex/observers/TestObserver;->initialFusionMode:I
  671. return-object p0
  672. .end method