RecyclerView$SmoothScroller.smali 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. .class public abstract Landroid/support/v7/widget/RecyclerView$SmoothScroller;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingClass;
  6. value = Landroid/support/v7/widget/RecyclerView;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x409
  10. name = "SmoothScroller"
  11. .end annotation
  12. .annotation system Ldalvik/annotation/MemberClasses;
  13. value = {
  14. Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  15. }
  16. .end annotation
  17. # instance fields
  18. .field private mLayoutManager:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  19. .field private mPendingInitialRun:Z
  20. .field private mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  21. .field private final mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  22. .field private mRunning:Z
  23. .field private mTargetPosition:I
  24. .field private mTargetView:Landroid/view/View;
  25. # direct methods
  26. .method public constructor <init>()V
  27. .locals 2
  28. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  29. const/4 v0, -0x1
  30. iput v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  31. new-instance v0, Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  32. const/4 v1, 0x0
  33. invoke-direct {v0, v1, v1}, Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;-><init>(II)V
  34. iput-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  35. return-void
  36. .end method
  37. .method static synthetic access$3500(Landroid/support/v7/widget/RecyclerView$SmoothScroller;II)V
  38. .locals 0
  39. invoke-direct {p0, p1, p2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->onAnimation(II)V
  40. return-void
  41. .end method
  42. .method private onAnimation(II)V
  43. .locals 4
  44. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  45. iget-boolean v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  46. if-eqz v1, :cond_0
  47. iget v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  48. const/4 v2, -0x1
  49. if-eq v1, v2, :cond_0
  50. if-nez v0, :cond_1
  51. :cond_0
  52. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->stop()V
  53. :cond_1
  54. const/4 v1, 0x0
  55. iput-boolean v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mPendingInitialRun:Z
  56. iget-object v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  57. if-eqz v1, :cond_3
  58. invoke-virtual {p0, v1}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->getChildPosition(Landroid/view/View;)I
  59. move-result v1
  60. iget v2, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  61. if-ne v1, v2, :cond_2
  62. iget-object v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  63. iget-object v2, v0, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  64. iget-object v3, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  65. invoke-virtual {p0, v1, v2, v3}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->onTargetFound(Landroid/view/View;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;)V
  66. iget-object v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  67. invoke-static {v1, v0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;->access$6100(Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;Landroid/support/v7/widget/RecyclerView;)V
  68. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->stop()V
  69. goto :goto_0
  70. :cond_2
  71. const-string v1, "RecyclerView"
  72. const-string v2, "Passed over target position while smooth scrolling."
  73. invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  74. const/4 v1, 0x0
  75. iput-object v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  76. :cond_3
  77. :goto_0
  78. iget-boolean v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  79. if-eqz v1, :cond_5
  80. iget-object v1, v0, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  81. iget-object v2, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  82. invoke-virtual {p0, p1, p2, v1, v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->onSeekTargetStep(IILandroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;)V
  83. iget-object p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  84. invoke-virtual {p1}, Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;->hasJumpTarget()Z
  85. move-result p1
  86. iget-object p2, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclingAction:Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;
  87. invoke-static {p2, v0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;->access$6100(Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;Landroid/support/v7/widget/RecyclerView;)V
  88. if-eqz p1, :cond_5
  89. iget-boolean p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  90. if-eqz p1, :cond_4
  91. const/4 p1, 0x1
  92. iput-boolean p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mPendingInitialRun:Z
  93. invoke-static {v0}, Landroid/support/v7/widget/RecyclerView;->access$5900(Landroid/support/v7/widget/RecyclerView;)Landroid/support/v7/widget/RecyclerView$ViewFlinger;
  94. move-result-object p1
  95. invoke-virtual {p1}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  96. goto :goto_1
  97. :cond_4
  98. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->stop()V
  99. :cond_5
  100. :goto_1
  101. return-void
  102. .end method
  103. # virtual methods
  104. .method public findViewByPosition(I)Landroid/view/View;
  105. .locals 1
  106. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  107. iget-object v0, v0, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  108. invoke-virtual {v0, p1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->findViewByPosition(I)Landroid/view/View;
  109. move-result-object p1
  110. return-object p1
  111. .end method
  112. .method public getChildCount()I
  113. .locals 1
  114. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  115. iget-object v0, v0, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  116. invoke-virtual {v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I
  117. move-result v0
  118. return v0
  119. .end method
  120. .method public getChildPosition(Landroid/view/View;)I
  121. .locals 1
  122. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  123. invoke-virtual {v0, p1}, Landroid/support/v7/widget/RecyclerView;->getChildLayoutPosition(Landroid/view/View;)I
  124. move-result p1
  125. return p1
  126. .end method
  127. .method public getLayoutManager()Landroid/support/v7/widget/RecyclerView$LayoutManager;
  128. .locals 1
  129. .annotation build Landroid/support/annotation/Nullable;
  130. .end annotation
  131. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mLayoutManager:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  132. return-object v0
  133. .end method
  134. .method public getTargetPosition()I
  135. .locals 1
  136. iget v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  137. return v0
  138. .end method
  139. .method public instantScrollToPosition(I)V
  140. .locals 1
  141. .annotation runtime Ljava/lang/Deprecated;
  142. .end annotation
  143. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  144. invoke-virtual {v0, p1}, Landroid/support/v7/widget/RecyclerView;->scrollToPosition(I)V
  145. return-void
  146. .end method
  147. .method public isPendingInitialRun()Z
  148. .locals 1
  149. iget-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mPendingInitialRun:Z
  150. return v0
  151. .end method
  152. .method public isRunning()Z
  153. .locals 1
  154. iget-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  155. return v0
  156. .end method
  157. .method protected normalize(Landroid/graphics/PointF;)V
  158. .locals 4
  159. iget v0, p1, Landroid/graphics/PointF;->x:F
  160. mul-float v0, v0, v0
  161. iget v1, p1, Landroid/graphics/PointF;->y:F
  162. mul-float v1, v1, v1
  163. add-float/2addr v0, v1
  164. float-to-double v0, v0
  165. invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
  166. move-result-wide v0
  167. iget v2, p1, Landroid/graphics/PointF;->x:F
  168. float-to-double v2, v2
  169. div-double/2addr v2, v0
  170. double-to-float v2, v2
  171. iput v2, p1, Landroid/graphics/PointF;->x:F
  172. iget v2, p1, Landroid/graphics/PointF;->y:F
  173. float-to-double v2, v2
  174. div-double/2addr v2, v0
  175. double-to-float v0, v2
  176. iput v0, p1, Landroid/graphics/PointF;->y:F
  177. return-void
  178. .end method
  179. .method protected onChildAttachedToWindow(Landroid/view/View;)V
  180. .locals 2
  181. invoke-virtual {p0, p1}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->getChildPosition(Landroid/view/View;)I
  182. move-result v0
  183. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
  184. move-result v1
  185. if-ne v0, v1, :cond_0
  186. iput-object p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  187. :cond_0
  188. return-void
  189. .end method
  190. .method protected abstract onSeekTargetStep(IILandroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;)V
  191. .end method
  192. .method protected abstract onStart()V
  193. .end method
  194. .method protected abstract onStop()V
  195. .end method
  196. .method protected abstract onTargetFound(Landroid/view/View;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/RecyclerView$SmoothScroller$Action;)V
  197. .end method
  198. .method public setTargetPosition(I)V
  199. .locals 0
  200. iput p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  201. return-void
  202. .end method
  203. .method start(Landroid/support/v7/widget/RecyclerView;Landroid/support/v7/widget/RecyclerView$LayoutManager;)V
  204. .locals 0
  205. iput-object p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  206. iput-object p2, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mLayoutManager:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  207. iget p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  208. const/4 p2, -0x1
  209. if-eq p1, p2, :cond_0
  210. iget-object p2, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  211. iget-object p2, p2, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  212. invoke-static {p2, p1}, Landroid/support/v7/widget/RecyclerView$State;->access$5802(Landroid/support/v7/widget/RecyclerView$State;I)I
  213. const/4 p1, 0x1
  214. iput-boolean p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  215. iput-boolean p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mPendingInitialRun:Z
  216. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
  217. move-result p1
  218. invoke-virtual {p0, p1}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->findViewByPosition(I)Landroid/view/View;
  219. move-result-object p1
  220. iput-object p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  221. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->onStart()V
  222. iget-object p1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  223. invoke-static {p1}, Landroid/support/v7/widget/RecyclerView;->access$5900(Landroid/support/v7/widget/RecyclerView;)Landroid/support/v7/widget/RecyclerView$ViewFlinger;
  224. move-result-object p1
  225. invoke-virtual {p1}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  226. return-void
  227. :cond_0
  228. new-instance p1, Ljava/lang/IllegalArgumentException;
  229. const-string p2, "Invalid target position"
  230. invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  231. throw p1
  232. .end method
  233. .method protected final stop()V
  234. .locals 2
  235. iget-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  236. if-nez v0, :cond_0
  237. return-void
  238. :cond_0
  239. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->onStop()V
  240. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  241. iget-object v0, v0, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  242. const/4 v1, -0x1
  243. invoke-static {v0, v1}, Landroid/support/v7/widget/RecyclerView$State;->access$5802(Landroid/support/v7/widget/RecyclerView$State;I)I
  244. const/4 v0, 0x0
  245. iput-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetView:Landroid/view/View;
  246. iput v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mTargetPosition:I
  247. const/4 v1, 0x0
  248. iput-boolean v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mPendingInitialRun:Z
  249. iput-boolean v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRunning:Z
  250. iget-object v1, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mLayoutManager:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  251. invoke-static {v1, p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->access$6000(Landroid/support/v7/widget/RecyclerView$LayoutManager;Landroid/support/v7/widget/RecyclerView$SmoothScroller;)V
  252. iput-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mLayoutManager:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  253. iput-object v0, p0, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->mRecyclerView:Landroid/support/v7/widget/RecyclerView;
  254. return-void
  255. .end method