.class public Landroid/support/v4/widget/NestedScrollView; .super Landroid/widget/FrameLayout; .source "NestedScrollView.java" # interfaces .implements Landroid/support/v4/view/NestedScrollingParent; .implements Landroid/support/v4/view/NestedScrollingChild; .implements Landroid/support/v4/view/ScrollingView; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate;, Landroid/support/v4/widget/NestedScrollView$SavedState;, Landroid/support/v4/widget/NestedScrollView$OnScrollChangeListener; } .end annotation # static fields .field private static final ACCESSIBILITY_DELEGATE:Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate; .field static final ANIMATED_SCROLL_GAP:I = 0xfa .field private static final INVALID_POINTER:I = -0x1 .field static final MAX_SCROLL_FACTOR:F = 0.5f .field private static final SCROLLVIEW_STYLEABLE:[I .field private static final TAG:Ljava/lang/String; = "NestedScrollView" # instance fields .field private mActivePointerId:I .field private final mChildHelper:Landroid/support/v4/view/NestedScrollingChildHelper; .field private mChildToScrollTo:Landroid/view/View; .field private mEdgeGlowBottom:Landroid/support/v4/widget/EdgeEffectCompat; .field private mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; .field private mFillViewport:Z .field private mIsBeingDragged:Z .field private mIsLaidOut:Z .field private mIsLayoutDirty:Z .field private mLastMotionY:I .field private mLastScroll:J .field private mMaximumVelocity:I .field private mMinimumVelocity:I .field private mNestedYOffset:I .field private mOnScrollChangeListener:Landroid/support/v4/widget/NestedScrollView$OnScrollChangeListener; .field private final mParentHelper:Landroid/support/v4/view/NestedScrollingParentHelper; .field private mSavedState:Landroid/support/v4/widget/NestedScrollView$SavedState; .field private final mScrollConsumed:[I .field private final mScrollOffset:[I .field private mScroller:Landroid/support/v4/widget/ScrollerCompat; .field private mSmoothScrollingEnabled:Z .field private final mTempRect:Landroid/graphics/Rect; .field private mTouchSlop:I .field private mVelocityTracker:Landroid/view/VelocityTracker; .field private mVerticalScrollFactor:F # direct methods .method static constructor ()V .locals 3 .prologue .line 167 new-instance v0, Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate; invoke-direct {v0}, Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate;->()V sput-object v0, Landroid/support/v4/widget/NestedScrollView;->ACCESSIBILITY_DELEGATE:Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate; .line 169 const/4 v0, 0x1 new-array v0, v0, [I const/4 v1, 0x0 const v2, 0x101017a aput v2, v0, v1 sput-object v0, Landroid/support/v4/widget/NestedScrollView;->SCROLLVIEW_STYLEABLE:[I return-void .end method .method public constructor (Landroid/content/Context;)V .locals 1 .param p1, "context" # Landroid/content/Context; .prologue .line 181 const/4 v0, 0x0 invoke-direct {p0, p1, v0}, Landroid/support/v4/widget/NestedScrollView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 182 return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .locals 1 .param p1, "context" # Landroid/content/Context; .param p2, "attrs" # Landroid/util/AttributeSet; .prologue .line 185 const/4 v0, 0x0 invoke-direct {p0, p1, p2, v0}, Landroid/support/v4/widget/NestedScrollView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V .line 186 return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V .locals 5 .param p1, "context" # Landroid/content/Context; .param p2, "attrs" # Landroid/util/AttributeSet; .param p3, "defStyleAttr" # I .prologue const/4 v4, 0x2 const/4 v3, 0x1 const/4 v2, 0x0 .line 189 invoke-direct {p0, p1, p2, p3}, Landroid/widget/FrameLayout;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V .line 95 new-instance v1, Landroid/graphics/Rect; invoke-direct {v1}, Landroid/graphics/Rect;->()V iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mTempRect:Landroid/graphics/Rect; .line 109 iput-boolean v3, p0, Landroid/support/v4/widget/NestedScrollView;->mIsLayoutDirty:Z .line 110 iput-boolean v2, p0, Landroid/support/v4/widget/NestedScrollView;->mIsLaidOut:Z .line 117 const/4 v1, 0x0 iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mChildToScrollTo:Landroid/view/View; .line 124 iput-boolean v2, p0, Landroid/support/v4/widget/NestedScrollView;->mIsBeingDragged:Z .line 140 iput-boolean v3, p0, Landroid/support/v4/widget/NestedScrollView;->mSmoothScrollingEnabled:Z .line 150 const/4 v1, -0x1 iput v1, p0, Landroid/support/v4/widget/NestedScrollView;->mActivePointerId:I .line 155 new-array v1, v4, [I iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mScrollOffset:[I .line 156 new-array v1, v4, [I iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mScrollConsumed:[I .line 190 invoke-direct {p0}, Landroid/support/v4/widget/NestedScrollView;->initScrollView()V .line 192 sget-object v1, Landroid/support/v4/widget/NestedScrollView;->SCROLLVIEW_STYLEABLE:[I invoke-virtual {p1, p2, v1, p3, v2}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; move-result-object v0 .line 195 .local v0, "a":Landroid/content/res/TypedArray; invoke-virtual {v0, v2, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v1 invoke-virtual {p0, v1}, Landroid/support/v4/widget/NestedScrollView;->setFillViewport(Z)V .line 197 invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V .line 199 new-instance v1, Landroid/support/v4/view/NestedScrollingParentHelper; invoke-direct {v1, p0}, Landroid/support/v4/view/NestedScrollingParentHelper;->(Landroid/view/ViewGroup;)V iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mParentHelper:Landroid/support/v4/view/NestedScrollingParentHelper; .line 200 new-instance v1, Landroid/support/v4/view/NestedScrollingChildHelper; invoke-direct {v1, p0}, Landroid/support/v4/view/NestedScrollingChildHelper;->(Landroid/view/View;)V iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mChildHelper:Landroid/support/v4/view/NestedScrollingChildHelper; .line 203 invoke-virtual {p0, v3}, Landroid/support/v4/widget/NestedScrollView;->setNestedScrollingEnabled(Z)V .line 205 sget-object v1, Landroid/support/v4/widget/NestedScrollView;->ACCESSIBILITY_DELEGATE:Landroid/support/v4/widget/NestedScrollView$AccessibilityDelegate; invoke-static {p0, v1}, Landroid/support/v4/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroid/support/v4/view/AccessibilityDelegateCompat;)V .line 206 return-void .end method .method static synthetic access$000(Landroid/support/v4/widget/NestedScrollView;)I .locals 1 .param p0, "x0" # Landroid/support/v4/widget/NestedScrollView; .prologue .line 63 invoke-direct {p0}, Landroid/support/v4/widget/NestedScrollView;->getScrollRange()I move-result v0 return v0 .end method .method private canScroll()Z .locals 6 .prologue const/4 v2, 0x0 .line 420 invoke-virtual {p0, v2}, Landroid/support/v4/widget/NestedScrollView;->getChildAt(I)Landroid/view/View; move-result-object v0 .line 421 .local v0, "child":Landroid/view/View; if-eqz v0, :cond_0 .line 422 invoke-virtual {v0}, Landroid/view/View;->getHeight()I move-result v1 .line 423 .local v1, "childHeight":I invoke-virtual {p0}, Landroid/support/v4/widget/NestedScrollView;->getHeight()I move-result v3 invoke-virtual {p0}, Landroid/support/v4/widget/NestedScrollView;->getPaddingTop()I move-result v4 add-int/2addr v4, v1 invoke-virtual {p0}, Landroid/support/v4/widget/NestedScrollView;->getPaddingBottom()I move-result v5 add-int/2addr v4, v5 if-ge v3, v4, :cond_0 const/4 v2, 0x1 .line 425 .end local v1 # "childHeight":I :cond_0 return v2 .end method .method private static clamp(III)I .locals 1 .param p0, "n" # I .param p1, "my" # I .param p2, "child" # I .prologue .line 1793 if-ge p1, p2, :cond_0 if-gez p0, :cond_2 .line 1809 :cond_0 const/4 p0, 0x0 .line 1819 .end local p0 # "n":I :cond_1 :goto_0 return p0 .line 1811 .restart local p0 # "n":I :cond_2 add-int v0, p1, p0 if-le v0, p2, :cond_1 .line 1817 sub-int p0, p2, p1 goto :goto_0 .end method .method private doScrollY(I)V .locals 2 .param p1, "delta" # I .prologue const/4 v1, 0x0 .line 1286 if-eqz p1, :cond_0 .line 1287 iget-boolean v0, p0, Landroid/support/v4/widget/NestedScrollView;->mSmoothScrollingEnabled:Z if-eqz v0, :cond_1 .line 1288 invoke-virtual {p0, v1, p1}, Landroid/support/v4/widget/NestedScrollView;->smoothScrollBy(II)V .line 1293 :cond_0 :goto_0 return-void .line 1290 :cond_1 invoke-virtual {p0, v1, p1}, Landroid/support/v4/widget/NestedScrollView;->scrollBy(II)V goto :goto_0 .end method .method private endDrag()V .locals 1 .prologue .line 1717 const/4 v0, 0x0 iput-boolean v0, p0, Landroid/support/v4/widget/NestedScrollView;->mIsBeingDragged:Z .line 1719 invoke-direct {p0}, Landroid/support/v4/widget/NestedScrollView;->recycleVelocityTracker()V .line 1720 invoke-virtual {p0}, Landroid/support/v4/widget/NestedScrollView;->stopNestedScroll()V .line 1722 iget-object v0, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; if-eqz v0, :cond_0 .line 1723 iget-object v0, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; invoke-virtual {v0}, Landroid/support/v4/widget/EdgeEffectCompat;->onRelease()Z .line 1724 iget-object v0, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowBottom:Landroid/support/v4/widget/EdgeEffectCompat; invoke-virtual {v0}, Landroid/support/v4/widget/EdgeEffectCompat;->onRelease()Z .line 1726 :cond_0 return-void .end method .method private ensureGlows()V .locals 4 .prologue const/4 v3, 0x0 .line 1747 invoke-static {p0}, Landroid/support/v4/view/ViewCompat;->getOverScrollMode(Landroid/view/View;)I move-result v1 const/4 v2, 0x2 if-eq v1, v2, :cond_1 .line 1748 iget-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; if-nez v1, :cond_0 .line 1749 invoke-virtual {p0}, Landroid/support/v4/widget/NestedScrollView;->getContext()Landroid/content/Context; move-result-object v0 .line 1750 .local v0, "context":Landroid/content/Context; new-instance v1, Landroid/support/v4/widget/EdgeEffectCompat; invoke-direct {v1, v0}, Landroid/support/v4/widget/EdgeEffectCompat;->(Landroid/content/Context;)V iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; .line 1751 new-instance v1, Landroid/support/v4/widget/EdgeEffectCompat; invoke-direct {v1, v0}, Landroid/support/v4/widget/EdgeEffectCompat;->(Landroid/content/Context;)V iput-object v1, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowBottom:Landroid/support/v4/widget/EdgeEffectCompat; .line 1757 .end local v0 # "context":Landroid/content/Context; :cond_0 :goto_0 return-void .line 1754 :cond_1 iput-object v3, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowTop:Landroid/support/v4/widget/EdgeEffectCompat; .line 1755 iput-object v3, p0, Landroid/support/v4/widget/NestedScrollView;->mEdgeGlowBottom:Landroid/support/v4/widget/EdgeEffectCompat; goto :goto_0 .end method .method private findFocusableViewInBounds(ZII)Landroid/view/View; .locals 11 .param p1, "topFocus" # Z .param p2, "top" # I .param p3, "bottom" # I .prologue .line 1032 const/4 v10, 0x2 invoke-virtual {p0, v10}, Landroid/support/v4/widget/NestedScrollView;->getFocusables(I)Ljava/util/ArrayList; move-result-object v2 .line 1033 .local v2, "focusables":Ljava/util/List;, "Ljava/util/List;" const/4 v1, 0x0 .line 1042 .local v1, "focusCandidate":Landroid/view/View; const/4 v3, 0x0 .line 104