.class public Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView; .super Landroidx/recyclerview/widget/RecyclerView; .source "PullToRefreshRecyclerView.java" # instance fields .field allowDragBottom:Z .field downY:F .field needConsumeTouch:Z # direct methods .method public constructor (Landroid/content/Context;)V .registers 3 .line 20 invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView;->(Landroid/content/Context;)V const/4 p1, 0x1 .line 15 iput-boolean p1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->allowDragBottom:Z const/4 v0, 0x0 .line 16 iput v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->downY:F .line 17 iput-boolean p1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 3 .line 24 invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V const/4 p1, 0x1 .line 15 iput-boolean p1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->allowDragBottom:Z const/4 p2, 0x0 .line 16 iput p2, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->downY:F .line 17 iput-boolean p1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z return-void .end method # virtual methods .method public dispatchTouchEvent(Landroid/view/MotionEvent;)Z .registers 5 .line 30 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 const/4 v1, 0x0 if-nez v0, :cond_1c .line 31 invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v0 iput v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->downY:F const/4 v0, 0x1 .line 32 iput-boolean v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z .line 33 invoke-virtual {p0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getMyScrollY()I move-result v2 if-nez v2, :cond_19 .line 34 iput-boolean v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->allowDragBottom:Z goto :goto_4a .line 36 :cond_19 iput-boolean v1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->allowDragBottom:Z goto :goto_4a .line 38 :cond_1c invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 const/4 v2, 0x2 if-ne v0, v2, :cond_4a .line 39 iget-boolean v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z if-nez v0, :cond_2f .line 40 invoke-virtual {p0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getParent()Landroid/view/ViewParent; move-result-object p1 invoke-interface {p1, v1}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V return v1 .line 42 :cond_2f iget-boolean v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->allowDragBottom:Z if-eqz v0, :cond_4a .line 43 iget v0, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->downY:F invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v2 sub-float/2addr v0, v2 const/high16 v2, -0x40000000 # -2.0f cmpg-float v0, v0, v2 if-gez v0, :cond_4a .line 44 iput-boolean v1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z .line 45 invoke-virtual {p0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getParent()Landroid/view/ViewParent; move-result-object p1 invoke-interface {p1, v1}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V return v1 .line 50 :cond_4a :goto_4a invoke-virtual {p0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getParent()Landroid/view/ViewParent; move-result-object v0 iget-boolean v1, p0, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->needConsumeTouch:Z invoke-interface {v0, v1}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 51 invoke-super {p0, p1}, Landroidx/recyclerview/widget/RecyclerView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z move-result p1 return p1 .end method .method public getMyScrollY()I .registers 4 const/4 v0, 0x0 .line 55 invoke-virtual {p0, v0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getChildAt(I)Landroid/view/View; move-result-object v1 if-nez v1, :cond_8 return v0 .line 59 :cond_8 invoke-virtual {p0}, Lcom/forum/im/widget/pulltorefresh/PullToRefreshRecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object v0 check-cast v0, Landroidx/recyclerview/widget/LinearLayoutManager; invoke-virtual {v0}, Landroidx/recyclerview/widget/LinearLayoutManager;->findFirstVisibleItemPosition()I move-result v0 .line 60 invoke-virtual {v1}, Landroid/view/View;->getTop()I move-result v2 neg-int v2, v2 .line 61 invoke-virtual {v1}, Landroid/view/View;->getHeight()I move-result v1 mul-int/2addr v0, v1 add-int/2addr v2, v0 return v2 .end method