MessageThreadUtil$2.smali 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. .class Landroid/support/v7/util/MessageThreadUtil$2;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # interfaces
  5. .implements Landroid/support/v7/util/ThreadUtil$BackgroundCallback;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingMethod;
  8. value = Landroid/support/v7/util/MessageThreadUtil;->getBackgroundProxy(Landroid/support/v7/util/ThreadUtil$BackgroundCallback;)Landroid/support/v7/util/ThreadUtil$BackgroundCallback;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x0
  12. name = null
  13. .end annotation
  14. .annotation system Ldalvik/annotation/Signature;
  15. value = {
  16. "Ljava/lang/Object;",
  17. "Landroid/support/v7/util/ThreadUtil$BackgroundCallback<",
  18. "TT;>;"
  19. }
  20. .end annotation
  21. # static fields
  22. .field private static final LOAD_TILE:I = 0x3
  23. .field private static final RECYCLE_TILE:I = 0x4
  24. .field private static final REFRESH:I = 0x1
  25. .field private static final UPDATE_RANGE:I = 0x2
  26. # instance fields
  27. .field private mBackgroundRunnable:Ljava/lang/Runnable;
  28. .field mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
  29. .field private final mExecutor:Ljava/util/concurrent/Executor;
  30. .field private final mQueue:Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  31. .field final synthetic this$0:Landroid/support/v7/util/MessageThreadUtil;
  32. .field final synthetic val$callback:Landroid/support/v7/util/ThreadUtil$BackgroundCallback;
  33. # direct methods
  34. .method constructor <init>(Landroid/support/v7/util/MessageThreadUtil;Landroid/support/v7/util/ThreadUtil$BackgroundCallback;)V
  35. .locals 0
  36. iput-object p1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->this$0:Landroid/support/v7/util/MessageThreadUtil;
  37. iput-object p2, p0, Landroid/support/v7/util/MessageThreadUtil$2;->val$callback:Landroid/support/v7/util/ThreadUtil$BackgroundCallback;
  38. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  39. new-instance p1, Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  40. invoke-direct {p1}, Landroid/support/v7/util/MessageThreadUtil$MessageQueue;-><init>()V
  41. iput-object p1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mQueue:Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  42. invoke-static {}, Landroid/support/v4/content/ParallelExecutorCompat;->getParallelExecutor()Ljava/util/concurrent/Executor;
  43. move-result-object p1
  44. iput-object p1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mExecutor:Ljava/util/concurrent/Executor;
  45. new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean;
  46. const/4 p2, 0x0
  47. invoke-direct {p1, p2}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
  48. iput-object p1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
  49. new-instance p1, Landroid/support/v7/util/MessageThreadUtil$2$1;
  50. invoke-direct {p1, p0}, Landroid/support/v7/util/MessageThreadUtil$2$1;-><init>(Landroid/support/v7/util/MessageThreadUtil$2;)V
  51. iput-object p1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mBackgroundRunnable:Ljava/lang/Runnable;
  52. return-void
  53. .end method
  54. .method static synthetic access$100(Landroid/support/v7/util/MessageThreadUtil$2;)Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  55. .locals 0
  56. iget-object p0, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mQueue:Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  57. return-object p0
  58. .end method
  59. .method private maybeExecuteBackgroundRunnable()V
  60. .locals 3
  61. iget-object v0, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
  62. const/4 v1, 0x0
  63. const/4 v2, 0x1
  64. invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
  65. move-result v0
  66. if-eqz v0, :cond_0
  67. iget-object v0, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mExecutor:Ljava/util/concurrent/Executor;
  68. iget-object v1, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mBackgroundRunnable:Ljava/lang/Runnable;
  69. invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
  70. :cond_0
  71. return-void
  72. .end method
  73. .method private sendMessage(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  74. .locals 1
  75. iget-object v0, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mQueue:Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  76. invoke-virtual {v0, p1}, Landroid/support/v7/util/MessageThreadUtil$MessageQueue;->sendMessage(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  77. invoke-direct {p0}, Landroid/support/v7/util/MessageThreadUtil$2;->maybeExecuteBackgroundRunnable()V
  78. return-void
  79. .end method
  80. .method private sendMessageAtFrontOfQueue(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  81. .locals 1
  82. iget-object v0, p0, Landroid/support/v7/util/MessageThreadUtil$2;->mQueue:Landroid/support/v7/util/MessageThreadUtil$MessageQueue;
  83. invoke-virtual {v0, p1}, Landroid/support/v7/util/MessageThreadUtil$MessageQueue;->sendMessageAtFrontOfQueue(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  84. invoke-direct {p0}, Landroid/support/v7/util/MessageThreadUtil$2;->maybeExecuteBackgroundRunnable()V
  85. return-void
  86. .end method
  87. # virtual methods
  88. .method public loadTile(II)V
  89. .locals 1
  90. const/4 v0, 0x3
  91. invoke-static {v0, p1, p2}, Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;->obtainMessage(III)Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;
  92. move-result-object p1
  93. invoke-direct {p0, p1}, Landroid/support/v7/util/MessageThreadUtil$2;->sendMessage(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  94. return-void
  95. .end method
  96. .method public recycleTile(Landroid/support/v7/util/TileList$Tile;)V
  97. .locals 2
  98. .annotation system Ldalvik/annotation/Signature;
  99. value = {
  100. "(",
  101. "Landroid/support/v7/util/TileList$Tile<",
  102. "TT;>;)V"
  103. }
  104. .end annotation
  105. const/4 v0, 0x4
  106. const/4 v1, 0x0
  107. invoke-static {v0, v1, p1}, Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;->obtainMessage(IILjava/lang/Object;)Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;
  108. move-result-object p1
  109. invoke-direct {p0, p1}, Landroid/support/v7/util/MessageThreadUtil$2;->sendMessage(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  110. return-void
  111. .end method
  112. .method public refresh(I)V
  113. .locals 2
  114. const/4 v0, 0x1
  115. const/4 v1, 0x0
  116. invoke-static {v0, p1, v1}, Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;->obtainMessage(IILjava/lang/Object;)Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;
  117. move-result-object p1
  118. invoke-direct {p0, p1}, Landroid/support/v7/util/MessageThreadUtil$2;->sendMessageAtFrontOfQueue(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  119. return-void
  120. .end method
  121. .method public updateRange(IIIII)V
  122. .locals 7
  123. const/4 v0, 0x2
  124. const/4 v6, 0x0
  125. move v1, p1
  126. move v2, p2
  127. move v3, p3
  128. move v4, p4
  129. move v5, p5
  130. invoke-static/range {v0 .. v6}, Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;->obtainMessage(IIIIIILjava/lang/Object;)Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;
  131. move-result-object p1
  132. invoke-direct {p0, p1}, Landroid/support/v7/util/MessageThreadUtil$2;->sendMessageAtFrontOfQueue(Landroid/support/v7/util/MessageThreadUtil$SyncQueueItem;)V
  133. return-void
  134. .end method