LinearLayoutManager$LayoutState.smali 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. .class Landroid/support/v7/widget/LinearLayoutManager$LayoutState;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingClass;
  6. value = Landroid/support/v7/widget/LinearLayoutManager;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x8
  10. name = "LayoutState"
  11. .end annotation
  12. # static fields
  13. .field static final INVALID_LAYOUT:I = -0x80000000
  14. .field static final ITEM_DIRECTION_HEAD:I = -0x1
  15. .field static final ITEM_DIRECTION_TAIL:I = 0x1
  16. .field static final LAYOUT_END:I = 0x1
  17. .field static final LAYOUT_START:I = -0x1
  18. .field static final SCOLLING_OFFSET_NaN:I = -0x80000000
  19. .field static final TAG:Ljava/lang/String; = "LLM#LayoutState"
  20. # instance fields
  21. .field mAvailable:I
  22. .field mCurrentPosition:I
  23. .field mExtra:I
  24. .field mInfinite:Z
  25. .field mIsPreLayout:Z
  26. .field mItemDirection:I
  27. .field mLastScrollDelta:I
  28. .field mLayoutDirection:I
  29. .field mOffset:I
  30. .field mRecycle:Z
  31. .field mScrapList:Ljava/util/List;
  32. .annotation system Ldalvik/annotation/Signature;
  33. value = {
  34. "Ljava/util/List<",
  35. "Landroid/support/v7/widget/RecyclerView$ViewHolder;",
  36. ">;"
  37. }
  38. .end annotation
  39. .end field
  40. .field mScrollingOffset:I
  41. # direct methods
  42. .method constructor <init>()V
  43. .locals 1
  44. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  45. const/4 v0, 0x1
  46. iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mRecycle:Z
  47. const/4 v0, 0x0
  48. iput v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mExtra:I
  49. iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mIsPreLayout:Z
  50. const/4 v0, 0x0
  51. iput-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  52. return-void
  53. .end method
  54. .method private nextViewFromScrapList()Landroid/view/View;
  55. .locals 5
  56. iget-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  57. invoke-interface {v0}, Ljava/util/List;->size()I
  58. move-result v0
  59. const/4 v1, 0x0
  60. :goto_0
  61. if-ge v1, v0, :cond_2
  62. iget-object v2, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  63. invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
  64. move-result-object v2
  65. check-cast v2, Landroid/support/v7/widget/RecyclerView$ViewHolder;
  66. iget-object v2, v2, Landroid/support/v7/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
  67. invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  68. move-result-object v3
  69. check-cast v3, Landroid/support/v7/widget/RecyclerView$LayoutParams;
  70. invoke-virtual {v3}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
  71. move-result v4
  72. if-eqz v4, :cond_0
  73. goto :goto_1
  74. :cond_0
  75. iget v4, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  76. invoke-virtual {v3}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
  77. move-result v3
  78. if-ne v4, v3, :cond_1
  79. invoke-virtual {p0, v2}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->assignPositionFromScrapList(Landroid/view/View;)V
  80. return-object v2
  81. :cond_1
  82. :goto_1
  83. add-int/lit8 v1, v1, 0x1
  84. goto :goto_0
  85. :cond_2
  86. const/4 v0, 0x0
  87. return-object v0
  88. .end method
  89. # virtual methods
  90. .method public assignPositionFromScrapList()V
  91. .locals 1
  92. const/4 v0, 0x0
  93. invoke-virtual {p0, v0}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->assignPositionFromScrapList(Landroid/view/View;)V
  94. return-void
  95. .end method
  96. .method public assignPositionFromScrapList(Landroid/view/View;)V
  97. .locals 0
  98. invoke-virtual {p0, p1}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->nextViewInLimitedList(Landroid/view/View;)Landroid/view/View;
  99. move-result-object p1
  100. if-nez p1, :cond_0
  101. const/4 p1, -0x1
  102. goto :goto_0
  103. :cond_0
  104. invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  105. move-result-object p1
  106. check-cast p1, Landroid/support/v7/widget/RecyclerView$LayoutParams;
  107. invoke-virtual {p1}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
  108. move-result p1
  109. :goto_0
  110. iput p1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  111. return-void
  112. .end method
  113. .method hasMore(Landroid/support/v7/widget/RecyclerView$State;)Z
  114. .locals 1
  115. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  116. if-ltz v0, :cond_0
  117. invoke-virtual {p1}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  118. move-result p1
  119. if-ge v0, p1, :cond_0
  120. const/4 p1, 0x1
  121. goto :goto_0
  122. :cond_0
  123. const/4 p1, 0x0
  124. :goto_0
  125. return p1
  126. .end method
  127. .method log()V
  128. .locals 2
  129. new-instance v0, Ljava/lang/StringBuilder;
  130. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  131. const-string v1, "avail:"
  132. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  133. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mAvailable:I
  134. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  135. const-string v1, ", ind:"
  136. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  137. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  138. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  139. const-string v1, ", dir:"
  140. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  141. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
  142. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  143. const-string v1, ", offset:"
  144. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  145. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mOffset:I
  146. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  147. const-string v1, ", layoutDir:"
  148. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  149. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mLayoutDirection:I
  150. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  151. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  152. move-result-object v0
  153. const-string v1, "LLM#LayoutState"
  154. invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  155. return-void
  156. .end method
  157. .method next(Landroid/support/v7/widget/RecyclerView$Recycler;)Landroid/view/View;
  158. .locals 2
  159. iget-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  160. if-eqz v0, :cond_0
  161. invoke-direct {p0}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->nextViewFromScrapList()Landroid/view/View;
  162. move-result-object p1
  163. return-object p1
  164. :cond_0
  165. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  166. invoke-virtual {p1, v0}, Landroid/support/v7/widget/RecyclerView$Recycler;->getViewForPosition(I)Landroid/view/View;
  167. move-result-object p1
  168. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  169. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
  170. add-int/2addr v0, v1
  171. iput v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  172. return-object p1
  173. .end method
  174. .method public nextViewInLimitedList(Landroid/view/View;)Landroid/view/View;
  175. .locals 7
  176. iget-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  177. invoke-interface {v0}, Ljava/util/List;->size()I
  178. move-result v0
  179. const/4 v1, 0x0
  180. const v2, 0x7fffffff
  181. const/4 v3, 0x0
  182. :goto_0
  183. if-ge v3, v0, :cond_4
  184. iget-object v4, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  185. invoke-interface {v4, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
  186. move-result-object v4
  187. check-cast v4, Landroid/support/v7/widget/RecyclerView$ViewHolder;
  188. iget-object v4, v4, Landroid/support/v7/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
  189. invoke-virtual {v4}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  190. move-result-object v5
  191. check-cast v5, Landroid/support/v7/widget/RecyclerView$LayoutParams;
  192. if-eq v4, p1, :cond_3
  193. invoke-virtual {v5}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
  194. move-result v6
  195. if-eqz v6, :cond_0
  196. goto :goto_1
  197. :cond_0
  198. invoke-virtual {v5}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
  199. move-result v5
  200. iget v6, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  201. sub-int/2addr v5, v6
  202. iget v6, p0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
  203. mul-int v5, v5, v6
  204. if-gez v5, :cond_1
  205. goto :goto_1
  206. :cond_1
  207. if-ge v5, v2, :cond_3
  208. move-object v1, v4
  209. if-nez v5, :cond_2
  210. goto :goto_2
  211. :cond_2
  212. move v2, v5
  213. :cond_3
  214. :goto_1
  215. add-int/lit8 v3, v3, 0x1
  216. goto :goto_0
  217. :cond_4
  218. :goto_2
  219. return-object v1
  220. .end method