NestedScrollingChildHelper.smali 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. .class public Landroid/support/v4/view/NestedScrollingChildHelper;
  2. .super Ljava/lang/Object;
  3. .source "NestedScrollingChildHelper.java"
  4. # instance fields
  5. .field private mIsNestedScrollingEnabled:Z
  6. .field private mNestedScrollingParent:Landroid/view/ViewParent;
  7. .field private mTempNestedScrollConsumed:[I
  8. .field private final mView:Landroid/view/View;
  9. # direct methods
  10. .method public constructor <init>(Landroid/view/View;)V
  11. .locals 0
  12. .param p1, "view" # Landroid/view/View;
  13. .prologue
  14. .line 46
  15. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  16. .line 47
  17. iput-object p1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  18. .line 48
  19. return-void
  20. .end method
  21. # virtual methods
  22. .method public dispatchNestedFling(FFZ)Z
  23. .locals 2
  24. .param p1, "velocityX" # F
  25. .param p2, "velocityY" # F
  26. .param p3, "consumed" # Z
  27. .prologue
  28. .line 234
  29. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z
  30. move-result v0
  31. if-eqz v0, :cond_0
  32. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  33. if-eqz v0, :cond_0
  34. .line 235
  35. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  36. iget-object v1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  37. invoke-static {v0, v1, p1, p2, p3}, Landroid/support/v4/view/ViewParentCompat;->onNestedFling(Landroid/view/ViewParent;Landroid/view/View;FFZ)Z
  38. move-result v0
  39. .line 238
  40. :goto_0
  41. return v0
  42. :cond_0
  43. const/4 v0, 0x0
  44. goto :goto_0
  45. .end method
  46. .method public dispatchNestedPreFling(FF)Z
  47. .locals 2
  48. .param p1, "velocityX" # F
  49. .param p2, "velocityY" # F
  50. .prologue
  51. .line 251
  52. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z
  53. move-result v0
  54. if-eqz v0, :cond_0
  55. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  56. if-eqz v0, :cond_0
  57. .line 252
  58. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  59. iget-object v1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  60. invoke-static {v0, v1, p1, p2}, Landroid/support/v4/view/ViewParentCompat;->onNestedPreFling(Landroid/view/ViewParent;Landroid/view/View;FF)Z
  61. move-result v0
  62. .line 255
  63. :goto_0
  64. return v0
  65. :cond_0
  66. const/4 v0, 0x0
  67. goto :goto_0
  68. .end method
  69. .method public dispatchNestedPreScroll(II[I[I)Z
  70. .locals 6
  71. .param p1, "dx" # I
  72. .param p2, "dy" # I
  73. .param p3, "consumed" # [I
  74. .param p4, "offsetInWindow" # [I
  75. .prologue
  76. const/4 v3, 0x1
  77. const/4 v2, 0x0
  78. .line 190
  79. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z
  80. move-result v4
  81. if-eqz v4, :cond_6
  82. iget-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  83. if-eqz v4, :cond_6
  84. .line 191
  85. if-nez p1, :cond_0
  86. if-eqz p2, :cond_7
  87. .line 192
  88. :cond_0
  89. const/4 v0, 0x0
  90. .line 193
  91. .local v0, "startX":I
  92. const/4 v1, 0x0
  93. .line 194
  94. .local v1, "startY":I
  95. if-eqz p4, :cond_1
  96. .line 195
  97. iget-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  98. invoke-virtual {v4, p4}, Landroid/view/View;->getLocationInWindow([I)V
  99. .line 196
  100. aget v0, p4, v2
  101. .line 197
  102. aget v1, p4, v3
  103. .line 200
  104. :cond_1
  105. if-nez p3, :cond_3
  106. .line 201
  107. iget-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I
  108. if-nez v4, :cond_2
  109. .line 202
  110. const/4 v4, 0x2
  111. new-array v4, v4, [I
  112. iput-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I
  113. .line 204
  114. :cond_2
  115. iget-object p3, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I
  116. .line 206
  117. :cond_3
  118. aput v2, p3, v2
  119. .line 207
  120. aput v2, p3, v3
  121. .line 208
  122. iget-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  123. iget-object v5, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  124. invoke-static {v4, v5, p1, p2, p3}, Landroid/support/v4/view/ViewParentCompat;->onNestedPreScroll(Landroid/view/ViewParent;Landroid/view/View;II[I)V
  125. .line 210
  126. if-eqz p4, :cond_4
  127. .line 211
  128. iget-object v4, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  129. invoke-virtual {v4, p4}, Landroid/view/View;->getLocationInWindow([I)V
  130. .line 212
  131. aget v4, p4, v2
  132. sub-int/2addr v4, v0
  133. aput v4, p4, v2
  134. .line 213
  135. aget v4, p4, v3
  136. sub-int/2addr v4, v1
  137. aput v4, p4, v3
  138. .line 215
  139. :cond_4
  140. aget v4, p3, v2
  141. if-nez v4, :cond_5
  142. aget v4, p3, v3
  143. if-eqz v4, :cond_6
  144. :cond_5
  145. move v2, v3
  146. .line 221
  147. .end local v0 # "startX":I
  148. .end local v1 # "startY":I
  149. :cond_6
  150. :goto_0
  151. return v2
  152. .line 216
  153. :cond_7
  154. if-eqz p4, :cond_6
  155. .line 217
  156. aput v2, p4, v2
  157. .line 218
  158. aput v2, p4, v3
  159. goto :goto_0
  160. .end method
  161. .method public dispatchNestedScroll(IIII[I)Z
  162. .locals 10
  163. .param p1, "dxConsumed" # I
  164. .param p2, "dyConsumed" # I
  165. .param p3, "dxUnconsumed" # I
  166. .param p4, "dyUnconsumed" # I
  167. .param p5, "offsetInWindow" # [I
  168. .prologue
  169. const/4 v8, 0x1
  170. const/4 v9, 0x0
  171. .line 152
  172. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z
  173. move-result v0
  174. if-eqz v0, :cond_4
  175. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  176. if-eqz v0, :cond_4
  177. .line 153
  178. if-nez p1, :cond_0
  179. if-nez p2, :cond_0
  180. if-nez p3, :cond_0
  181. if-eqz p4, :cond_3
  182. .line 154
  183. :cond_0
  184. const/4 v6, 0x0
  185. .line 155
  186. .local v6, "startX":I
  187. const/4 v7, 0x0
  188. .line 156
  189. .local v7, "startY":I
  190. if-eqz p5, :cond_1
  191. .line 157
  192. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  193. invoke-virtual {v0, p5}, Landroid/view/View;->getLocationInWindow([I)V
  194. .line 158
  195. aget v6, p5, v9
  196. .line 159
  197. aget v7, p5, v8
  198. .line 162
  199. :cond_1
  200. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  201. iget-object v1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  202. move v2, p1
  203. move v3, p2
  204. move v4, p3
  205. move v5, p4
  206. invoke-static/range {v0 .. v5}, Landroid/support/v4/view/ViewParentCompat;->onNestedScroll(Landroid/view/ViewParent;Landroid/view/View;IIII)V
  207. .line 165
  208. if-eqz p5, :cond_2
  209. .line 166
  210. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  211. invoke-virtual {v0, p5}, Landroid/view/View;->getLocationInWindow([I)V
  212. .line 167
  213. aget v0, p5, v9
  214. sub-int/2addr v0, v6
  215. aput v0, p5, v9
  216. .line 168
  217. aget v0, p5, v8
  218. sub-int/2addr v0, v7
  219. aput v0, p5, v8
  220. :cond_2
  221. move v0, v8
  222. .line 177
  223. .end local v6 # "startX":I
  224. .end local v7 # "startY":I
  225. :goto_0
  226. return v0
  227. .line 171
  228. :cond_3
  229. if-eqz p5, :cond_4
  230. .line 173
  231. aput v9, p5, v9
  232. .line 174
  233. aput v9, p5, v8
  234. :cond_4
  235. move v0, v9
  236. .line 177
  237. goto :goto_0
  238. .end method
  239. .method public hasNestedScrollingParent()Z
  240. .locals 1
  241. .prologue
  242. .line 90
  243. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  244. if-eqz v0, :cond_0
  245. const/4 v0, 0x1
  246. :goto_0
  247. return v0
  248. :cond_0
  249. const/4 v0, 0x0
  250. goto :goto_0
  251. .end method
  252. .method public isNestedScrollingEnabled()Z
  253. .locals 1
  254. .prologue
  255. .line 76
  256. iget-boolean v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z
  257. return v0
  258. .end method
  259. .method public onDetachedFromWindow()V
  260. .locals 1
  261. .prologue
  262. .line 267
  263. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  264. invoke-static {v0}, Landroid/support/v4/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V
  265. .line 268
  266. return-void
  267. .end method
  268. .method public onStopNestedScroll(Landroid/view/View;)V
  269. .locals 1
  270. .param p1, "child" # Landroid/view/View;
  271. .prologue
  272. .line 280
  273. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  274. invoke-static {v0}, Landroid/support/v4/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V
  275. .line 281
  276. return-void
  277. .end method
  278. .method public setNestedScrollingEnabled(Z)V
  279. .locals 1
  280. .param p1, "enabled" # Z
  281. .prologue
  282. .line 60
  283. iget-boolean v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z
  284. if-eqz v0, :cond_0
  285. .line 61
  286. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  287. invoke-static {v0}, Landroid/support/v4/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V
  288. .line 63
  289. :cond_0
  290. iput-boolean p1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z
  291. .line 64
  292. return-void
  293. .end method
  294. .method public startNestedScroll(I)Z
  295. .locals 4
  296. .param p1, "axes" # I
  297. .prologue
  298. const/4 v2, 0x1
  299. .line 105
  300. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->hasNestedScrollingParent()Z
  301. move-result v3
  302. if-eqz v3, :cond_0
  303. .line 124
  304. :goto_0
  305. return v2
  306. .line 109
  307. :cond_0
  308. invoke-virtual {p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z
  309. move-result v3
  310. if-eqz v3, :cond_3
  311. .line 110
  312. iget-object v3, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  313. invoke-virtual {v3}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
  314. move-result-object v1
  315. .line 111
  316. .local v1, "p":Landroid/view/ViewParent;
  317. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  318. .line 112
  319. .local v0, "child":Landroid/view/View;
  320. :goto_1
  321. if-eqz v1, :cond_3
  322. .line 113
  323. iget-object v3, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  324. invoke-static {v1, v0, v3, p1}, Landroid/support/v4/view/ViewParentCompat;->onStartNestedScroll(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;I)Z
  325. move-result v3
  326. if-eqz v3, :cond_1
  327. .line 114
  328. iput-object v1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  329. .line 115
  330. iget-object v3, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  331. invoke-static {v1, v0, v3, p1}, Landroid/support/v4/view/ViewParentCompat;->onNestedScrollAccepted(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;I)V
  332. goto :goto_0
  333. .line 118
  334. :cond_1
  335. instance-of v3, v1, Landroid/view/View;
  336. if-eqz v3, :cond_2
  337. move-object v0, v1
  338. .line 119
  339. check-cast v0, Landroid/view/View;
  340. .line 121
  341. :cond_2
  342. invoke-interface {v1}, Landroid/view/ViewParent;->getParent()Landroid/view/ViewParent;
  343. move-result-object v1
  344. goto :goto_1
  345. .line 124
  346. .end local v0 # "child":Landroid/view/View;
  347. .end local v1 # "p":Landroid/view/ViewParent;
  348. :cond_3
  349. const/4 v2, 0x0
  350. goto :goto_0
  351. .end method
  352. .method public stopNestedScroll()V
  353. .locals 2
  354. .prologue
  355. .line 135
  356. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  357. if-eqz v0, :cond_0
  358. .line 136
  359. iget-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  360. iget-object v1, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mView:Landroid/view/View;
  361. invoke-static {v0, v1}, Landroid/support/v4/view/ViewParentCompat;->onStopNestedScroll(Landroid/view/ViewParent;Landroid/view/View;)V
  362. .line 137
  363. const/4 v0, 0x0
  364. iput-object v0, p0, Landroid/support/v4/view/NestedScrollingChildHelper;->mNestedScrollingParent:Landroid/view/ViewParent;
  365. .line 139
  366. :cond_0
  367. return-void
  368. .end method