FutureDisposable.smali 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. .class final Lio/reactivex/disposables/FutureDisposable;
  2. .super Ljava/util/concurrent/atomic/AtomicReference;
  3. .source "FutureDisposable.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/Signature;
  8. value = {
  9. "Ljava/util/concurrent/atomic/AtomicReference<",
  10. "Ljava/util/concurrent/Future<",
  11. "*>;>;",
  12. "Lio/reactivex/disposables/Disposable;"
  13. }
  14. .end annotation
  15. # static fields
  16. .field private static final serialVersionUID:J = 0x5ad55fad22d3c507L
  17. # instance fields
  18. .field private final allowInterrupt:Z
  19. # direct methods
  20. .method constructor <init>(Ljava/util/concurrent/Future;Z)V
  21. .locals 0
  22. .annotation system Ldalvik/annotation/Signature;
  23. value = {
  24. "(",
  25. "Ljava/util/concurrent/Future<",
  26. "*>;Z)V"
  27. }
  28. .end annotation
  29. .line 28
  30. invoke-direct {p0, p1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
  31. .line 29
  32. iput-boolean p2, p0, Lio/reactivex/disposables/FutureDisposable;->allowInterrupt:Z
  33. return-void
  34. .end method
  35. # virtual methods
  36. .method public dispose()V
  37. .locals 2
  38. const/4 v0, 0x0
  39. .line 40
  40. invoke-virtual {p0, v0}, Lio/reactivex/disposables/FutureDisposable;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
  41. move-result-object v0
  42. check-cast v0, Ljava/util/concurrent/Future;
  43. if-eqz v0, :cond_0
  44. .line 42
  45. iget-boolean v1, p0, Lio/reactivex/disposables/FutureDisposable;->allowInterrupt:Z
  46. invoke-interface {v0, v1}, Ljava/util/concurrent/Future;->cancel(Z)Z
  47. :cond_0
  48. return-void
  49. .end method
  50. .method public isDisposed()Z
  51. .locals 1
  52. .line 34
  53. invoke-virtual {p0}, Lio/reactivex/disposables/FutureDisposable;->get()Ljava/lang/Object;
  54. move-result-object v0
  55. check-cast v0, Ljava/util/concurrent/Future;
  56. if-eqz v0, :cond_1
  57. .line 35
  58. invoke-interface {v0}, Ljava/util/concurrent/Future;->isDone()Z
  59. move-result v0
  60. if-eqz v0, :cond_0
  61. goto :goto_0
  62. :cond_0
  63. const/4 v0, 0x0
  64. goto :goto_1
  65. :cond_1
  66. :goto_0
  67. const/4 v0, 0x1
  68. :goto_1
  69. return v0
  70. .end method