.class public Landroidx/core/view/NestedScrollingChildHelper; .super Ljava/lang/Object; .source "NestedScrollingChildHelper.java" # instance fields .field private mIsNestedScrollingEnabled:Z .field private mNestedScrollingParentNonTouch:Landroid/view/ViewParent; .field private mNestedScrollingParentTouch:Landroid/view/ViewParent; .field private mTempNestedScrollConsumed:[I .field private final mView:Landroid/view/View; # direct methods .method public constructor (Landroid/view/View;)V .registers 2 .line 56 invoke-direct {p0}, Ljava/lang/Object;->()V .line 57 iput-object p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; return-void .end method .method private getNestedScrollingParentForType(I)Landroid/view/ViewParent; .registers 3 if-eqz p1, :cond_a const/4 v0, 0x1 if-eq p1, v0, :cond_7 const/4 p1, 0x0 return-object p1 .line 387 :cond_7 iget-object p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mNestedScrollingParentNonTouch:Landroid/view/ViewParent; return-object p1 .line 385 :cond_a iget-object p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mNestedScrollingParentTouch:Landroid/view/ViewParent; return-object p1 .end method .method private setNestedScrollingParentForType(ILandroid/view/ViewParent;)V .registers 4 if-eqz p1, :cond_9 const/4 v0, 0x1 if-eq p1, v0, :cond_6 goto :goto_b .line 398 :cond_6 iput-object p2, p0, Landroidx/core/view/NestedScrollingChildHelper;->mNestedScrollingParentNonTouch:Landroid/view/ViewParent; goto :goto_b .line 395 :cond_9 iput-object p2, p0, Landroidx/core/view/NestedScrollingChildHelper;->mNestedScrollingParentTouch:Landroid/view/ViewParent; :goto_b return-void .end method # virtual methods .method public dispatchNestedFling(FFZ)Z .registers 6 .line 327 invoke-virtual {p0}, Landroidx/core/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_14 .line 328 invoke-direct {p0, v1}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object v0 if-eqz v0, :cond_14 .line 330 iget-object v1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0, v1, p1, p2, p3}, Landroidx/core/view/ViewParentCompat;->onNestedFling(Landroid/view/ViewParent;Landroid/view/View;FFZ)Z move-result p1 return p1 :cond_14 return v1 .end method .method public dispatchNestedPreFling(FF)Z .registers 5 .line 347 invoke-virtual {p0}, Landroidx/core/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_14 .line 348 invoke-direct {p0, v1}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object v0 if-eqz v0, :cond_14 .line 350 iget-object v1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0, v1, p1, p2}, Landroidx/core/view/ViewParentCompat;->onNestedPreFling(Landroid/view/ViewParent;Landroid/view/View;FF)Z move-result p1 return p1 :cond_14 return v1 .end method .method public dispatchNestedPreScroll(II[I[I)Z .registers 11 const/4 v5, 0x0 move-object v0, p0 move v1, p1 move v2, p2 move-object v3, p3 move-object v4, p4 .line 264 invoke-virtual/range {v0 .. v5}, Landroidx/core/view/NestedScrollingChildHelper;->dispatchNestedPreScroll(II[I[II)Z move-result p1 return p1 .end method .method public dispatchNestedPreScroll(II[I[II)Z .registers 16 .line 278 invoke-virtual {p0}, Landroidx/core/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_5f .line 279 invoke-direct {p0, p5}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object v2 if-nez v2, :cond_e return v1 :cond_e const/4 v0, 0x1 if-nez p1, :cond_1b if-eqz p2, :cond_14 goto :goto_1b :cond_14 if-eqz p4, :cond_5f .line 310 aput v1, p4, v1 .line 311 aput v1, p4, v0 goto :goto_5f :cond_1b :goto_1b if-eqz p4, :cond_29 .line 288 iget-object v3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-virtual {v3, p4}, Landroid/view/View;->getLocationInWindow([I)V .line 289 aget v3, p4, v1 .line 290 aget v4, p4, v0 move v8, v3 move v9, v4 goto :goto_2b :cond_29 move v8, v1 move v9, v8 :goto_2b if-nez p3, :cond_38 .line 294 iget-object p3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I if-nez p3, :cond_36 const/4 p3, 0x2 .line 295 new-array p3, p3, [I iput-object p3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I .line 297 :cond_36 iget-object p3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mTempNestedScrollConsumed:[I .line 299 :cond_38 aput v1, p3, v1 .line 300 aput v1, p3, v0 .line 301 iget-object v3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; move v4, p1 move v5, p2 move-object v6, p3 move v7, p5 invoke-static/range {v2 .. v7}, Landroidx/core/view/ViewParentCompat;->onNestedPreScroll(Landroid/view/ViewParent;Landroid/view/View;II[II)V if-eqz p4, :cond_56 .line 304 iget-object p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-virtual {p1, p4}, Landroid/view/View;->getLocationInWindow([I)V .line 305 aget p1, p4, v1 sub-int/2addr p1, v8 aput p1, p4, v1 .line 306 aget p1, p4, v0 sub-int/2addr p1, v9 aput p1, p4, v0 .line 308 :cond_56 aget p1, p3, v1 if-nez p1, :cond_5e aget p1, p3, v0 if-eqz p1, :cond_5f :cond_5e move v1, v0 :cond_5f :goto_5f return v1 .end method .method public dispatchNestedScroll(IIII[I)Z .registers 13 const/4 v6, 0x0 move-object v0, p0 move v1, p1 move v2, p2 move v3, p3 move v4, p4 move-object v5, p5 .line 204 invoke-virtual/range {v0 .. v6}, Landroidx/core/view/NestedScrollingChildHelper;->dispatchNestedScroll(IIII[II)Z move-result p1 return p1 .end method .method public dispatchNestedScroll(IIII[II)Z .registers 21 move-object v0, p0 move-object/from16 v1, p5 .line 220 invoke-virtual {p0}, Landroidx/core/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z move-result v2 const/4 v3, 0x0 if-eqz v2, :cond_54 move/from16 v2, p6 .line 221 invoke-direct {p0, v2}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object v4 if-nez v4, :cond_13 return v3 :cond_13 const/4 v11, 0x1 if-nez p1, :cond_24 if-nez p2, :cond_24 if-nez p3, :cond_24 if-eqz p4, :cond_1d goto :goto_24 :cond_1d if-eqz v1, :cond_54 .line 246 aput v3, v1, v3 .line 247 aput v3, v1, v11 goto :goto_54 :cond_24 :goto_24 if-eqz v1, :cond_32 .line 230 iget-object v5, v0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-virtual {v5, v1}, Landroid/view/View;->getLocationInWindow([I)V .line 231 aget v5, v1, v3 .line 232 aget v6, v1, v11 move v12, v5 move v13, v6 goto :goto_34 :cond_32 move v12, v3 move v13, v12 .line 235 :goto_34 iget-object v5, v0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; move v6, p1 move/from16 v7, p2 move/from16 v8, p3 move/from16 v9, p4 move/from16 v10, p6 invoke-static/range {v4 .. v10}, Landroidx/core/view/ViewParentCompat;->onNestedScroll(Landroid/view/ViewParent;Landroid/view/View;IIIII)V if-eqz v1, :cond_53 .line 239 iget-object v2, v0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-virtual {v2, v1}, Landroid/view/View;->getLocationInWindow([I)V .line 240 aget v2, v1, v3 sub-int/2addr v2, v12 aput v2, v1, v3 .line 241 aget v2, v1, v11 sub-int/2addr v2, v13 aput v2, v1, v11 :cond_53 return v11 :cond_54 :goto_54 return v3 .end method .method public hasNestedScrollingParent()Z .registers 2 const/4 v0, 0x0 .line 100 invoke-virtual {p0, v0}, Landroidx/core/view/NestedScrollingChildHelper;->hasNestedScrollingParent(I)Z move-result v0 return v0 .end method .method public hasNestedScrollingParent(I)Z .registers 2 .line 114 invoke-direct {p0, p1}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object p1 if-eqz p1, :cond_8 const/4 p1, 0x1 goto :goto_9 :cond_8 const/4 p1, 0x0 :goto_9 return p1 .end method .method public isNestedScrollingEnabled()Z .registers 2 .line 86 iget-boolean v0, p0, Landroidx/core/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z return v0 .end method .method public onDetachedFromWindow()V .registers 2 .line 366 iget-object v0, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0}, Landroidx/core/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V return-void .end method .method public onStopNestedScroll(Landroid/view/View;)V .registers 2 .line 379 iget-object p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {p1}, Landroidx/core/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V return-void .end method .method public setNestedScrollingEnabled(Z)V .registers 3 .line 70 iget-boolean v0, p0, Landroidx/core/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z if-eqz v0, :cond_9 .line 71 iget-object v0, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0}, Landroidx/core/view/ViewCompat;->stopNestedScroll(Landroid/view/View;)V .line 73 :cond_9 iput-boolean p1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mIsNestedScrollingEnabled:Z return-void .end method .method public startNestedScroll(I)Z .registers 3 const/4 v0, 0x0 .line 129 invoke-virtual {p0, p1, v0}, Landroidx/core/view/NestedScrollingChildHelper;->startNestedScroll(II)Z move-result p1 return p1 .end method .method public startNestedScroll(II)Z .registers 7 .line 145 invoke-virtual {p0, p2}, Landroidx/core/view/NestedScrollingChildHelper;->hasNestedScrollingParent(I)Z move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_8 return v1 .line 149 :cond_8 invoke-virtual {p0}, Landroidx/core/view/NestedScrollingChildHelper;->isNestedScrollingEnabled()Z move-result v0 if-eqz v0, :cond_35 .line 150 iget-object v0, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; move-result-object v0 .line 151 iget-object v2, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; :goto_16 if-eqz v0, :cond_35 .line 153 iget-object v3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0, v2, v3, p1, p2}, Landroidx/core/view/ViewParentCompat;->onStartNestedScroll(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;II)Z move-result v3 if-eqz v3, :cond_29 .line 154 invoke-direct {p0, p2, v0}, Landroidx/core/view/NestedScrollingChildHelper;->setNestedScrollingParentForType(ILandroid/view/ViewParent;)V .line 155 iget-object v3, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0, v2, v3, p1, p2}, Landroidx/core/view/ViewParentCompat;->onNestedScrollAccepted(Landroid/view/ViewParent;Landroid/view/View;Landroid/view/View;II)V return v1 .line 158 :cond_29 instance-of v3, v0, Landroid/view/View; if-eqz v3, :cond_30 .line 159 move-object v2, v0 check-cast v2, Landroid/view/View; .line 161 :cond_30 invoke-interface {v0}, Landroid/view/ViewParent;->getParent()Landroid/view/ViewParent; move-result-object v0 goto :goto_16 :cond_35 const/4 p1, 0x0 return p1 .end method .method public stopNestedScroll()V .registers 2 const/4 v0, 0x0 .line 175 invoke-virtual {p0, v0}, Landroidx/core/view/NestedScrollingChildHelper;->stopNestedScroll(I)V return-void .end method .method public stopNestedScroll(I)V .registers 4 .line 186 invoke-direct {p0, p1}, Landroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent; move-result-object v0 if-eqz v0, :cond_f .line 188 iget-object v1, p0, Landroidx/core/view/NestedScrollingChildHelper;->mView:Landroid/view/View; invoke-static {v0, v1, p1}, Landroidx/core/view/ViewParentCompat;->onStopNestedScroll(Landroid/view/ViewParent;Landroid/view/View;I)V const/4 v0, 0x0 .line 189 invoke-direct {p0, p1, v0}, Landroidx/core/view/NestedScrollingChildHelper;->setNestedScrollingParentForType(ILandroid/view/ViewParent;)V :cond_f return-void .end method