Scheduler$Worker.smali 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. .class public abstract Lio/reactivex/Scheduler$Worker;
  2. .super Ljava/lang/Object;
  3. .source "Scheduler.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingClass;
  8. value = Lio/reactivex/Scheduler;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x409
  12. name = "Worker"
  13. .end annotation
  14. .annotation system Ldalvik/annotation/MemberClasses;
  15. value = {
  16. Lio/reactivex/Scheduler$Worker$PeriodicTask;
  17. }
  18. .end annotation
  19. # direct methods
  20. .method public constructor <init>()V
  21. .locals 0
  22. .line 261
  23. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  24. return-void
  25. .end method
  26. # virtual methods
  27. .method public now(Ljava/util/concurrent/TimeUnit;)J
  28. .locals 3
  29. .line 341
  30. invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
  31. move-result-wide v0
  32. sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
  33. invoke-virtual {p1, v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J
  34. move-result-wide v0
  35. return-wide v0
  36. .end method
  37. .method public schedule(Ljava/lang/Runnable;)Lio/reactivex/disposables/Disposable;
  38. .locals 3
  39. .line 272
  40. sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
  41. const-wide/16 v1, 0x0
  42. invoke-virtual {p0, p1, v1, v2, v0}, Lio/reactivex/Scheduler$Worker;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  43. move-result-object p1
  44. return-object p1
  45. .end method
  46. .method public abstract schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  47. .end method
  48. .method public schedulePeriodically(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  49. .locals 17
  50. move-object/from16 v10, p0
  51. move-wide/from16 v11, p2
  52. move-object/from16 v13, p6
  53. .line 313
  54. new-instance v14, Lio/reactivex/internal/disposables/SequentialDisposable;
  55. invoke-direct {v14}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>()V
  56. .line 315
  57. new-instance v15, Lio/reactivex/internal/disposables/SequentialDisposable;
  58. invoke-direct {v15, v14}, Lio/reactivex/internal/disposables/SequentialDisposable;-><init>(Lio/reactivex/disposables/Disposable;)V
  59. .line 317
  60. invoke-static/range {p1 .. p1}, Lio/reactivex/plugins/RxJavaPlugins;->onSchedule(Ljava/lang/Runnable;)Ljava/lang/Runnable;
  61. move-result-object v4
  62. move-wide/from16 v0, p4
  63. .line 319
  64. invoke-virtual {v13, v0, v1}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
  65. move-result-wide v8
  66. .line 320
  67. sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
  68. invoke-virtual {v10, v0}, Lio/reactivex/Scheduler$Worker;->now(Ljava/util/concurrent/TimeUnit;)J
  69. move-result-wide v5
  70. .line 321
  71. invoke-virtual {v13, v11, v12}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
  72. move-result-wide v0
  73. add-long v2, v5, v0
  74. .line 323
  75. new-instance v7, Lio/reactivex/Scheduler$Worker$PeriodicTask;
  76. move-object v0, v7
  77. move-object/from16 v1, p0
  78. move-object/from16 v16, v14
  79. move-object v14, v7
  80. move-object v7, v15
  81. invoke-direct/range {v0 .. v9}, Lio/reactivex/Scheduler$Worker$PeriodicTask;-><init>(Lio/reactivex/Scheduler$Worker;JLjava/lang/Runnable;JLio/reactivex/internal/disposables/SequentialDisposable;J)V
  82. invoke-virtual {v10, v14, v11, v12, v13}, Lio/reactivex/Scheduler$Worker;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/reactivex/disposables/Disposable;
  83. move-result-object v0
  84. .line 326
  85. sget-object v1, Lio/reactivex/internal/disposables/EmptyDisposable;->INSTANCE:Lio/reactivex/internal/disposables/EmptyDisposable;
  86. if-ne v0, v1, :cond_0
  87. return-object v0
  88. :cond_0
  89. move-object/from16 v1, v16
  90. .line 329
  91. invoke-virtual {v1, v0}, Lio/reactivex/internal/disposables/SequentialDisposable;->replace(Lio/reactivex/disposables/Disposable;)Z
  92. return-object v15
  93. .end method