HeaderBehavior.smali
.class abstract Landroid/support/design/widget/HeaderBehavior;
.super Landroid/support/design/widget/ViewOffsetBehavior;
.source "HeaderBehavior.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroid/support/design/widget/HeaderBehavior$a;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<V:",
"Landroid/view/View;",
">",
"Landroid/support/design/widget/ViewOffsetBehavior",
"<TV;>;"
}
.end annotation
# static fields
.field private static final INVALID_POINTER:I = -0x1
# instance fields
.field private mActivePointerId:I
.field private mFlingRunnable:Ljava/lang/Runnable;
.field private mIsBeingDragged:Z
.field private mLastMotionY:I
.field mScroller:Landroid/widget/OverScroller;
.field private mTouchSlop:I
.field private mVelocityTracker:Landroid/view/VelocityTracker;
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
const/4 v0, -0x1
.line 47
invoke-direct {p0}, Landroid/support/design/widget/ViewOffsetBehavior;-><init>()V
.line 42
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 44
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
.line 47
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.prologue
const/4 v0, -0x1
.line 50
invoke-direct {p0, p1, p2}, Landroid/support/design/widget/ViewOffsetBehavior;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 42
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 44
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
.line 51
return-void
.end method
.method private ensureVelocityTracker()V
.registers 2
.prologue
.line 280
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-nez v0, :cond_a
.line 281
invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker;
move-result-object v0
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
.line 283
:cond_a
return-void
.end method
# virtual methods
.method canDragView(Landroid/view/View;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TV;)Z"
}
.end annotation
.prologue
.line 265
const/4 v0, 0x0
return v0
.end method
.method final fling(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;IIF)Z
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/widget/CoordinatorLayout;",
"TV;IIF)Z"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 228
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mFlingRunnable:Ljava/lang/Runnable;
if-eqz v0, :cond_d
.line 229
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mFlingRunnable:Ljava/lang/Runnable;
invoke-virtual {p2, v0}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
.line 230
const/4 v0, 0x0
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mFlingRunnable:Ljava/lang/Runnable;
.line 233
:cond_d
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mScroller:Landroid/widget/OverScroller;
if-nez v0, :cond_1c
.line 234
new-instance v0, Landroid/widget/OverScroller;
invoke-virtual {p2}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v2
invoke-direct {v0, v2}, Landroid/widget/OverScroller;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mScroller:Landroid/widget/OverScroller;
.line 237
:cond_1c
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mScroller:Landroid/widget/OverScroller;
.line 238
invoke-virtual {p0}, Landroid/support/design/widget/HeaderBehavior;->getTopAndBottomOffset()I
move-result v2
.line 239
invoke-static {p5}, Ljava/lang/Math;->round(F)I
move-result v4
move v3, v1
move v5, v1
move v6, v1
move v7, p3
move v8, p4
.line 237
invoke-virtual/range {v0 .. v8}, Landroid/widget/OverScroller;->fling(IIIIIIII)V
.line 243
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mScroller:Landroid/widget/OverScroller;
invoke-virtual {v0}, Landroid/widget/OverScroller;->computeScrollOffset()Z
move-result v0
if-eqz v0, :cond_44
.line 244
new-instance v0, Landroid/support/design/widget/HeaderBehavior$a;
invoke-direct {v0, p0, p1, p2}, Landroid/support/design/widget/HeaderBehavior$a;-><init>(Landroid/support/design/widget/HeaderBehavior;Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;)V
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mFlingRunnable:Ljava/lang/Runnable;
.line 245
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mFlingRunnable:Ljava/lang/Runnable;
invoke-static {p2, v0}, Landroid/support/v4/view/ViewCompat;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V
.line 246
const/4 v1, 0x1
.line 249
:goto_43
return v1
.line 248
:cond_44
invoke-virtual {p0, p1, p2}, Landroid/support/design/widget/HeaderBehavior;->onFlingFinished(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;)V
goto :goto_43
.end method
.method getMaxDragOffset(Landroid/view/View;)I
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TV;)I"
}
.end annotation
.prologue
.line 272
invoke-virtual {p1}, Landroid/view/View;->getHeight()I
move-result v0
neg-int v0, v0
return v0
.end method
.method getScrollRangeForDragFling(Landroid/view/View;)I
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TV;)I"
}
.end annotation
.prologue
.line 276
invoke-virtual {p1}, Landroid/view/View;->getHeight()I
move-result v0
return v0
.end method
.method getTopBottomOffsetForScrollingSibling()I
.registers 2
.prologue
.line 217
invoke-virtual {p0}, Landroid/support/design/widget/HeaderBehavior;->getTopAndBottomOffset()I
move-result v0
return v0
.end method
.method onFlingFinished(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/widget/CoordinatorLayout;",
"TV;)V"
}
.end annotation
.prologue
.line 259
return-void
.end method
.method public onInterceptTouchEvent(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;Landroid/view/MotionEvent;)Z
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/widget/CoordinatorLayout;",
"TV;",
"Landroid/view/MotionEvent;",
")Z"
}
.end annotation
.prologue
const/4 v0, 0x1
const/4 v4, 0x0
const/4 v3, -0x1
.line 55
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
if-gez v1, :cond_15
.line 56
invoke-virtual {p1}, Landroid/support/design/widget/CoordinatorLayout;->getContext()Landroid/content/Context;
move-result-object v1
invoke-static {v1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
move-result-object v1
invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I
move-result v1
iput v1, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
.line 59
:cond_15
invoke-virtual {p3}, Landroid/view/MotionEvent;->getAction()I
move-result v1
.line 62
const/4 v2, 0x2
if-ne v1, v2, :cond_21
iget-boolean v1, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
if-eqz v1, :cond_21
.line 115
:goto_20
return v0
.line 66
:cond_21
invoke-virtual {p3}, Landroid/view/MotionEvent;->getActionMasked()I
move-result v1
packed-switch v1, :pswitch_data_8a
.line 111
:cond_28
:goto_28
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz v0, :cond_31
.line 112
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
invoke-virtual {v0, p3}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
.line 115
:cond_31
iget-boolean v0, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
goto :goto_20
.line 68
:pswitch_34
iput-boolean v4, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
.line 69
invoke-virtual {p3}, Landroid/view/MotionEvent;->getX()F
move-result v0
float-to-int v0, v0
.line 70
invoke-virtual {p3}, Landroid/view/MotionEvent;->getY()F
move-result v1
float-to-int v1, v1
.line 71
invoke-virtual {p0, p2}, Landroid/support/design/widget/HeaderBehavior;->canDragView(Landroid/view/View;)Z
move-result v2
if-eqz v2, :cond_28
invoke-virtual {p1, p2, v0, v1}, Landroid/support/design/widget/CoordinatorLayout;->isPointInChildBounds(Landroid/view/View;II)Z
move-result v0
if-eqz v0, :cond_28
.line 72
iput v1, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
.line 73
invoke-virtual {p3, v4}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v0
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 74
invoke-direct {p0}, Landroid/support/design/widget/HeaderBehavior;->ensureVelocityTracker()V
goto :goto_28
.line 80
:pswitch_58
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 81
if-eq v1, v3, :cond_28
.line 85
invoke-virtual {p3, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v1
.line 86
if-eq v1, v3, :cond_28
.line 90
invoke-virtual {p3, v1}, Landroid/view/MotionEvent;->getY(I)F
move-result v1
float-to-int v1, v1
.line 91
iget v2, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
sub-int v2, v1, v2
invoke-static {v2}, Ljava/lang/Math;->abs(I)I
move-result v2
.line 92
iget v3, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
if-le v2, v3, :cond_28
.line 93
iput-boolean v0, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
.line 94
iput v1, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
goto :goto_28
.line 101
:pswitch_78
iput-boolean v4, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
.line 102
iput v3, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 103
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz v0, :cond_28
.line 104
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
invoke-virtual {v0}, Landroid/view/VelocityTracker;->recycle()V
.line 105
const/4 v0, 0x0
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
goto :goto_28
.line 66
nop
:pswitch_data_8a
.packed-switch 0x0
:pswitch_34
:pswitch_78
:pswitch_58
:pswitch_78
.end packed-switch
.end method
.method public onTouchEvent(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;Landroid/view/MotionEvent;)Z
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/widget/CoordinatorLayout;",
"TV;",
"Landroid/view/MotionEvent;",
")Z"
}
.end annotation
.prologue
const/4 v7, 0x1
const/4 v8, -0x1
const/4 v5, 0x0
.line 120
iget v0, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
if-gez v0, :cond_15
.line 121
invoke-virtual {p1}, Landroid/support/design/widget/CoordinatorLayout;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
move-result-object v0
invoke-virtual {v0}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I
move-result v0
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
.line 124
:cond_15
invoke-virtual {p3}, Landroid/view/MotionEvent;->getActionMasked()I
move-result v0
packed-switch v0, :pswitch_data_b8
.line 184
:cond_1c
:goto_1c
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz v0, :cond_25
.line 185
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
invoke-virtual {v0, p3}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
:cond_25
move v5, v7
.line 188
:cond_26
return v5
.line 126
:pswitch_27
invoke-virtual {p3}, Landroid/view/MotionEvent;->getX()F
move-result v0
float-to-int v0, v0
.line 127
invoke-virtual {p3}, Landroid/view/MotionEvent;->getY()F
move-result v1
float-to-int v1, v1
.line 129
invoke-virtual {p1, p2, v0, v1}, Landroid/support/design/widget/CoordinatorLayout;->isPointInChildBounds(Landroid/view/View;II)Z
move-result v0
if-eqz v0, :cond_26
invoke-virtual {p0, p2}, Landroid/support/design/widget/HeaderBehavior;->canDragView(Landroid/view/View;)Z
move-result v0
if-eqz v0, :cond_26
.line 130
iput v1, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
.line 131
invoke-virtual {p3, v5}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v0
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 132
invoke-direct {p0}, Landroid/support/design/widget/HeaderBehavior;->ensureVelocityTracker()V
goto :goto_1c
.line 140
:pswitch_49
iget v0, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
invoke-virtual {p3, v0}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v0
.line 141
if-eq v0, v8, :cond_26
.line 145
invoke-virtual {p3, v0}, Landroid/view/MotionEvent;->getY(I)F
move-result v0
float-to-int v0, v0
.line 146
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
sub-int v3, v1, v0
.line 148
iget-boolean v1, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
if-nez v1, :cond_6d
invoke-static {v3}, Ljava/lang/Math;->abs(I)I
move-result v1
iget v2, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
if-le v1, v2, :cond_6d
.line 149
iput-boolean v7, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
.line 150
if-lez v3, :cond_7e
.line 151
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
sub-int/2addr v3, v1
.line 157
:cond_6d
:goto_6d
iget-boolean v1, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
if-eqz v1, :cond_1c
.line 158
iput v0, p0, Landroid/support/design/widget/HeaderBehavior;->mLastMotionY:I
.line 160
invoke-virtual {p0, p2}, Landroid/support/design/widget/HeaderBehavior;->getMaxDragOffset(Landroid/view/View;)I
move-result v4
move-object v0, p0
move-object v1, p1
move-object v2, p2
invoke-virtual/range {v0 .. v5}, Landroid/support/design/widget/HeaderBehavior;->scroll(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;III)I
goto :goto_1c
.line 153
:cond_7e
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mTouchSlop:I
add-int/2addr v3, v1
goto :goto_6d
.line 166
:pswitch_82
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz v0, :cond_a5
.line 167
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
invoke-virtual {v0, p3}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
.line 168
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
const/16 v1, 0x3e8
invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->computeCurrentVelocity(I)V
.line 169
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
iget v1, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->getYVelocity(I)F
move-result v6
.line 170
invoke-virtual {p0, p2}, Landroid/support/design/widget/HeaderBehavior;->getScrollRangeForDragFling(Landroid/view/View;)I
move-result v0
neg-int v4, v0
move-object v1, p0
move-object v2, p1
move-object v3, p2
invoke-virtual/range {v1 .. v6}, Landroid/support/design/widget/HeaderBehavior;->fling(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;IIF)Z
.line 174
:cond_a5
:pswitch_a5
iput-boolean v5, p0, Landroid/support/design/widget/HeaderBehavior;->mIsBeingDragged:Z
.line 175
iput v8, p0, Landroid/support/design/widget/HeaderBehavior;->mActivePointerId:I
.line 176
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz v0, :cond_1c
.line 177
iget-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
invoke-virtual {v0}, Landroid/view/VelocityTracker;->recycle()V
.line 178
const/4 v0, 0x0
iput-object v0, p0, Landroid/support/design/widget/HeaderBehavior;->mVelocityTracker:Landroid/view/VelocityTracker;
goto/16 :goto_1c
.line 124
nop
:pswitch_data_b8
.packed-switch 0x0
:pswitch_27
:pswitch_82
:pswitch_49
:pswitch_a5
.end packed-switch
.end method
.method final scroll(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;III)I
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/widget/CoordinatorLayout;",
"TV;III)I"
}
.end annotation
.prologue
.line 222
.line 223
invoke-virtual {p0}, Landroid/support/design/widget/HeaderBehavior;->getTopBottomOffsetForScrollingSibling()I
move-result v0
sub-int v3, v0, p3
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v4, p4
move v5, p5
.line 222
invoke-virtual/range {v0 .. v5}, Landroid/support/design/widget/HeaderBehavior;->setHeaderTopBottomOffset(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;III)I
move-result v0
return v0
.end method
.method setHeaderTopBottomOffset(Landroid/support/design/widget/CoordinatorLayout;Landroid/view/View;I)I
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/support/design/