.class public Landroid/support/v7/widget/LinearLayoutManager; .super Landroid/support/v7/widget/RecyclerView$LayoutManager; .source "" # interfaces .implements Landroid/support/v7/widget/helper/ItemTouchHelper$ViewDropHandler; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;, Landroid/support/v7/widget/LinearLayoutManager$SavedState;, Landroid/support/v7/widget/LinearLayoutManager$LayoutState; } .end annotation # static fields .field private static final DEBUG:Z = false .field public static final HORIZONTAL:I = 0x0 .field public static final INVALID_OFFSET:I = -0x80000000 .field private static final MAX_SCROLL_FACTOR:F = 0.33333334f .field private static final TAG:Ljava/lang/String; = "LinearLayoutManager" .field public static final VERTICAL:I = 0x1 # instance fields .field final mAnchorInfo:Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo; .field private mLastStackFromEnd:Z .field private mLayoutState:Landroid/support/v7/widget/LinearLayoutManager$LayoutState; .field mOrientation:I .field mOrientationHelper:Landroid/support/v7/widget/OrientationHelper; .field mPendingSavedState:Landroid/support/v7/widget/LinearLayoutManager$SavedState; .field mPendingScrollPosition:I .field mPendingScrollPositionOffset:I .field private mRecycleChildrenOnDetach:Z .field private mReverseLayout:Z .field mShouldReverseLayout:Z .field private mSmoothScrollbarEnabled:Z .field private mStackFromEnd:Z # direct methods .method public constructor (Landroid/content/Context;)V .locals 2 const/4 v0, 0x1 const/4 v1, 0x0 invoke-direct {p0, p1, v0, v1}, Landroid/support/v7/widget/LinearLayoutManager;->(Landroid/content/Context;IZ)V return-void .end method .method public constructor (Landroid/content/Context;IZ)V .locals 1 invoke-direct {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->()V const/4 p1, 0x0 iput-boolean p1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mReverseLayout:Z iput-boolean p1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z iput-boolean p1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mStackFromEnd:Z const/4 p1, 0x1 iput-boolean p1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z const/4 v0, -0x1 iput v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingScrollPosition:I const/high16 v0, -0x80000000 iput v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingScrollPositionOffset:I const/4 v0, 0x0 iput-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingSavedState:Landroid/support/v7/widget/LinearLayoutManager$SavedState; new-instance v0, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo; invoke-direct {v0, p0}, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->(Landroid/support/v7/widget/LinearLayoutManager;)V iput-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mAnchorInfo:Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo; invoke-virtual {p0, p2}, Landroid/support/v7/widget/LinearLayoutManager;->setOrientation(I)V invoke-virtual {p0, p3}, Landroid/support/v7/widget/LinearLayoutManager;->setReverseLayout(Z)V invoke-virtual {p0, p1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->setAutoMeasureEnabled(Z)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;II)V .locals 2 invoke-direct {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->()V const/4 v0, 0x0 iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mReverseLayout:Z iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mStackFromEnd:Z const/4 v0, 0x1 iput-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z const/4 v1, -0x1 iput v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingScrollPosition:I const/high16 v1, -0x80000000 iput v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingScrollPositionOffset:I const/4 v1, 0x0 iput-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingSavedState:Landroid/support/v7/widget/LinearLayoutManager$SavedState; new-instance v1, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo; invoke-direct {v1, p0}, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->(Landroid/support/v7/widget/LinearLayoutManager;)V iput-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mAnchorInfo:Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo; invoke-static {p1, p2, p3, p4}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getProperties(Landroid/content/Context;Landroid/util/AttributeSet;II)Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties; move-result-object p1 iget p2, p1, Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties;->orientation:I invoke-virtual {p0, p2}, Landroid/support/v7/widget/LinearLayoutManager;->setOrientation(I)V iget-boolean p2, p1, Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties;->reverseLayout:Z invoke-virtual {p0, p2}, Landroid/support/v7/widget/LinearLayoutManager;->setReverseLayout(Z)V iget-boolean p1, p1, Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties;->stackFromEnd:Z invoke-virtual {p0, p1}, Landroid/support/v7/widget/LinearLayoutManager;->setStackFromEnd(Z)V invoke-virtual {p0, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->setAutoMeasureEnabled(Z)V return-void .end method .method private computeScrollExtent(Landroid/support/v7/widget/RecyclerView$State;)I .locals 6 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v0 if-nez v0, :cond_0 const/4 p1, 0x0 return p1 :cond_0 invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->ensureLayoutState()V iget-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper; iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z const/4 v2, 0x1 xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToStart(ZZ)Landroid/view/View; move-result-object v3 iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToEnd(ZZ)Landroid/view/View; move-result-object v4 iget-boolean v5, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z move-object v0, p1 move-object v2, v3 move-object v3, v4 move-object v4, p0 invoke-static/range {v0 .. v5}, Landroid/support/v7/widget/ScrollbarHelper;->computeScrollExtent(Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/OrientationHelper;Landroid/view/View;Landroid/view/View;Landroid/support/v7/widget/RecyclerView$LayoutManager;Z)I move-result p1 return p1 .end method .method private computeScrollOffset(Landroid/support/v7/widget/RecyclerView$State;)I .locals 7 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v0 if-nez v0, :cond_0 const/4 p1, 0x0 return p1 :cond_0 invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->ensureLayoutState()V iget-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper; iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z const/4 v2, 0x1 xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToStart(ZZ)Landroid/view/View; move-result-object v3 iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToEnd(ZZ)Landroid/view/View; move-result-object v4 iget-boolean v5, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z iget-boolean v6, p0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z move-object v0, p1 move-object v2, v3 move-object v3, v4 move-object v4, p0 invoke-static/range {v0 .. v6}, Landroid/support/v7/widget/ScrollbarHelper;->computeScrollOffset(Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/OrientationHelper;Landroid/view/View;Landroid/view/View;Landroid/support/v7/widget/RecyclerView$LayoutManager;ZZ)I move-result p1 return p1 .end method .method private computeScrollRange(Landroid/support/v7/widget/RecyclerView$State;)I .locals 6 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v0 if-nez v0, :cond_0 const/4 p1, 0x0 return p1 :cond_0 invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->ensureLayoutState()V iget-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper; iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z const/4 v2, 0x1 xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToStart(ZZ)Landroid/view/View; move-result-object v3 iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z xor-int/2addr v0, v2 invoke-direct {p0, v0, v2}, Landroid/support/v7/widget/LinearLayoutManager;->findFirstVisibleChildClosestToEnd(ZZ)Landroid/view/View; move-result-object v4 iget-boolean v5, p0, Landroid/support/v7/widget/LinearLayoutManager;->mSmoothScrollbarEnabled:Z move-object v0, p1 move-object v2, v3 move-object v3, v4 move-object v4, p0 invoke-static/range {v0 .. v5}, Landroid/support/v7/widget/ScrollbarHelper;->computeScrollRange(Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/OrientationHelper;Landroid/view/View;Landroid/view/View;Landroid/support/v7/widget/RecyclerView$LayoutManager;Z)I move-result p1 return p1 .end method .method private findFirstReferenceChild(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)Landroid/view/View; .locals 6 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v4 invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I move-result v5 const/4 v3, 0x0 move-object v0, p0 move-object v1, p1 move-object v2, p2 invoke-virtual/range {v0 .. v5}, Landroid/support/v7/widget/LinearLayoutManager;->findReferenceChild(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;III)Landroid/view/View; move-result-object p1 return-object p1 .end method .method private findFirstVisibleChildClosestToEnd(ZZ)Landroid/view/View; .locals 2 iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z if-eqz v0, :cond_0 const/4 v0, 0x0 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v1 :goto_0 invoke-virtual {p0, v0, v1, p1, p2}, Landroid/support/v7/widget/LinearLayoutManager;->findOneVisibleChild(IIZZ)Landroid/view/View; move-result-object p1 return-object p1 :cond_0 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, -0x1 goto :goto_0 .end method .method private findFirstVisibleChildClosestToStart(ZZ)Landroid/view/View; .locals 2 iget-boolean v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z if-eqz v0, :cond_0 invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, -0x1 :goto_0 invoke-virtual {p0, v0, v1, p1, p2}, Landroid/support/v7/widget/LinearLayoutManager;->findOneVisibleChild(IIZZ)Landroid/view/View; move-result-object p1 return-object p1 :cond_0 const/4 v0, 0x0 invoke-virtua