public class android.widget.EdgeEffect
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.widget.EdgeEffect
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "EdgeEffect"

  private static final int RECEDE_TIME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 600

  private static final int PULL_TIME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 167

  private static final int PULL_DECAY_TIME;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2000

  private static final float MAX_ALPHA;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.15

  private static final float GLOW_ALPHA_START;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.09

  private static final float MAX_GLOW_SCALE;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2.0

  private static final float PULL_GLOW_BEGIN;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.0

  private static final int MIN_VELOCITY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final int MAX_VELOCITY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private static final float EPSILON;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.001

  private static final double ANGLE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.5235987755982988

  private static final float SIN;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final float COS;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final float RADIUS_FACTOR;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.6

  private float mGlowAlpha;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mGlowScaleY;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mGlowAlphaStart;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mGlowAlphaFinish;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mGlowScaleYStart;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mGlowScaleYFinish;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private long mStartTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private float mDuration;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private final android.view.animation.Interpolator mInterpolator;
    descriptor: Landroid/view/animation/Interpolator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final int STATE_IDLE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int STATE_PULL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STATE_ABSORB;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int STATE_RECEDE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int STATE_PULL_DECAY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final float PULL_DISTANCE_ALPHA_GLOW_FACTOR;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.8

  private static final int VELOCITY_GLOW_FACTOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private int mState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private float mPullDistance;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private final android.graphics.Rect mBounds;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.graphics.Paint mPaint;
    descriptor: Landroid/graphics/Paint;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private float mRadius;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mBaseGlowScale;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mDisplacement;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mTargetDisplacement;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 77
            ldc 0.5235987755982988
            invokestatic java.lang.Math.sin:(D)D
            d2f
            putstatic android.widget.EdgeEffect.SIN:F
         1: .line 78
            ldc 0.5235987755982988
            invokestatic java.lang.Math.cos:(D)D
            d2f
            putstatic android.widget.EdgeEffect.COS:F
         2: .line 102
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  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 // android.widget.EdgeEffect this
         0: .line 122
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.styleable cannot be resolved to a variable\n\tcom.android.internal.R.styleable cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/EdgeEffect;
    MethodParameters:
         Name  Flags
      context  

  public void setSize(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // android.widget.EdgeEffect this
        start local 1 // int width
        start local 2 // int height
         0: .line 139
            iload 1 /* width */
            i2f
            ldc 0.6
            fmul
            getstatic android.widget.EdgeEffect.SIN:F
            fdiv
            fstore 3 /* r */
        start local 3 // float r
         1: .line 140
            getstatic android.widget.EdgeEffect.COS:F
            fload 3 /* r */
            fmul
            fstore 4 /* y */
        start local 4 // float y
         2: .line 141
            fload 3 /* r */
            fload 4 /* y */
            fsub
            fstore 5 /* h */
        start local 5 // float h
         3: .line 142
            iload 2 /* height */
            i2f
            ldc 0.6
            fmul
            getstatic android.widget.EdgeEffect.SIN:F
            fdiv
            fstore 6 /* or */
        start local 6 // float or
         4: .line 143
            getstatic android.widget.EdgeEffect.COS:F
            fload 6 /* or */
            fmul
            fstore 7 /* oy */
        start local 7 // float oy
         5: .line 144
            fload 6 /* or */
            fload 7 /* oy */
            fsub
            fstore 8 /* oh */
        start local 8 // float oh
         6: .line 146
            aload 0 /* this */
            fload 3 /* r */
            putfield android.widget.EdgeEffect.mRadius:F
         7: .line 147
            aload 0 /* this */
            fload 5 /* h */
            fconst_0
            fcmpl
            ifle 8
            fload 8 /* oh */
            fload 5 /* h */
            fdiv
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            goto 9
      StackMap locals: android.widget.EdgeEffect int int float float float float float float
      StackMap stack: android.widget.EdgeEffect
         8: fconst_1
      StackMap locals: android.widget.EdgeEffect int int float float float float float float
      StackMap stack: android.widget.EdgeEffect float
         9: putfield android.widget.EdgeEffect.mBaseGlowScale:F
        10: .line 149
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            iload 1 /* width */
            iload 2 /* height */
            i2f
            fload 5 /* h */
            invokestatic java.lang.Math.min:(FF)F
            f2i
            invokevirtual android.graphics.Rect.set:(IIII)V
        11: .line 150
            return
        end local 8 // float oh
        end local 7 // float oy
        end local 6 // float or
        end local 5 // float h
        end local 4 // float y
        end local 3 // float r
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Landroid/widget/EdgeEffect;
            0   12     1   width  I
            0   12     2  height  I
            1   12     3       r  F
            2   12     4       y  F
            3   12     5       h  F
            4   12     6      or  F
            5   12     7      oy  F
            6   12     8      oh  F
    MethodParameters:
        Name  Flags
      width   
      height  

  public boolean isFinished();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 160
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/EdgeEffect;

  public void finish();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 168
            aload 0 /* this */
            iconst_0
            putfield android.widget.EdgeEffect.mState:I
         1: .line 169
            return
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/EdgeEffect;

  public void onPull(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.EdgeEffect this
        start local 1 // float deltaDistance
         0: .line 185
            aload 0 /* this */
            fload 1 /* deltaDistance */
            ldc 0.5
            invokevirtual android.widget.EdgeEffect.onPull:(FF)V
         1: .line 186
            return
        end local 1 // float deltaDistance
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Landroid/widget/EdgeEffect;
            0    2     1  deltaDistance  F
    MethodParameters:
               Name  Flags
      deltaDistance  

  public void onPull(float, float);
    descriptor: (FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // android.widget.EdgeEffect this
        start local 1 // float deltaDistance
        start local 2 // float displacement
         0: .line 202
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            lstore 3 /* now */
        start local 3 // long now
         1: .line 203
            aload 0 /* this */
            fload 2 /* displacement */
            putfield android.widget.EdgeEffect.mTargetDisplacement:F
         2: .line 204
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            iconst_4
            if_icmpne 4
            lload 3 /* now */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mStartTime:J
            lsub
            l2f
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mDuration:F
            fcmpg
            ifge 4
         3: .line 205
            return
         4: .line 207
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            iconst_1
            if_icmpeq 6
         5: .line 208
            aload 0 /* this */
            fconst_0
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            invokestatic java.lang.Math.max:(FF)F
            putfield android.widget.EdgeEffect.mGlowScaleY:F
         6: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.widget.EdgeEffect.mState:I
         7: .line 212
            aload 0 /* this */
            lload 3 /* now */
            putfield android.widget.EdgeEffect.mStartTime:J
         8: .line 213
            aload 0 /* this */
            ldc 167.0
            putfield android.widget.EdgeEffect.mDuration:F
         9: .line 215
            aload 0 /* this */
            dup
            getfield android.widget.EdgeEffect.mPullDistance:F
            fload 1 /* deltaDistance */
            fadd
            putfield android.widget.EdgeEffect.mPullDistance:F
        10: .line 217
            fload 1 /* deltaDistance */
            invokestatic java.lang.Math.abs:(F)F
            fstore 5 /* absdd */
        start local 5 // float absdd
        11: .line 218
            aload 0 /* this */
            aload 0 /* this */
            ldc 0.15
        12: .line 219
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            fload 5 /* absdd */
            ldc 0.8
            fmul
            fadd
        13: .line 218
            invokestatic java.lang.Math.min:(FF)F
            dup_x1
            putfield android.widget.EdgeEffect.mGlowAlphaStart:F
            putfield android.widget.EdgeEffect.mGlowAlpha:F
        14: .line 221
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPullDistance:F
            fconst_0
            fcmpl
            ifne 17
        15: .line 222
            aload 0 /* this */
            aload 0 /* this */
            fconst_0
            dup_x1
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
            putfield android.widget.EdgeEffect.mGlowScaleY:F
        16: .line 223
            goto 23
        17: .line 224
      StackMap locals: float
      StackMap stack:
            dconst_0
            dconst_1
            dconst_1
        18: .line 225
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPullDistance:F
            invokestatic java.lang.Math.abs:(F)F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.height:()I
            i2f
            fmul
            f2d
            invokestatic java.lang.Math.sqrt:(D)D
            ddiv
            dsub
            ldc 0.3
            dsub
        19: .line 224
            invokestatic java.lang.Math.max:(DD)D
        20: .line 225
            ldc 0.7
        21: .line 224
            ddiv
            d2f
            fstore 6 /* scale */
        start local 6 // float scale
        22: .line 227
            aload 0 /* this */
            aload 0 /* this */
            fload 6 /* scale */
            dup_x1
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
            putfield android.widget.EdgeEffect.mGlowScaleY:F
        end local 6 // float scale
        23: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            putfield android.widget.EdgeEffect.mGlowAlphaFinish:F
        24: .line 231
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            putfield android.widget.EdgeEffect.mGlowScaleYFinish:F
        25: .line 232
            return
        end local 5 // float absdd
        end local 3 // long now
        end local 2 // float displacement
        end local 1 // float deltaDistance
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Landroid/widget/EdgeEffect;
            0   26     1  deltaDistance  F
            0   26     2   displacement  F
            1   26     3            now  J
           11   26     5          absdd  F
           22   23     6          scale  F
    MethodParameters:
               Name  Flags
      deltaDistance  
      displacement   

  public void onRelease();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 241
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mPullDistance:F
         1: .line 243
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            iconst_1
            if_icmpeq 3
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            iconst_4
            if_icmpeq 3
         2: .line 244
            return
         3: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield android.widget.EdgeEffect.mState:I
         4: .line 248
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            putfield android.widget.EdgeEffect.mGlowAlphaStart:F
         5: .line 249
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
         6: .line 251
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowAlphaFinish:F
         7: .line 252
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowScaleYFinish:F
         8: .line 254
            aload 0 /* this */
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            putfield android.widget.EdgeEffect.mStartTime:J
         9: .line 255
            aload 0 /* this */
            ldc 600.0
            putfield android.widget.EdgeEffect.mDuration:F
        10: .line 256
            return
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/widget/EdgeEffect;

  public void onAbsorb(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.widget.EdgeEffect this
        start local 1 // int velocity
         0: .line 269
            aload 0 /* this */
            iconst_2
            putfield android.widget.EdgeEffect.mState:I
         1: .line 270
            bipush 100
            iload 1 /* velocity */
            invokestatic java.lang.Math.abs:(I)I
            invokestatic java.lang.Math.max:(II)I
            sipush 10000
            invokestatic java.lang.Math.min:(II)I
            istore 1 /* velocity */
         2: .line 272
            aload 0 /* this */
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            putfield android.widget.EdgeEffect.mStartTime:J
         3: .line 273
            aload 0 /* this */
            ldc 0.15
            iload 1 /* velocity */
            i2f
            ldc 0.02
            fmul
            fadd
            putfield android.widget.EdgeEffect.mDuration:F
         4: .line 277
            aload 0 /* this */
            ldc 0.09
            putfield android.widget.EdgeEffect.mGlowAlphaStart:F
         5: .line 278
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            fconst_0
            invokestatic java.lang.Math.max:(FF)F
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
         6: .line 285
            aload 0 /* this */
            ldc 0.025
            iload 1 /* velocity */
            iload 1 /* velocity */
            bipush 100
            idiv
            imul
            i2f
            ldc 1.5E-4
            fmul
            fconst_2
            fdiv
            fadd
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            putfield android.widget.EdgeEffect.mGlowScaleYFinish:F
         7: .line 287
            aload 0 /* this */
         8: .line 288
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlphaStart:F
            iload 1 /* velocity */
            bipush 6
            imul
            i2f
            ldc 1.0E-5
            fmul
            ldc 0.15
            invokestatic java.lang.Math.min:(FF)F
         9: .line 287
            invokestatic java.lang.Math.max:(FF)F
            putfield android.widget.EdgeEffect.mGlowAlphaFinish:F
        10: .line 289
            aload 0 /* this */
            ldc 0.5
            putfield android.widget.EdgeEffect.mTargetDisplacement:F
        11: .line 290
            return
        end local 1 // int velocity
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/widget/EdgeEffect;
            0   12     1  velocity  I
    MethodParameters:
          Name  Flags
      velocity  

  public void setColor(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.EdgeEffect this
        start local 1 // int color
         0: .line 298
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPaint:Landroid/graphics/Paint;
            iload 1 /* color */
            invokevirtual android.graphics.Paint.setColor:(I)V
         1: .line 299
            return
        end local 1 // int color
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/widget/EdgeEffect;
            0    2     1  color  I
    MethodParameters:
       Name  Flags
      color  

  public int getColor();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 307
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPaint:Landroid/graphics/Paint;
            invokevirtual android.graphics.Paint.getColor:()I
            ireturn
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/EdgeEffect;

  public boolean draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // android.widget.EdgeEffect this
        start local 1 // android.graphics.Canvas canvas
         0: .line 321
            aload 0 /* this */
            invokevirtual android.widget.EdgeEffect.update:()V
         1: .line 323
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.save:()I
            istore 2 /* count */
        start local 2 // int count
         2: .line 325
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.centerX:()I
            i2f
            fstore 3 /* centerX */
        start local 3 // float centerX
         3: .line 326
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.height:()I
            i2f
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mRadius:F
            fsub
            fstore 4 /* centerY */
        start local 4 // float centerY
         4: .line 328
            aload 1 /* canvas */
            fconst_1
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBaseGlowScale:F
            fmul
            fload 3 /* centerX */
            fconst_0
            invokevirtual android.graphics.Canvas.scale:(FFFF)V
         5: .line 330
            fconst_0
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mDisplacement:F
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            invokestatic java.lang.Math.max:(FF)F
            ldc 0.5
            fsub
            fstore 5 /* displacement */
        start local 5 // float displacement
         6: .line 331
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.width:()I
            i2f
            fload 5 /* displacement */
            fmul
            fconst_2
            fdiv
            fstore 6 /* translateX */
        start local 6 // float translateX
         7: .line 333
            aload 1 /* canvas */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Canvas.clipRect:(Landroid/graphics/Rect;)Z
            pop
         8: .line 334
            aload 1 /* canvas */
            fload 6 /* translateX */
            fconst_0
            invokevirtual android.graphics.Canvas.translate:(FF)V
         9: .line 335
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPaint:Landroid/graphics/Paint;
            ldc 255.0
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            fmul
            f2i
            invokevirtual android.graphics.Paint.setAlpha:(I)V
        10: .line 336
            aload 1 /* canvas */
            fload 3 /* centerX */
            fload 4 /* centerY */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mRadius:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mPaint:Landroid/graphics/Paint;
            invokevirtual android.graphics.Canvas.drawCircle:(FFFLandroid/graphics/Paint;)V
        11: .line 337
            aload 1 /* canvas */
            iload 2 /* count */
            invokevirtual android.graphics.Canvas.restoreToCount:(I)V
        12: .line 339
            iconst_0
            istore 7 /* oneLastFrame */
        start local 7 // boolean oneLastFrame
        13: .line 340
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            iconst_3
            if_icmpne 16
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            fconst_0
            fcmpl
            ifne 16
        14: .line 341
            aload 0 /* this */
            iconst_0
            putfield android.widget.EdgeEffect.mState:I
        15: .line 342
            iconst_1
            istore 7 /* oneLastFrame */
        16: .line 345
      StackMap locals: android.widget.EdgeEffect android.graphics.Canvas int float float float float int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            ifne 17
            iload 7 /* oneLastFrame */
            ifne 17
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        17: iconst_1
            ireturn
        end local 7 // boolean oneLastFrame
        end local 6 // float translateX
        end local 5 // float displacement
        end local 4 // float centerY
        end local 3 // float centerX
        end local 2 // int count
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Landroid/widget/EdgeEffect;
            0   18     1        canvas  Landroid/graphics/Canvas;
            2   18     2         count  I
            3   18     3       centerX  F
            4   18     4       centerY  F
            6   18     5  displacement  F
            7   18     6    translateX  F
           13   18     7  oneLastFrame  Z
    MethodParameters:
        Name  Flags
      canvas  

  public int getMaxHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 354
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mBounds:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.height:()I
            i2f
            fconst_2
            fmul
            ldc 0.5
            fadd
            f2i
            ireturn
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/EdgeEffect;

  private void update();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.widget.EdgeEffect this
         0: .line 358
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            lstore 1 /* time */
        start local 1 // long time
         1: .line 359
            lload 1 /* time */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mStartTime:J
            lsub
            l2f
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mDuration:F
            fdiv
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            fstore 3 /* t */
        start local 3 // float t
         2: .line 361
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mInterpolator:Landroid/view/animation/Interpolator;
            fload 3 /* t */
            invokeinterface android.view.animation.Interpolator.getInterpolation:(F)F
            fstore 4 /* interp */
        start local 4 // float interp
         3: .line 363
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlphaStart:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlphaFinish:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlphaStart:F
            fsub
            fload 4 /* interp */
            fmul
            fadd
            putfield android.widget.EdgeEffect.mGlowAlpha:F
         4: .line 364
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleYStart:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleYFinish:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleYStart:F
            fsub
            fload 4 /* interp */
            fmul
            fadd
            putfield android.widget.EdgeEffect.mGlowScaleY:F
         5: .line 365
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mDisplacement:F
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mTargetDisplacement:F
            fadd
            fconst_2
            fdiv
            putfield android.widget.EdgeEffect.mDisplacement:F
         6: .line 367
            fload 3 /* t */
            ldc 0.999
            fcmpl
            iflt 27
         7: .line 368
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mState:I
            tableswitch { // 1 - 4
                    1: 16
                    2: 8
                    3: 26
                    4: 24
              default: 27
          }
         8: .line 370
      StackMap locals: long float float
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield android.widget.EdgeEffect.mState:I
         9: .line 371
            aload 0 /* this */
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            putfield android.widget.EdgeEffect.mStartTime:J
        10: .line 372
            aload 0 /* this */
            ldc 600.0
            putfield android.widget.EdgeEffect.mDuration:F
        11: .line 374
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            putfield android.widget.EdgeEffect.mGlowAlphaStart:F
        12: .line 375
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
        13: .line 378
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowAlphaFinish:F
        14: .line 379
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowScaleYFinish:F
        15: .line 380
            goto 27
        16: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield android.widget.EdgeEffect.mState:I
        17: .line 383
            aload 0 /* this */
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            putfield android.widget.EdgeEffect.mStartTime:J
        18: .line 384
            aload 0 /* this */
            ldc 2000.0
            putfield android.widget.EdgeEffect.mDuration:F
        19: .line 386
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowAlpha:F
            putfield android.widget.EdgeEffect.mGlowAlphaStart:F
        20: .line 387
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.EdgeEffect.mGlowScaleY:F
            putfield android.widget.EdgeEffect.mGlowScaleYStart:F
        21: .line 390
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowAlphaFinish:F
        22: .line 391
            aload 0 /* this */
            fconst_0
            putfield android.widget.EdgeEffect.mGlowScaleYFinish:F
        23: .line 392
            goto 27
        24: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield android.widget.EdgeEffect.mState:I
        25: .line 395
            goto 27
        26: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.EdgeEffect.mState:I
        27: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 4 // float interp
        end local 3 // float t
        end local 1 // long time
        end local 0 // android.widget.EdgeEffect this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Landroid/widget/EdgeEffect;
            1   28     1    time  J
            2   28     3       t  F
            3   28     4  interp  F
}
SourceFile: "EdgeEffect.java"