public class android.widget.Scroller
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.widget.Scroller
super_class: java.lang.Object
{
private final android.view.animation.Interpolator mInterpolator;
descriptor: Landroid/view/animation/Interpolator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int mMode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mStartX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mStartY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mFinalX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mFinalY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mMinX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mMaxX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mMinY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mMaxY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mCurrX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mCurrY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long mStartTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int mDuration;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float mDurationReciprocal;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float mDeltaX;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float mDeltaY;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private boolean mFinished;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mFlywheel;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private float mVelocity;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float mCurrVelocity;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private int mDistance;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float mFlingFriction;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private static final int DEFAULT_DURATION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 250
private static final int SCROLL_MODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int FLING_MODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
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 float mDeceleration;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private final float mPpi;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private float mPhysicalCoeff;
descriptor: F
flags: (0x0002) ACC_PRIVATE
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.Scroller.DECELERATION_RATE:F
1: bipush 101
newarray 6
putstatic android.widget.Scroller.SPLINE_POSITION:[F
2: bipush 101
newarray 6
putstatic android.widget.Scroller.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.Scroller.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.Scroller.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.Scroller.SPLINE_POSITION:[F
bipush 100
getstatic android.widget.Scroller.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
public void <init>(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial android.widget.Scroller.<init>:(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/Scroller;
0 2 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
public void <init>(android.content.Context, android.view.animation.Interpolator);
descriptor: (Landroid/content/Context;Landroid/view/animation/Interpolator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
1: aload 1
invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
bipush 11
if_icmplt 2
iconst_1
goto 3
StackMap locals: uninitialized-this android.content.Context android.view.animation.Interpolator
StackMap stack: uninitialized-this android.content.Context android.view.animation.Interpolator
2: iconst_0
StackMap locals: uninitialized-this android.content.Context android.view.animation.Interpolator
StackMap stack: uninitialized-this android.content.Context android.view.animation.Interpolator int
3: invokespecial android.widget.Scroller.<init>:(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/Scroller;
0 5 1 context Landroid/content/Context;
0 5 2 interpolator Landroid/view/animation/Interpolator;
MethodParameters:
Name Flags
context
interpolator
public void <init>(android.content.Context, android.view.animation.Interpolator, boolean);
descriptor: (Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic android.view.ViewConfiguration.getScrollFriction:()F
putfield android.widget.Scroller.mFlingFriction:F
2: aload 0
iconst_1
putfield android.widget.Scroller.mFinished:Z
3: aload 2
ifnonnull 6
4: aload 0
new android.widget.Scroller$ViscousFluidInterpolator
dup
invokespecial android.widget.Scroller$ViscousFluidInterpolator.<init>:()V
putfield android.widget.Scroller.mInterpolator:Landroid/view/animation/Interpolator;
5: goto 7
6: StackMap locals: android.widget.Scroller android.content.Context android.view.animation.Interpolator int
StackMap stack:
aload 0
aload 2
putfield android.widget.Scroller.mInterpolator:Landroid/view/animation/Interpolator;
7: StackMap locals:
StackMap stack:
aload 0
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
putfield android.widget.Scroller.mPpi:F
8: aload 0
aload 0
invokestatic android.view.ViewConfiguration.getScrollFriction:()F
invokevirtual android.widget.Scroller.computeDeceleration:(F)F
putfield android.widget.Scroller.mDeceleration:F
9: aload 0
iload 3
putfield android.widget.Scroller.mFlywheel:Z
10: aload 0
aload 0
ldc 0.84
invokevirtual android.widget.Scroller.computeDeceleration:(F)F
putfield android.widget.Scroller.mPhysicalCoeff:F
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/widget/Scroller;
0 12 1 context Landroid/content/Context;
0 12 2 interpolator Landroid/view/animation/Interpolator;
0 12 3 flywheel Z
MethodParameters:
Name Flags
context
interpolator
flywheel
public final void setFriction(float);
descriptor: (F)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
fload 1
invokevirtual android.widget.Scroller.computeDeceleration:(F)F
putfield android.widget.Scroller.mDeceleration:F
1: aload 0
fload 1
putfield android.widget.Scroller.mFlingFriction:F
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/Scroller;
0 3 1 friction F
MethodParameters:
Name Flags
friction
private float computeDeceleration(float);
descriptor: (F)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc 386.0878
1: aload 0
getfield android.widget.Scroller.mPpi:F
2: fmul
3: fload 1
4: fmul
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/Scroller;
0 5 1 friction F
MethodParameters:
Name Flags
friction
public final boolean isFinished();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mFinished:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final void forceFinished(boolean);
descriptor: (Z)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.widget.Scroller.mFinished:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/Scroller;
0 2 1 finished Z
MethodParameters:
Name Flags
finished
public final int getDuration();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mDuration:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final int getCurrX();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mCurrX:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final int getCurrY();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mCurrY:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public float getCurrVelocity();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mMode:I
iconst_1
if_icmpne 2
1: aload 0
getfield android.widget.Scroller.mCurrVelocity:F
goto 3
StackMap locals:
StackMap stack:
2: aload 0
getfield android.widget.Scroller.mVelocity:F
aload 0
getfield android.widget.Scroller.mDeceleration:F
aload 0
invokevirtual android.widget.Scroller.timePassed:()I
i2f
fmul
ldc 2000.0
fdiv
fsub
3: StackMap locals:
StackMap stack: float
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/Scroller;
public final int getStartX();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mStartX:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final int getStartY();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mStartY:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final int getFinalX();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mFinalX:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public final int getFinalY();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mFinalY:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public boolean computeScrollOffset();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=1
start local 0 0: aload 0
getfield android.widget.Scroller.mFinished:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
aload 0
getfield android.widget.Scroller.mStartTime:J
lsub
l2i
istore 1
start local 1 3: iload 1
aload 0
getfield android.widget.Scroller.mDuration:I
if_icmpge 30
4: aload 0
getfield android.widget.Scroller.mMode:I
tableswitch { // 0 - 1
0: 5
1: 9
default: 29
}
5: StackMap locals: int
StackMap stack:
aload 0
getfield android.widget.Scroller.mInterpolator:Landroid/view/animation/Interpolator;
iload 1
i2f
aload 0
getfield android.widget.Scroller.mDurationReciprocal:F
fmul
invokeinterface android.view.animation.Interpolator.getInterpolation:(F)F
fstore 2
start local 2 6: aload 0
aload 0
getfield android.widget.Scroller.mStartX:I
fload 2
aload 0
getfield android.widget.Scroller.mDeltaX:F
fmul
invokestatic java.lang.Math.round:(F)I
iadd
putfield android.widget.Scroller.mCurrX:I
7: aload 0
aload 0
getfield android.widget.Scroller.mStartY:I
fload 2
aload 0
getfield android.widget.Scroller.mDeltaY:F
fmul
invokestatic java.lang.Math.round:(F)I
iadd
putfield android.widget.Scroller.mCurrY:I
8: goto 33
end local 2 9: StackMap locals:
StackMap stack:
iload 1
i2f
aload 0
getfield android.widget.Scroller.mDuration:I
i2f
fdiv
fstore 3
start local 3 10: ldc 100.0
fload 3
fmul
f2i
istore 4
start local 4 11: fconst_1
fstore 5
start local 5 12: fconst_0
fstore 6
start local 6 13: iload 4
bipush 100
if_icmpge 20
14: iload 4
i2f
ldc 100.0
fdiv
fstore 7
start local 7 15: iload 4
iconst_1
iadd
i2f
ldc 100.0
fdiv
fstore 8
start local 8 16: getstatic android.widget.Scroller.SPLINE_POSITION:[F
iload 4
faload
fstore 9
start local 9 17: getstatic android.widget.Scroller.SPLINE_POSITION:[F
iload 4
iconst_1
iadd
faload
fstore 10
start local 10 18: fload 10
fload 9
fsub
fload 8
fload 7
fsub
fdiv
fstore 6
19: fload 9
fload 3
fload 7
fsub
fload 6
fmul
fadd
fstore 5
end local 10 end local 9 end local 8 end local 7 20: StackMap locals: android.widget.Scroller int top float int float float
StackMap stack:
aload 0
fload 6
aload 0
getfield android.widget.Scroller.mDistance:I
i2f
fmul
aload 0
getfield android.widget.Scroller.mDuration:I
i2f
fdiv
ldc 1000.0
fmul
putfield android.widget.Scroller.mCurrVelocity:F
21: aload 0
aload 0
getfield android.widget.Scroller.mStartX:I
fload 5
aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mStartX:I
isub
i2f
fmul
invokestatic java.lang.Math.round:(F)I
iadd
putfield android.widget.Scroller.mCurrX:I
22: aload 0
aload 0
getfield android.widget.Scroller.mCurrX:I
aload 0
getfield android.widget.Scroller.mMaxX:I
invokestatic java.lang.Math.min:(II)I
putfield android.widget.Scroller.mCurrX:I
23: aload 0
aload 0
getfield android.widget.Scroller.mCurrX:I
aload 0
getfield android.widget.Scroller.mMinX:I
invokestatic java.lang.Math.max:(II)I
putfield android.widget.Scroller.mCurrX:I
24: aload 0
aload 0
getfield android.widget.Scroller.mStartY:I
fload 5
aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mStartY:I
isub
i2f
fmul
invokestatic java.lang.Math.round:(F)I
iadd
putfield android.widget.Scroller.mCurrY:I
25: aload 0
aload 0
getfield android.widget.Scroller.mCurrY:I
aload 0
getfield android.widget.Scroller.mMaxY:I
invokestatic java.lang.Math.min:(II)I
putfield android.widget.Scroller.mCurrY:I
26: aload 0
aload 0
getfield android.widget.Scroller.mCurrY:I
aload 0
getfield android.widget.Scroller.mMinY:I
invokestatic java.lang.Math.max:(II)I
putfield android.widget.Scroller.mCurrY:I
27: aload 0
getfield android.widget.Scroller.mCurrX:I
aload 0
getfield android.widget.Scroller.mFinalX:I
if_icmpne 33
aload 0
getfield android.widget.Scroller.mCurrY:I
aload 0
getfield android.widget.Scroller.mFinalY:I
if_icmpne 33
28: aload 0
iconst_1
putfield android.widget.Scroller.mFinished:Z
end local 6 end local 5 end local 4 end local 3 29: StackMap locals: android.widget.Scroller int
StackMap stack:
goto 33
30: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.widget.Scroller.mFinalX:I
putfield android.widget.Scroller.mCurrX:I
31: aload 0
aload 0
getfield android.widget.Scroller.mFinalY:I
putfield android.widget.Scroller.mCurrY:I
32: aload 0
iconst_1
putfield android.widget.Scroller.mFinished:Z
33: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Landroid/widget/Scroller;
3 34 1 timePassed I
6 9 2 x F
10 29 3 t F
11 29 4 index I
12 29 5 distanceCoef F
13 29 6 velocityCoef F
15 20 7 t_inf F
16 20 8 t_sup F
17 20 9 d_inf F
18 20 10 d_sup F
public void startScroll(int, int, int, int);
descriptor: (IIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
iload 2
iload 3
iload 4
sipush 250
invokevirtual android.widget.Scroller.startScroll:(IIIII)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/Scroller;
0 2 1 startX I
0 2 2 startY I
0 2 3 dx I
0 2 4 dy I
MethodParameters:
Name Flags
startX
startY
dx
dy
public void startScroll(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iconst_0
putfield android.widget.Scroller.mMode:I
1: aload 0
iconst_0
putfield android.widget.Scroller.mFinished:Z
2: aload 0
iload 5
putfield android.widget.Scroller.mDuration:I
3: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.Scroller.mStartTime:J
4: aload 0
iload 1
putfield android.widget.Scroller.mStartX:I
5: aload 0
iload 2
putfield android.widget.Scroller.mStartY:I
6: aload 0
iload 1
iload 3
iadd
putfield android.widget.Scroller.mFinalX:I
7: aload 0
iload 2
iload 4
iadd
putfield android.widget.Scroller.mFinalY:I
8: aload 0
iload 3
i2f
putfield android.widget.Scroller.mDeltaX:F
9: aload 0
iload 4
i2f
putfield android.widget.Scroller.mDeltaY:F
10: aload 0
fconst_1
aload 0
getfield android.widget.Scroller.mDuration:I
i2f
fdiv
putfield android.widget.Scroller.mDurationReciprocal:F
11: return
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/Scroller;
0 12 1 startX I
0 12 2 startY I
0 12 3 dx I
0 12 4 dy I
0 12 5 duration I
MethodParameters:
Name Flags
startX
startY
dx
dy
duration
public void fling(int, int, int, int, int, int, int, int);
descriptor: (IIIIIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=17, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield android.widget.Scroller.mFlywheel:Z
ifeq 13
aload 0
getfield android.widget.Scroller.mFinished:Z
ifne 13
1: aload 0
invokevirtual android.widget.Scroller.getCurrVelocity:()F
fstore 9
start local 9 2: aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mStartX:I
isub
i2f
fstore 10
start local 10 3: aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mStartY:I
isub
i2f
fstore 11
start local 11 4: fload 10
f2d
fload 11
f2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fstore 12
start local 12 5: fload 10
fload 12
fdiv
fstore 13
start local 13 6: fload 11
fload 12
fdiv
fstore 14
start local 14 7: fload 13
fload 9
fmul
fstore 15
start local 15 8: fload 14
fload 9
fmul
fstore 16
start local 16 9: iload 3
i2f
invokestatic java.lang.Math.signum:(F)F
fload 15
invokestatic java.lang.Math.signum:(F)F
fcmpl
ifne 13
10: iload 4
i2f
invokestatic java.lang.Math.signum:(F)F
fload 16
invokestatic java.lang.Math.signum:(F)F
fcmpl
ifne 13
11: iload 3
i2f
fload 15
fadd
f2i
istore 3
12: iload 4
i2f
fload 16
fadd
f2i
istore 4
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield android.widget.Scroller.mMode:I
14: aload 0
iconst_0
putfield android.widget.Scroller.mFinished:Z
15: iload 3
i2d
iload 4
i2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fstore 9
start local 9 16: aload 0
fload 9
putfield android.widget.Scroller.mVelocity:F
17: aload 0
aload 0
fload 9
invokevirtual android.widget.Scroller.getSplineFlingDuration:(F)I
putfield android.widget.Scroller.mDuration:I
18: aload 0
invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
putfield android.widget.Scroller.mStartTime:J
19: aload 0
iload 1
putfield android.widget.Scroller.mStartX:I
20: aload 0
iload 2
putfield android.widget.Scroller.mStartY:I
21: fload 9
fconst_0
fcmpl
ifne 22
fconst_1
goto 23
StackMap locals: float
StackMap stack:
22: iload 3
i2f
fload 9
fdiv
StackMap locals:
StackMap stack: float
23: fstore 10
start local 10 24: fload 9
fconst_0
fcmpl
ifne 25
fconst_1
goto 26
StackMap locals: float
StackMap stack:
25: iload 4
i2f
fload 9
fdiv
StackMap locals:
StackMap stack: float
26: fstore 11
start local 11 27: aload 0
fload 9
invokevirtual android.widget.Scroller.getSplineFlingDistance:(F)D
dstore 12
start local 12 28: aload 0
dload 12
fload 9
invokestatic java.lang.Math.signum:(F)F
f2d
dmul
d2i
putfield android.widget.Scroller.mDistance:I
29: aload 0
iload 5
putfield android.widget.Scroller.mMinX:I
30: aload 0
iload 6
putfield android.widget.Scroller.mMaxX:I
31: aload 0
iload 7
putfield android.widget.Scroller.mMinY:I
32: aload 0
iload 8
putfield android.widget.Scroller.mMaxY:I
33: aload 0
iload 1
dload 12
fload 10
f2d
dmul
invokestatic java.lang.Math.round:(D)J
l2i
iadd
putfield android.widget.Scroller.mFinalX:I
34: aload 0
aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mMaxX:I
invokestatic java.lang.Math.min:(II)I
putfield android.widget.Scroller.mFinalX:I
35: aload 0
aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mMinX:I
invokestatic java.lang.Math.max:(II)I
putfield android.widget.Scroller.mFinalX:I
36: aload 0
iload 2
dload 12
fload 11
f2d
dmul
invokestatic java.lang.Math.round:(D)J
l2i
iadd
putfield android.widget.Scroller.mFinalY:I
37: aload 0
aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mMaxY:I
invokestatic java.lang.Math.min:(II)I
putfield android.widget.Scroller.mFinalY:I
38: aload 0
aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mMinY:I
invokestatic java.lang.Math.max:(II)I
putfield android.widget.Scroller.mFinalY:I
39: return
end local 12 end local 11 end local 10 end local 9 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 40 0 this Landroid/widget/Scroller;
0 40 1 startX I
0 40 2 startY I
0 40 3 velocityX I
0 40 4 velocityY I
0 40 5 minX I
0 40 6 maxX I
0 40 7 minY I
0 40 8 maxY I
2 13 9 oldVel F
3 13 10 dx F
4 13 11 dy F
5 13 12 hyp F
6 13 13 ndx F
7 13 14 ndy F
8 13 15 oldVelocityX F
9 13 16 oldVelocityY F
16 40 9 velocity F
24 40 10 coeffX F
27 40 11 coeffY F
28 40 12 totalDistance D
MethodParameters:
Name Flags
startX
startY
velocityX
velocityY
minX
maxX
minY
maxY
private double getSplineDeceleration(float);
descriptor: (F)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc 0.35
fload 1
invokestatic java.lang.Math.abs:(F)F
fmul
aload 0
getfield android.widget.Scroller.mFlingFriction:F
aload 0
getfield android.widget.Scroller.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/Scroller;
0 1 1 velocity F
MethodParameters:
Name Flags
velocity
private int getSplineFlingDuration(float);
descriptor: (F)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
fload 1
invokevirtual android.widget.Scroller.getSplineDeceleration:(F)D
dstore 2
start local 2 1: getstatic android.widget.Scroller.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/Scroller;
0 3 1 velocity F
1 3 2 l D
2 3 4 decelMinusOne D
MethodParameters:
Name Flags
velocity
private double getSplineFlingDistance(float);
descriptor: (F)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
fload 1
invokevirtual android.widget.Scroller.getSplineDeceleration:(F)D
dstore 2
start local 2 1: getstatic android.widget.Scroller.DECELERATION_RATE:F
f2d
dconst_1
dsub
dstore 4
start local 4 2: aload 0
getfield android.widget.Scroller.mFlingFriction:F
aload 0
getfield android.widget.Scroller.mPhysicalCoeff:F
fmul
f2d
getstatic android.widget.Scroller.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/Scroller;
0 3 1 velocity F
1 3 2 l D
2 3 4 decelMinusOne D
MethodParameters:
Name Flags
velocity
public void abortAnimation();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield android.widget.Scroller.mFinalX:I
putfield android.widget.Scroller.mCurrX:I
1: aload 0
aload 0
getfield android.widget.Scroller.mFinalY:I
putfield android.widget.Scroller.mCurrY:I
2: aload 0
iconst_1
putfield android.widget.Scroller.mFinished:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/Scroller;
public void extendDuration(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.widget.Scroller.timePassed:()I
istore 2
start local 2 1: aload 0
iload 2
iload 1
iadd
putfield android.widget.Scroller.mDuration:I
2: aload 0
fconst_1
aload 0
getfield android.widget.Scroller.mDuration:I
i2f
fdiv
putfield android.widget.Scroller.mDurationReciprocal:F
3: aload 0
iconst_0
putfield android.widget.Scroller.mFinished:Z
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/Scroller;
0 5 1 extend I
1 5 2 passed I
MethodParameters:
Name Flags
extend
public int timePassed();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
aload 0
getfield android.widget.Scroller.mStartTime:J
lsub
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Scroller;
public void setFinalX(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.widget.Scroller.mFinalX:I
1: aload 0
aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mStartX:I
isub
i2f
putfield android.widget.Scroller.mDeltaX:F
2: aload 0
iconst_0
putfield android.widget.Scroller.mFinished:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/Scroller;
0 4 1 newX I
MethodParameters:
Name Flags
newX
public void setFinalY(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.widget.Scroller.mFinalY:I
1: aload 0
aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mStartY:I
isub
i2f
putfield android.widget.Scroller.mDeltaY:F
2: aload 0
iconst_0
putfield android.widget.Scroller.mFinished:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/Scroller;
0 4 1 newY I
MethodParameters:
Name Flags
newY
public boolean isScrollingInDirection(float, float);
descriptor: (FF)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.widget.Scroller.mFinished:Z
ifne 3
fload 1
invokestatic java.lang.Math.signum:(F)F
aload 0
getfield android.widget.Scroller.mFinalX:I
aload 0
getfield android.widget.Scroller.mStartX:I
isub
i2f
invokestatic java.lang.Math.signum:(F)F
fcmpl
ifne 3
1: fload 2
invokestatic java.lang.Math.signum:(F)F
aload 0
getfield android.widget.Scroller.mFinalY:I
aload 0
getfield android.widget.Scroller.mStartY:I
isub
i2f
invokestatic java.lang.Math.signum:(F)F
fcmpl
ifne 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/Scroller;
0 4 1 xvel F
0 4 2 yvel F
MethodParameters:
Name Flags
xvel
yvel
}
SourceFile: "Scroller.java"
NestMembers:
android.widget.Scroller$ViscousFluidInterpolator
InnerClasses:
ViscousFluidInterpolator = android.widget.Scroller$ViscousFluidInterpolator of android.widget.Scroller