class android.widget.OverScroller$SplineOverScroller
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.widget.OverScroller$SplineOverScroller
super_class: java.lang.Object
{
private int mStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mCurrentPosition;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mFinal;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mVelocity;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float mCurrVelocity;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float mDeceleration;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private long mStartTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int mDuration;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSplineDuration;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSplineDistance;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mFinished;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mOver;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float mFlingFriction;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private int mState;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final float GRAVITY;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2000.0
private float mPhysicalCoeff;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private static float DECELERATION_RATE;
descriptor: F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final float INFLEXION;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.35
private static final float START_TENSION;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.5
private static final float END_TENSION;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1.0
private static final float P1;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.175
private static final float P2;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.35000002
private static final int NB_SAMPLES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private static final float[] SPLINE_POSITION;
descriptor: [F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float[] SPLINE_TIME;
descriptor: [F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int SPLINE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CUBIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int BALLISTIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=0
0: ldc 0.78
invokestatic java.lang.Math.log:(D)D
ldc 0.9
invokestatic java.lang.Math.log:(D)D
ddiv
d2f
putstatic android.widget.OverScroller$SplineOverScroller.DECELERATION_RATE:F
1: bipush 101
newarray 6
putstatic android.widget.OverScroller$SplineOverScroller.SPLINE_POSITION:[F
2: bipush 101
newarray 6
putstatic android.widget.OverScroller$SplineOverScroller.SPLINE_TIME:[F
3: fconst_0
fstore 0
start local 0 4: fconst_0
fstore 1
start local 1 5: iconst_0
istore 2
start local 2 6: goto 27
7: StackMap locals: float float int
StackMap stack:
iload 2
i2f
ldc 100.0
fdiv
fstore 3
start local 3 8: fconst_1
fstore 4
start local 4 9: StackMap locals: float float
StackMap stack:
fload 0
fload 4
fload 0
fsub
fconst_2
fdiv
fadd
fstore 5
start local 5 10: ldc 3.0
fload 5
fmul
fconst_1
fload 5
fsub
fmul
fstore 7
start local 7 11: fload 7
fconst_1
fload 5
fsub
ldc 0.175
fmul
fload 5
ldc 0.35000002
fmul
fadd
fmul
fload 5
fload 5
fmul
fload 5
fmul
fadd
fstore 6
start local 6 12: fload 6
fload 3
fsub
invokestatic java.lang.Math.abs:(F)F
f2d
ldc 1.0E-5
dcmpg
ifge 13
goto 16
13: StackMap locals: float float float
StackMap stack:
fload 6
fload 3
fcmpl
ifle 14
fload 5
fstore 4
goto 9
14: StackMap locals:
StackMap stack:
fload 5
fstore 0
end local 7 end local 6 end local 5 15: goto 9
start local 5 start local 6 start local 7 16: StackMap locals:
StackMap stack:
getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_POSITION:[F
iload 2
fload 7
fconst_1
fload 5
fsub
ldc 0.5
fmul
fload 5
fadd
fmul
fload 5
fload 5
fmul
fload 5
fmul
fadd
fastore
17: fconst_1
fstore 8
start local 8 18: StackMap locals: float
StackMap stack:
fload 1
fload 8
fload 1
fsub
fconst_2
fdiv
fadd
fstore 9
start local 9 19: ldc 3.0
fload 9
fmul
fconst_1
fload 9
fsub
fmul
fstore 7
20: fload 7
fconst_1
fload 9
fsub
ldc 0.5
fmul
fload 9
fadd
fmul
fload 9
fload 9
fmul
fload 9
fmul
fadd
fstore 10
start local 10 21: fload 10
fload 3
fsub
invokestatic java.lang.Math.abs:(F)F
f2d
ldc 1.0E-5
dcmpg
ifge 22
goto 25
22: StackMap locals: float float
StackMap stack:
fload 10
fload 3
fcmpl
ifle 23
fload 9
fstore 8
goto 18
23: StackMap locals:
StackMap stack:
fload 9
fstore 1
end local 10 end local 9 24: goto 18
start local 9 start local 10 25: StackMap locals:
StackMap stack:
getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_TIME:[F
iload 2
fload 7
fconst_1
fload 9
fsub
ldc 0.175
fmul
fload 9
ldc 0.35000002
fmul
fadd
fmul
fload 9
fload 9
fmul
fload 9
fmul
fadd
fastore
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 26: iinc 2 1
StackMap locals: float float int
StackMap stack:
27: iload 2
bipush 100
if_icmplt 7
end local 2 28: getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_POSITION:[F
bipush 100
getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_TIME:[F
bipush 100
fconst_1
dup_x2
fastore
fastore
end local 1 end local 0 29: return
LocalVariableTable:
Start End Slot Name Signature
4 29 0 x_min F
5 29 1 y_min F
6 28 2 i I
8 26 3 alpha F
9 26 4 x_max F
10 15 5 x F
16 26 5 x F
12 15 6 tx F
16 26 6 tx F
11 15 7 coef F
16 26 7 coef F
18 26 8 y_max F
19 24 9 y F
25 26 9 y F
21 24 10 dy F
25 26 10 dy F
void setFriction(float);
descriptor: (F)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
fload 1
putfield android.widget.OverScroller$SplineOverScroller.mFlingFriction:F
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 2 1 friction F
MethodParameters:
Name Flags
friction
void <init>(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic android.view.ViewConfiguration.getScrollFriction:()F
putfield android.widget.OverScroller$SplineOverScroller.mFlingFriction:F
2: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mState:I
3: aload 0
iconst_1
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
4: aload 1
invokevirtual android.content.Context.getResources:()Landroid/content/res/Resources;
invokevirtual android.content.res.Resources.getDisplayMetrics:()Landroid/util/DisplayMetrics;
getfield android.util.DisplayMetrics.density:F
ldc 160.0
fmul
fstore 2
start local 2 5: aload 0
ldc 386.0878
6: fload 2
fmul
7: ldc 0.84
fmul
8: putfield android.widget.OverScroller$SplineOverScroller.mPhysicalCoeff:F
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 10 1 context Landroid/content/Context;
5 10 2 ppi F
MethodParameters:
Name Flags
context
void updateScroll(float);
descriptor: (F)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
fload 1
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
isub
i2f
fmul
invokestatic java.lang.Math.round:(F)I
iadd
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 2 1 q F
MethodParameters:
Name Flags
q
private static float getDeceleration(int);
descriptor: (I)F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifle 1
ldc -2000.0
goto 2
StackMap locals:
StackMap stack:
1: ldc 2000.0
StackMap locals:
StackMap stack: float
2: freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 velocity I
MethodParameters:
Name Flags
velocity
private void adjustDuration(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 1
isub
istore 4
start local 4 1: iload 3
iload 1
isub
istore 5
start local 5 2: iload 5
i2f
iload 4
i2f
fdiv
invokestatic java.lang.Math.abs:(F)F
fstore 6
start local 6 3: ldc 100.0
fload 6
fmul
f2i
istore 7
start local 7 4: iload 7
bipush 100
if_icmpge 11
5: iload 7
i2f
ldc 100.0
fdiv
fstore 8
start local 8 6: iload 7
iconst_1
iadd
i2f
ldc 100.0
fdiv
fstore 9
start local 9 7: getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_TIME:[F
iload 7
faload
fstore 10
start local 10 8: getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_TIME:[F
iload 7
iconst_1
iadd
faload
fstore 11
start local 11 9: fload 10
fload 6
fload 8
fsub
fload 9
fload 8
fsub
fdiv
fload 11
fload 10
fsub
fmul
fadd
fstore 12
start local 12 10: aload 0
dup
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
i2f
fload 12
fmul
f2i
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
end local 12 end local 11 end local 10 end local 9 end local 8 11: StackMap locals: android.widget.OverScroller$SplineOverScroller int int int int int float int
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 12 1 start I
0 12 2 oldFinal I
0 12 3 newFinal I
1 12 4 oldDistance I
2 12 5 newDistance I
3 12 6 x F
4 12 7 index I
6 11 8 x_inf F
7 11 9 x_sup F
8 11 10 t_inf F
9 11 11 t_sup F
10 11 12 timeCoef F
MethodParameters:
Name Flags
start
oldFinal
newFinal
void startScroll(int, int, int);
descriptor: (III)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
1: aload 0
aload 0
iload 1
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
2: aload 0
iload 1
iload 2
iadd
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
3: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
4: aload 0
iload 3
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
5: aload 0
fconst_0
putfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
6: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 8 1 start I
0 8 2 distance I
0 8 3 duration I
MethodParameters:
Name Flags
start
distance
duration
void finish();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
1: aload 0
iconst_1
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/OverScroller$SplineOverScroller;
void setFinalPosition(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
1: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 3 1 position I
MethodParameters:
Name Flags
position
void extendDuration(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
lstore 2
start local 2 1: lload 2
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
lsub
l2i
istore 4
start local 4 2: aload 0
iload 4
iload 1
iadd
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
3: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
4: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 5 1 extend I
1 5 2 time J
2 5 4 elapsedTime I
MethodParameters:
Name Flags
extend
boolean springback(int, int, int);
descriptor: (III)Z
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_1
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
1: aload 0
aload 0
aload 0
iload 1
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
2: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
3: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
4: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
5: iload 1
iload 2
if_icmpge 8
6: aload 0
iload 1
iload 2
iconst_0
invokevirtual android.widget.OverScroller$SplineOverScroller.startSpringback:(III)V
7: goto 10
StackMap locals:
StackMap stack:
8: iload 1
iload 3
if_icmple 10
9: aload 0
iload 1
iload 3
iconst_0
invokevirtual android.widget.OverScroller$SplineOverScroller.startSpringback:(III)V
10: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
ifeq 11
iconst_0
goto 12
StackMap locals:
StackMap stack:
11: iconst_1
StackMap locals:
StackMap stack: int
12: ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 13 1 start I
0 13 2 min I
0 13 3 max I
MethodParameters:
Name Flags
start
min
max
private void startSpringback(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
1: aload 0
iconst_1
putfield android.widget.OverScroller$SplineOverScroller.mState:I
2: aload 0
aload 0
iload 1
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
3: aload 0
iload 2
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
4: iload 1
iload 2
isub
istore 4
start local 4 5: aload 0
iload 4
invokestatic android.widget.OverScroller$SplineOverScroller.getDeceleration:(I)F
putfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
6: aload 0
iload 4
ineg
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
7: aload 0
iload 4
invokestatic java.lang.Math.abs:(I)I
putfield android.widget.OverScroller$SplineOverScroller.mOver:I
8: aload 0
ldc 1000.0
ldc -2.0
iload 4
i2d
dmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
f2d
ddiv
invokestatic java.lang.Math.sqrt:(D)D
dmul
d2i
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 10 1 start I
0 10 2 end I
0 10 3 velocity I
5 10 4 delta I
MethodParameters:
Name Flags
start
end
velocity
void fling(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 5
putfield android.widget.OverScroller$SplineOverScroller.mOver:I
1: aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
2: aload 0
aload 0
iload 2
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
putfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
3: aload 0
aload 0
iconst_0
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mSplineDuration:I
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
4: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
5: aload 0
aload 0
iload 1
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
6: iload 1
iload 4
if_icmpgt 7
iload 1
iload 3
if_icmpge 9
7: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 3
iload 4
iload 2
invokevirtual android.widget.OverScroller$SplineOverScroller.startAfterEdge:(IIII)V
8: return
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.widget.OverScroller$SplineOverScroller.mState:I
10: dconst_0
dstore 6
start local 6 11: iload 2
ifeq 14
12: aload 0
aload 0
aload 0
iload 2
invokevirtual android.widget.OverScroller$SplineOverScroller.getSplineFlingDuration:(I)I
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mSplineDuration:I
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
13: aload 0
iload 2
invokevirtual android.widget.OverScroller$SplineOverScroller.getSplineFlingDistance:(I)D
dstore 6
14: StackMap locals: double
StackMap stack:
aload 0
dload 6
iload 2
i2f
invokestatic java.lang.Math.signum:(F)F
f2d
dmul
d2i
putfield android.widget.OverScroller$SplineOverScroller.mSplineDistance:I
15: aload 0
iload 1
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDistance:I
iadd
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
16: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
iload 3
if_icmpge 19
17: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
iload 3
invokevirtual android.widget.OverScroller$SplineOverScroller.adjustDuration:(III)V
18: aload 0
iload 3
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
19: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
iload 4
if_icmple 22
20: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
iload 4
invokevirtual android.widget.OverScroller$SplineOverScroller.adjustDuration:(III)V
21: aload 0
iload 4
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
22: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 23 1 start I
0 23 2 velocity I
0 23 3 min I
0 23 4 max I
0 23 5 over I
11 23 6 totalDistance D
MethodParameters:
Name Flags
start
velocity
min
max
over
private double getSplineDeceleration(int);
descriptor: (I)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc 0.35
iload 1
invokestatic java.lang.Math.abs:(I)I
i2f
fmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFlingFriction:F
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mPhysicalCoeff:F
fmul
fdiv
f2d
invokestatic java.lang.Math.log:(D)D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 1 1 velocity I
MethodParameters:
Name Flags
velocity
private double getSplineFlingDistance(int);
descriptor: (I)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual android.widget.OverScroller$SplineOverScroller.getSplineDeceleration:(I)D
dstore 2
start local 2 1: getstatic android.widget.OverScroller$SplineOverScroller.DECELERATION_RATE:F
f2d
dconst_1
dsub
dstore 4
start local 4 2: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFlingFriction:F
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mPhysicalCoeff:F
fmul
f2d
getstatic android.widget.OverScroller$SplineOverScroller.DECELERATION_RATE:F
f2d
dload 4
ddiv
dload 2
dmul
invokestatic java.lang.Math.exp:(D)D
dmul
dreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 3 1 velocity I
1 3 2 l D
2 3 4 decelMinusOne D
MethodParameters:
Name Flags
velocity
private int getSplineFlingDuration(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual android.widget.OverScroller$SplineOverScroller.getSplineDeceleration:(I)D
dstore 2
start local 2 1: getstatic android.widget.OverScroller$SplineOverScroller.DECELERATION_RATE:F
f2d
dconst_1
dsub
dstore 4
start local 4 2: ldc 1000.0
dload 2
dload 4
ddiv
invokestatic java.lang.Math.exp:(D)D
dmul
d2i
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 3 1 velocity I
1 3 2 l D
2 3 4 decelMinusOne D
MethodParameters:
Name Flags
velocity
private void fitOnBounceCurve(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ineg
i2f
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
fdiv
fstore 4
start local 4 1: iload 3
i2f
iload 3
i2f
fmul
fstore 5
start local 5 2: fload 5
fconst_2
fdiv
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
invokestatic java.lang.Math.abs:(F)F
fdiv
fstore 6
start local 6 3: iload 2
iload 1
isub
invokestatic java.lang.Math.abs:(I)I
i2f
fstore 7
start local 7 4: ldc 2.0
fload 6
fload 7
fadd
f2d
dmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
invokestatic java.lang.Math.abs:(F)F
f2d
ddiv
5: invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 8
start local 8 6: aload 0
dup
getfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
ldc 1000.0
fload 8
fload 4
fsub
fmul
f2i
i2l
lsub
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
7: aload 0
aload 0
iload 2
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
8: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
fneg
fload 8
fmul
f2i
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
9: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 10 1 start I
0 10 2 end I
0 10 3 velocity I
1 10 4 durationToApex F
2 10 5 velocitySquared F
3 10 6 distanceToApex F
4 10 7 distanceToEdge F
6 10 8 totalDuration F
MethodParameters:
Name Flags
start
end
velocity
private void startBounceAfterEdge(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
ifne 1
iload 1
iload 2
isub
goto 2
StackMap locals:
StackMap stack: android.widget.OverScroller$SplineOverScroller
1: iload 3
StackMap locals: android.widget.OverScroller$SplineOverScroller int int int
StackMap stack: android.widget.OverScroller$SplineOverScroller int
2: invokestatic android.widget.OverScroller$SplineOverScroller.getDeceleration:(I)F
putfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
3: aload 0
iload 1
iload 2
iload 3
invokevirtual android.widget.OverScroller$SplineOverScroller.fitOnBounceCurve:(III)V
4: aload 0
invokevirtual android.widget.OverScroller$SplineOverScroller.onEdgeReached:()V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 6 1 start I
0 6 2 end I
0 6 3 velocity I
MethodParameters:
Name Flags
start
end
velocity
private void startAfterEdge(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iload 2
if_icmple 4
iload 1
iload 3
if_icmpge 4
1: ldc "OverScroller"
ldc "startAfterEdge called from a valid position"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: aload 0
iconst_1
putfield android.widget.OverScroller$SplineOverScroller.mFinished:Z
3: return
4: StackMap locals:
StackMap stack:
iload 1
iload 3
if_icmple 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 5
ifeq 8
iload 3
goto 9
StackMap locals: int
StackMap stack:
8: iload 2
StackMap locals:
StackMap stack: int
9: istore 6
start local 6 10: iload 1
iload 6
isub
istore 7
start local 7 11: iload 7
iload 4
imul
iflt 12
iconst_1
goto 13
StackMap locals: int int
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 8
start local 8 14: iload 8
ifeq 17
15: aload 0
iload 1
iload 6
iload 4
invokevirtual android.widget.OverScroller$SplineOverScroller.startBounceAfterEdge:(III)V
16: goto 26
17: StackMap locals: int
StackMap stack:
aload 0
iload 4
invokevirtual android.widget.OverScroller$SplineOverScroller.getSplineFlingDistance:(I)D
dstore 9
start local 9 18: dload 9
iload 7
invokestatic java.lang.Math.abs:(I)I
i2d
dcmpl
ifle 25
19: aload 0
iload 1
iload 4
iload 5
ifeq 20
iload 2
goto 21
StackMap locals: android.widget.OverScroller$SplineOverScroller int int int int int int int int double
StackMap stack: android.widget.OverScroller$SplineOverScroller int int
20: iload 1
StackMap locals: android.widget.OverScroller$SplineOverScroller int int int int int int int int double
StackMap stack: android.widget.OverScroller$SplineOverScroller int int int
21: iload 5
ifeq 22
iload 1
goto 23
StackMap locals: android.widget.OverScroller$SplineOverScroller int int int int int int int int double
StackMap stack: android.widget.OverScroller$SplineOverScroller int int int
22: iload 3
StackMap locals: android.widget.OverScroller$SplineOverScroller int int int int int int int int double
StackMap stack: android.widget.OverScroller$SplineOverScroller int int int int
23: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
invokevirtual android.widget.OverScroller$SplineOverScroller.fling:(IIIII)V
24: goto 26
25: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 6
iload 4
invokevirtual android.widget.OverScroller$SplineOverScroller.startSpringback:(III)V
end local 9 26: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 27 1 start I
0 27 2 min I
0 27 3 max I
0 27 4 velocity I
7 27 5 positive Z
10 27 6 edge I
11 27 7 overDistance I
14 27 8 keepIncreasing Z
18 26 9 totalDistance D
MethodParameters:
Name Flags
start
min
max
velocity
void notifyEdgeReached(int, int, int);
descriptor: (III)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mState:I
ifne 4
1: aload 0
iload 3
putfield android.widget.OverScroller$SplineOverScroller.mOver:I
2: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
3: aload 0
iload 1
iload 2
iload 2
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
f2i
invokevirtual android.widget.OverScroller$SplineOverScroller.startAfterEdge:(IIII)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/OverScroller$SplineOverScroller;
0 5 1 start I
0 5 2 end I
0 5 3 over I
MethodParameters:
Name Flags
start
end
over
private void onEdgeReached();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
fmul
fstore 1
start local 1 1: fload 1
fconst_2
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
invokestatic java.lang.Math.abs:(F)F
fmul
fdiv
fstore 2
start local 2 2: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
invokestatic java.lang.Math.signum:(F)F
fstore 3
start local 3 3: fload 2
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
i2f
fcmpl
ifle 6
4: aload 0
fload 3
fneg
fload 1
fmul
fconst_2
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
i2f
fmul
fdiv
putfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
5: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
i2f
fstore 2
6: StackMap locals: float float float
StackMap stack:
aload 0
fload 2
f2i
putfield android.widget.OverScroller$SplineOverScroller.mOver:I
7: aload 0
iconst_2
putfield android.widget.OverScroller$SplineOverScroller.mState:I
8: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
ifle 9
fload 2
goto 10
StackMap locals: android.widget.OverScroller$SplineOverScroller float float float
StackMap stack: android.widget.OverScroller$SplineOverScroller int
9: fload 2
fneg
StackMap locals: android.widget.OverScroller$SplineOverScroller float float float
StackMap stack: android.widget.OverScroller$SplineOverScroller int float
10: f2i
iadd
putfield android.widget.OverScroller$SplineOverScroller.mFinal:I
11: aload 0
ldc 1000.0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
fmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
fdiv
f2i
ineg
putfield android.widget.OverScroller$SplineOverScroller.mDuration:I
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/widget/OverScroller$SplineOverScroller;
1 13 1 velocitySquared F
2 13 2 distance F
3 13 3 sign F
boolean continueWhenFinished();
descriptor: ()Z
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mState:I
tableswitch { // 0 - 2
0: 1
1: 12
2: 9
default: 13
}
1: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDuration:I
if_icmpge 8
2: aload 0
aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
dup_x1
putfield android.widget.OverScroller$SplineOverScroller.mStart:I
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
3: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
f2i
putfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
4: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
invokestatic android.widget.OverScroller$SplineOverScroller.getDeceleration:(I)F
putfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
5: aload 0
dup
getfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
i2l
ladd
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
6: aload 0
invokevirtual android.widget.OverScroller$SplineOverScroller.onEdgeReached:()V
7: goto 13
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
i2l
ladd
putfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
10: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mFinal:I
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
iconst_0
invokevirtual android.widget.OverScroller$SplineOverScroller.startSpringback:(III)V
11: goto 13
12: StackMap locals:
StackMap stack:
iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.OverScroller$SplineOverScroller.update:()Z
pop
14: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/widget/OverScroller$SplineOverScroller;
boolean update();
descriptor: ()Z
flags: (0x0000)
Code:
stack=4, locals=15, args_size=1
start local 0 0: invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
lstore 1
start local 1 1: lload 1
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStartTime:J
lsub
lstore 3
start local 3 2: lload 3
lconst_0
lcmp
ifne 5
3: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
ifle 4
iconst_1
ireturn
StackMap locals: long long
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
lload 3
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
i2l
lcmp
ifle 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
dconst_0
dstore 5
start local 5 8: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mState:I
tableswitch { // 0 - 2
0: 9
1: 27
2: 23
default: 32
}
9: StackMap locals: double
StackMap stack:
lload 3
l2f
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDuration:I
i2f
fdiv
fstore 7
start local 7 10: ldc 100.0
fload 7
fmul
f2i
istore 8
start local 8 11: fconst_1
fstore 9
start local 9 12: fconst_0
fstore 10
start local 10 13: iload 8
bipush 100
if_icmpge 20
14: iload 8
i2f
ldc 100.0
fdiv
fstore 11
start local 11 15: iload 8
iconst_1
iadd
i2f
ldc 100.0
fdiv
fstore 12
start local 12 16: getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_POSITION:[F
iload 8
faload
fstore 13
start local 13 17: getstatic android.widget.OverScroller$SplineOverScroller.SPLINE_POSITION:[F
iload 8
iconst_1
iadd
faload
fstore 14
start local 14 18: fload 14
fload 13
fsub
fload 12
fload 11
fsub
fdiv
fstore 10
19: fload 13
fload 7
fload 11
fsub
fload 10
fmul
fadd
fstore 9
end local 14 end local 13 end local 12 end local 11 20: StackMap locals: android.widget.OverScroller$SplineOverScroller long long double float int float float
StackMap stack:
fload 9
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDistance:I
i2f
fmul
f2d
dstore 5
21: aload 0
fload 10
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDistance:I
i2f
fmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mSplineDuration:I
i2f
fdiv
ldc 1000.0
fmul
putfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
22: goto 32
end local 10 end local 9 end local 8 end local 7 23: StackMap locals: android.widget.OverScroller$SplineOverScroller long long double
StackMap stack:
lload 3
l2f
ldc 1000.0
fdiv
fstore 7
start local 7 24: aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
fload 7
fmul
fadd
putfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
25: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
fload 7
fmul
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDeceleration:F
fload 7
fmul
fload 7
fmul
fconst_2
fdiv
fadd
f2d
dstore 5
26: goto 32
end local 7 27: StackMap locals:
StackMap stack:
lload 3
l2f
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mDuration:I
i2f
fdiv
fstore 7
start local 7 28: fload 7
fload 7
fmul
fstore 8
start local 8 29: aload 0
getfield android.widget.OverScroller$SplineOverScroller.mVelocity:I
i2f
invokestatic java.lang.Math.signum:(F)F
fstore 9
start local 9 30: fload 9
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
i2f
fmul
ldc 3.0
fload 8
fmul
fconst_2
fload 7
fmul
fload 8
fmul
fsub
fmul
f2d
dstore 5
31: aload 0
fload 9
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mOver:I
i2f
fmul
ldc 6.0
fmul
fload 7
fneg
fload 8
fadd
fmul
putfield android.widget.OverScroller$SplineOverScroller.mCurrVelocity:F
end local 9 end local 8 end local 7 32: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.widget.OverScroller$SplineOverScroller.mStart:I
dload 5
invokestatic java.lang.Math.round:(D)J
l2i
iadd
putfield android.widget.OverScroller$SplineOverScroller.mCurrentPosition:I
33: iconst_1
ireturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Landroid/widget/OverScroller$SplineOverScroller;
1 34 1 time J
2 34 3 currentTime J
8 34 5 distance D
10 23 7 t F
11 23 8 index I
12 23 9 distanceCoef F
13 23 10 velocityCoef F
15 20 11 t_inf F
16 20 12 t_sup F
17 20 13 d_inf F
18 20 14 d_sup F
24 27 7 t F
28 32 7 t F
29 32 8 t2 F
30 32 9 sign F
}
SourceFile: "OverScroller.java"
NestHost: android.widget.OverScroller
InnerClasses:
SplineOverScroller = android.widget.OverScroller$SplineOverScroller of android.widget.OverScroller