RecyclerView$ViewFlinger.smali 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. .class Landroid/support/v7/widget/RecyclerView$ViewFlinger;
  2. .super Ljava/lang/Object;
  3. .source ""
  4. # interfaces
  5. .implements Ljava/lang/Runnable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingClass;
  8. value = Landroid/support/v7/widget/RecyclerView;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x2
  12. name = "ViewFlinger"
  13. .end annotation
  14. # instance fields
  15. .field private mEatRunOnAnimationRequest:Z
  16. .field private mInterpolator:Landroid/view/animation/Interpolator;
  17. .field private mLastFlingX:I
  18. .field private mLastFlingY:I
  19. .field private mReSchedulePostAnimationCallback:Z
  20. .field private mScroller:Landroid/support/v4/widget/ScrollerCompat;
  21. .field final synthetic this$0:Landroid/support/v7/widget/RecyclerView;
  22. # direct methods
  23. .method public constructor <init>(Landroid/support/v7/widget/RecyclerView;)V
  24. .locals 1
  25. iput-object p1, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  26. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  27. invoke-static {}, Landroid/support/v7/widget/RecyclerView;->access$3000()Landroid/view/animation/Interpolator;
  28. move-result-object v0
  29. iput-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mInterpolator:Landroid/view/animation/Interpolator;
  30. const/4 v0, 0x0
  31. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mEatRunOnAnimationRequest:Z
  32. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mReSchedulePostAnimationCallback:Z
  33. invoke-virtual {p1}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context;
  34. move-result-object p1
  35. invoke-static {}, Landroid/support/v7/widget/RecyclerView;->access$3000()Landroid/view/animation/Interpolator;
  36. move-result-object v0
  37. invoke-static {p1, v0}, Landroid/support/v4/widget/ScrollerCompat;->create(Landroid/content/Context;Landroid/view/animation/Interpolator;)Landroid/support/v4/widget/ScrollerCompat;
  38. move-result-object p1
  39. iput-object p1, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  40. return-void
  41. .end method
  42. .method private computeScrollDuration(IIII)I
  43. .locals 4
  44. invoke-static {p1}, Ljava/lang/Math;->abs(I)I
  45. move-result v0
  46. invoke-static {p2}, Ljava/lang/Math;->abs(I)I
  47. move-result v1
  48. if-le v0, v1, :cond_0
  49. const/4 v2, 0x1
  50. goto :goto_0
  51. :cond_0
  52. const/4 v2, 0x0
  53. :goto_0
  54. mul-int p3, p3, p3
  55. mul-int p4, p4, p4
  56. add-int/2addr p3, p4
  57. int-to-double p3, p3
  58. invoke-static {p3, p4}, Ljava/lang/Math;->sqrt(D)D
  59. move-result-wide p3
  60. double-to-int p3, p3
  61. mul-int p1, p1, p1
  62. mul-int p2, p2, p2
  63. add-int/2addr p1, p2
  64. int-to-double p1, p1
  65. invoke-static {p1, p2}, Ljava/lang/Math;->sqrt(D)D
  66. move-result-wide p1
  67. double-to-int p1, p1
  68. iget-object p2, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  69. if-eqz v2, :cond_1
  70. invoke-virtual {p2}, Landroid/view/ViewGroup;->getWidth()I
  71. move-result p2
  72. goto :goto_1
  73. :cond_1
  74. invoke-virtual {p2}, Landroid/view/ViewGroup;->getHeight()I
  75. move-result p2
  76. :goto_1
  77. div-int/lit8 p4, p2, 0x2
  78. int-to-float p1, p1
  79. const/high16 v3, 0x3f800000 # 1.0f
  80. mul-float p1, p1, v3
  81. int-to-float p2, p2
  82. div-float/2addr p1, p2
  83. invoke-static {v3, p1}, Ljava/lang/Math;->min(FF)F
  84. move-result p1
  85. int-to-float p4, p4
  86. invoke-direct {p0, p1}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->distanceInfluenceForSnapDuration(F)F
  87. move-result p1
  88. mul-float p1, p1, p4
  89. add-float/2addr p4, p1
  90. if-lez p3, :cond_2
  91. const/high16 p1, 0x447a0000 # 1000.0f
  92. int-to-float p2, p3
  93. div-float/2addr p4, p2
  94. invoke-static {p4}, Ljava/lang/Math;->abs(F)F
  95. move-result p2
  96. mul-float p2, p2, p1
  97. invoke-static {p2}, Ljava/lang/Math;->round(F)I
  98. move-result p1
  99. mul-int/lit8 p1, p1, 0x4
  100. goto :goto_3
  101. :cond_2
  102. if-eqz v2, :cond_3
  103. goto :goto_2
  104. :cond_3
  105. move v0, v1
  106. :goto_2
  107. int-to-float p1, v0
  108. div-float/2addr p1, p2
  109. add-float/2addr p1, v3
  110. const/high16 p2, 0x43960000 # 300.0f
  111. mul-float p1, p1, p2
  112. float-to-int p1, p1
  113. :goto_3
  114. const/16 p2, 0x7d0
  115. invoke-static {p1, p2}, Ljava/lang/Math;->min(II)I
  116. move-result p1
  117. return p1
  118. .end method
  119. .method private disableRunOnAnimationRequests()V
  120. .locals 1
  121. const/4 v0, 0x0
  122. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mReSchedulePostAnimationCallback:Z
  123. const/4 v0, 0x1
  124. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mEatRunOnAnimationRequest:Z
  125. return-void
  126. .end method
  127. .method private distanceInfluenceForSnapDuration(F)F
  128. .locals 4
  129. const/high16 v0, 0x3f000000 # 0.5f
  130. sub-float/2addr p1, v0
  131. float-to-double v0, p1
  132. const-wide v2, 0x3fde28c7460698c7L # 0.4712389167638204
  133. mul-double v0, v0, v2
  134. double-to-float p1, v0
  135. float-to-double v0, p1
  136. invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D
  137. move-result-wide v0
  138. double-to-float p1, v0
  139. return p1
  140. .end method
  141. .method private enableRunOnAnimationRequests()V
  142. .locals 1
  143. const/4 v0, 0x0
  144. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mEatRunOnAnimationRequest:Z
  145. iget-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mReSchedulePostAnimationCallback:Z
  146. if-eqz v0, :cond_0
  147. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  148. :cond_0
  149. return-void
  150. .end method
  151. # virtual methods
  152. .method public fling(II)V
  153. .locals 10
  154. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  155. const/4 v1, 0x2
  156. invoke-static {v0, v1}, Landroid/support/v7/widget/RecyclerView;->access$3900(Landroid/support/v7/widget/RecyclerView;I)V
  157. const/4 v0, 0x0
  158. iput v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingY:I
  159. iput v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingX:I
  160. iget-object v1, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  161. const/4 v2, 0x0
  162. const/4 v3, 0x0
  163. const/high16 v6, -0x80000000
  164. const v7, 0x7fffffff
  165. const/high16 v8, -0x80000000
  166. const v9, 0x7fffffff
  167. move v4, p1
  168. move v5, p2
  169. invoke-virtual/range {v1 .. v9}, Landroid/support/v4/widget/ScrollerCompat;->fling(IIIIIIII)V
  170. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  171. return-void
  172. .end method
  173. .method postOnAnimation()V
  174. .locals 1
  175. iget-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mEatRunOnAnimationRequest:Z
  176. if-eqz v0, :cond_0
  177. const/4 v0, 0x1
  178. iput-boolean v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mReSchedulePostAnimationCallback:Z
  179. goto :goto_0
  180. :cond_0
  181. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  182. invoke-virtual {v0, p0}, Landroid/view/ViewGroup;->removeCallbacks(Ljava/lang/Runnable;)Z
  183. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  184. invoke-static {v0, p0}, Landroid/support/v4/view/ViewCompat;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V
  185. :goto_0
  186. return-void
  187. .end method
  188. .method public run()V
  189. .locals 17
  190. move-object/from16 v0, p0
  191. iget-object v1, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  192. iget-object v1, v1, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  193. if-nez v1, :cond_0
  194. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->stop()V
  195. return-void
  196. :cond_0
  197. invoke-direct/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->disableRunOnAnimationRequests()V
  198. iget-object v1, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  199. invoke-static {v1}, Landroid/support/v7/widget/RecyclerView;->access$400(Landroid/support/v7/widget/RecyclerView;)V
  200. iget-object v1, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  201. iget-object v2, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  202. iget-object v2, v2, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  203. iget-object v2, v2, Landroid/support/v7/widget/RecyclerView$LayoutManager;->mSmoothScroller:Landroid/support/v7/widget/RecyclerView$SmoothScroller;
  204. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->computeScrollOffset()Z
  205. move-result v3
  206. const/4 v4, 0x0
  207. if-eqz v3, :cond_1c
  208. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I
  209. move-result v3
  210. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I
  211. move-result v5
  212. iget v6, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingX:I
  213. sub-int v6, v3, v6
  214. iget v7, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingY:I
  215. sub-int v7, v5, v7
  216. iput v3, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingX:I
  217. iput v5, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingY:I
  218. iget-object v8, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  219. invoke-static {v8}, Landroid/support/v7/widget/RecyclerView;->access$3100(Landroid/support/v7/widget/RecyclerView;)Landroid/support/v7/widget/RecyclerView$Adapter;
  220. move-result-object v8
  221. const/4 v9, 0x1
  222. if-eqz v8, :cond_5
  223. iget-object v8, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  224. invoke-virtual {v8}, Landroid/support/v7/widget/RecyclerView;->eatRequestLayout()V
  225. iget-object v8, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  226. invoke-static {v8}, Landroid/support/v7/widget/RecyclerView;->access$3200(Landroid/support/v7/widget/RecyclerView;)V
  227. const-string v8, "RV Scroll"
  228. invoke-static {v8}, Landroid/support/v4/os/TraceCompat;->beginSection(Ljava/lang/String;)V
  229. if-eqz v6, :cond_1
  230. iget-object v8, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  231. iget-object v10, v8, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  232. iget-object v11, v8, Landroid/support/v7/widget/RecyclerView;->mRecycler:Landroid/support/v7/widget/RecyclerView$Recycler;
  233. iget-object v8, v8, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  234. invoke-virtual {v10, v6, v11, v8}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->scrollHorizontallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  235. move-result v8
  236. sub-int v10, v6, v8
  237. goto :goto_0
  238. :cond_1
  239. const/4 v8, 0x0
  240. const/4 v10, 0x0
  241. :goto_0
  242. if-eqz v7, :cond_2
  243. iget-object v11, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  244. iget-object v12, v11, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  245. iget-object v13, v11, Landroid/support/v7/widget/RecyclerView;->mRecycler:Landroid/support/v7/widget/RecyclerView$Recycler;
  246. iget-object v11, v11, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  247. invoke-virtual {v12, v7, v13, v11}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->scrollVerticallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  248. move-result v11
  249. sub-int v12, v7, v11
  250. goto :goto_1
  251. :cond_2
  252. const/4 v11, 0x0
  253. const/4 v12, 0x0
  254. :goto_1
  255. invoke-static {}, Landroid/support/v4/os/TraceCompat;->endSection()V
  256. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  257. invoke-static {v13}, Landroid/support/v7/widget/RecyclerView;->access$3300(Landroid/support/v7/widget/RecyclerView;)V
  258. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  259. invoke-static {v13}, Landroid/support/v7/widget/RecyclerView;->access$3400(Landroid/support/v7/widget/RecyclerView;)V
  260. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  261. invoke-virtual {v13, v4}, Landroid/support/v7/widget/RecyclerView;->resumeRequestLayout(Z)V
  262. if-eqz v2, :cond_6
  263. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->isPendingInitialRun()Z
  264. move-result v13
  265. if-nez v13, :cond_6
  266. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->isRunning()Z
  267. move-result v13
  268. if-eqz v13, :cond_6
  269. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  270. iget-object v13, v13, Landroid/support/v7/widget/RecyclerView;->mState:Landroid/support/v7/widget/RecyclerView$State;
  271. invoke-virtual {v13}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  272. move-result v13
  273. if-nez v13, :cond_3
  274. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->stop()V
  275. goto :goto_2
  276. :cond_3
  277. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
  278. move-result v14
  279. if-lt v14, v13, :cond_4
  280. sub-int/2addr v13, v9
  281. invoke-virtual {v2, v13}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->setTargetPosition(I)V
  282. :cond_4
  283. sub-int v13, v6, v10
  284. sub-int v14, v7, v12
  285. invoke-static {v2, v13, v14}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->access$3500(Landroid/support/v7/widget/RecyclerView$SmoothScroller;II)V
  286. goto :goto_2
  287. :cond_5
  288. const/4 v8, 0x0
  289. const/4 v10, 0x0
  290. const/4 v11, 0x0
  291. const/4 v12, 0x0
  292. :cond_6
  293. :goto_2
  294. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  295. invoke-static {v13}, Landroid/support/v7/widget/RecyclerView;->access$3600(Landroid/support/v7/widget/RecyclerView;)Ljava/util/ArrayList;
  296. move-result-object v13
  297. invoke-virtual {v13}, Ljava/util/ArrayList;->isEmpty()Z
  298. move-result v13
  299. if-nez v13, :cond_7
  300. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  301. invoke-virtual {v13}, Landroid/view/ViewGroup;->invalidate()V
  302. :cond_7
  303. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  304. invoke-static {v13}, Landroid/support/v4/view/ViewCompat;->getOverScrollMode(Landroid/view/View;)I
  305. move-result v13
  306. const/4 v14, 0x2
  307. if-eq v13, v14, :cond_8
  308. iget-object v13, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  309. invoke-static {v13, v6, v7}, Landroid/support/v7/widget/RecyclerView;->access$3700(Landroid/support/v7/widget/RecyclerView;II)V
  310. :cond_8
  311. if-nez v10, :cond_9
  312. if-eqz v12, :cond_11
  313. :cond_9
  314. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->getCurrVelocity()F
  315. move-result v13
  316. float-to-int v13, v13
  317. if-eq v10, v3, :cond_b
  318. if-gez v10, :cond_a
  319. neg-int v15, v13
  320. goto :goto_3
  321. :cond_a
  322. if-lez v10, :cond_b
  323. move v15, v13
  324. goto :goto_3
  325. :cond_b
  326. const/4 v15, 0x0
  327. :goto_3
  328. if-eq v12, v5, :cond_d
  329. if-gez v12, :cond_c
  330. neg-int v13, v13
  331. goto :goto_4
  332. :cond_c
  333. if-lez v12, :cond_d
  334. goto :goto_4
  335. :cond_d
  336. const/4 v13, 0x0
  337. :goto_4
  338. iget-object v9, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  339. invoke-static {v9}, Landroid/support/v4/view/ViewCompat;->getOverScrollMode(Landroid/view/View;)I
  340. move-result v9
  341. if-eq v9, v14, :cond_e
  342. iget-object v9, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  343. invoke-virtual {v9, v15, v13}, Landroid/support/v7/widget/RecyclerView;->absorbGlows(II)V
  344. :cond_e
  345. if-nez v15, :cond_f
  346. if-eq v10, v3, :cond_f
  347. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->getFinalX()I
  348. move-result v3
  349. if-nez v3, :cond_11
  350. :cond_f
  351. if-nez v13, :cond_10
  352. if-eq v12, v5, :cond_10
  353. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->getFinalY()I
  354. move-result v3
  355. if-nez v3, :cond_11
  356. :cond_10
  357. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V
  358. :cond_11
  359. if-nez v8, :cond_12
  360. if-eqz v11, :cond_13
  361. :cond_12
  362. iget-object v3, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  363. invoke-virtual {v3, v8, v11}, Landroid/support/v7/widget/RecyclerView;->dispatchOnScrolled(II)V
  364. :cond_13
  365. iget-object v3, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  366. invoke-static {v3}, Landroid/support/v7/widget/RecyclerView;->access$3800(Landroid/support/v7/widget/RecyclerView;)Z
  367. move-result v3
  368. if-nez v3, :cond_14
  369. iget-object v3, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  370. invoke-virtual {v3}, Landroid/view/ViewGroup;->invalidate()V
  371. :cond_14
  372. if-eqz v7, :cond_15
  373. iget-object v3, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  374. iget-object v3, v3, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  375. invoke-virtual {v3}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
  376. move-result v3
  377. if-eqz v3, :cond_15
  378. if-ne v11, v7, :cond_15
  379. const/4 v3, 0x1
  380. goto :goto_5
  381. :cond_15
  382. const/4 v3, 0x0
  383. :goto_5
  384. if-eqz v6, :cond_16
  385. iget-object v5, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  386. iget-object v5, v5, Landroid/support/v7/widget/RecyclerView;->mLayout:Landroid/support/v7/widget/RecyclerView$LayoutManager;
  387. invoke-virtual {v5}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
  388. move-result v5
  389. if-eqz v5, :cond_16
  390. if-ne v8, v6, :cond_16
  391. const/4 v5, 0x1
  392. goto :goto_6
  393. :cond_16
  394. const/4 v5, 0x0
  395. :goto_6
  396. if-nez v6, :cond_17
  397. if-eqz v7, :cond_19
  398. :cond_17
  399. if-nez v5, :cond_19
  400. if-eqz v3, :cond_18
  401. goto :goto_7
  402. :cond_18
  403. const/16 v16, 0x0
  404. goto :goto_8
  405. :cond_19
  406. :goto_7
  407. const/16 v16, 0x1
  408. :goto_8
  409. invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->isFinished()Z
  410. move-result v1
  411. if-nez v1, :cond_1b
  412. if-nez v16, :cond_1a
  413. goto :goto_9
  414. :cond_1a
  415. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  416. goto :goto_a
  417. :cond_1b
  418. :goto_9
  419. iget-object v1, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  420. invoke-static {v1, v4}, Landroid/support/v7/widget/RecyclerView;->access$3900(Landroid/support/v7/widget/RecyclerView;I)V
  421. :cond_1c
  422. :goto_a
  423. if-eqz v2, :cond_1e
  424. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->isPendingInitialRun()Z
  425. move-result v1
  426. if-eqz v1, :cond_1d
  427. invoke-static {v2, v4, v4}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->access$3500(Landroid/support/v7/widget/RecyclerView$SmoothScroller;II)V
  428. :cond_1d
  429. iget-boolean v1, v0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mReSchedulePostAnimationCallback:Z
  430. if-nez v1, :cond_1e
  431. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$SmoothScroller;->stop()V
  432. :cond_1e
  433. invoke-direct/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->enableRunOnAnimationRequests()V
  434. return-void
  435. .end method
  436. .method public smoothScrollBy(II)V
  437. .locals 1
  438. const/4 v0, 0x0
  439. invoke-virtual {p0, p1, p2, v0, v0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->smoothScrollBy(IIII)V
  440. return-void
  441. .end method
  442. .method public smoothScrollBy(III)V
  443. .locals 1
  444. invoke-static {}, Landroid/support/v7/widget/RecyclerView;->access$3000()Landroid/view/animation/Interpolator;
  445. move-result-object v0
  446. invoke-virtual {p0, p1, p2, p3, v0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->smoothScrollBy(IIILandroid/view/animation/Interpolator;)V
  447. return-void
  448. .end method
  449. .method public smoothScrollBy(IIII)V
  450. .locals 0
  451. invoke-direct {p0, p1, p2, p3, p4}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->computeScrollDuration(IIII)I
  452. move-result p3
  453. invoke-virtual {p0, p1, p2, p3}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->smoothScrollBy(III)V
  454. return-void
  455. .end method
  456. .method public smoothScrollBy(IIILandroid/view/animation/Interpolator;)V
  457. .locals 6
  458. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mInterpolator:Landroid/view/animation/Interpolator;
  459. if-eq v0, p4, :cond_0
  460. iput-object p4, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mInterpolator:Landroid/view/animation/Interpolator;
  461. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  462. invoke-virtual {v0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context;
  463. move-result-object v0
  464. invoke-static {v0, p4}, Landroid/support/v4/widget/ScrollerCompat;->create(Landroid/content/Context;Landroid/view/animation/Interpolator;)Landroid/support/v4/widget/ScrollerCompat;
  465. move-result-object p4
  466. iput-object p4, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  467. :cond_0
  468. iget-object p4, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  469. const/4 v0, 0x2
  470. invoke-static {p4, v0}, Landroid/support/v7/widget/RecyclerView;->access$3900(Landroid/support/v7/widget/RecyclerView;I)V
  471. const/4 p4, 0x0
  472. iput p4, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingY:I
  473. iput p4, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mLastFlingX:I
  474. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  475. const/4 v1, 0x0
  476. const/4 v2, 0x0
  477. move v3, p1
  478. move v4, p2
  479. move v5, p3
  480. invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ScrollerCompat;->startScroll(IIIII)V
  481. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->postOnAnimation()V
  482. return-void
  483. .end method
  484. .method public stop()V
  485. .locals 1
  486. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->this$0:Landroid/support/v7/widget/RecyclerView;
  487. invoke-virtual {v0, p0}, Landroid/view/ViewGroup;->removeCallbacks(Ljava/lang/Runnable;)Z
  488. iget-object v0, p0, Landroid/support/v7/widget/RecyclerView$ViewFlinger;->mScroller:Landroid/support/v4/widget/ScrollerCompat;
  489. invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V
  490. return-void
  491. .end method