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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.transition.CircularPropagation this
         0: .line 32
            aload 0 /* this */
            invokespecial android.transition.VisibilityPropagation.<init>:()V
         1: .line 35
            aload 0 /* this */
            ldc 3.0
            putfield android.transition.CircularPropagation.mPropagationSpeed:F
         2: .line 32
            return
        end local 0 // android.transition.CircularPropagation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/transition/CircularPropagation;

  public void setPropagationSpeed(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.transition.CircularPropagation this
        start local 1 // float propagationSpeed
         0: .line 50
            fload 1 /* propagationSpeed */
            fconst_0
            fcmpl
            ifne 2
         1: .line 51
            new java.lang.IllegalArgumentException
            dup
            ldc "propagationSpeed may not be 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* propagationSpeed */
            putfield android.transition.CircularPropagation.mPropagationSpeed:F
         3: .line 54
            return
        end local 1 // float propagationSpeed
        end local 0 // android.transition.CircularPropagation this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Landroid/transition/CircularPropagation;
            0    4     1  propagationSpeed  F
    MethodParameters:
                  Name  Flags
      propagationSpeed  

  public long getStartDelay(android.view.ViewGroup, android.transition.Transition, android.transition.TransitionValues, android.transition.TransitionValues);
    descriptor: (Landroid/view/ViewGroup;Landroid/transition/Transition;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=20, args_size=5
        start local 0 // android.transition.CircularPropagation this
        start local 1 // android.view.ViewGroup sceneRoot
        start local 2 // android.transition.Transition transition
        start local 3 // android.transition.TransitionValues startValues
        start local 4 // android.transition.TransitionValues endValues
         0: .line 59
            aload 3 /* startValues */
            ifnonnull 2
            aload 4 /* endValues */
            ifnonnull 2
         1: .line 60
            lconst_0
            lreturn
         2: .line 62
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* directionMultiplier */
        start local 5 // int directionMultiplier
         3: .line 64
            aload 4 /* endValues */
            ifnull 4
            aload 0 /* this */
            aload 3 /* startValues */
            invokevirtual android.transition.CircularPropagation.getViewVisibility:(Landroid/transition/TransitionValues;)I
            ifne 7
         4: .line 65
      StackMap locals: int
      StackMap stack:
            aload 3 /* startValues */
            astore 6 /* positionValues */
        start local 6 // android.transition.TransitionValues positionValues
         5: .line 66
            iconst_m1
            istore 5 /* directionMultiplier */
         6: .line 67
            goto 8
        end local 6 // android.transition.TransitionValues positionValues
         7: .line 68
      StackMap locals:
      StackMap stack:
            aload 4 /* endValues */
            astore 6 /* positionValues */
        start local 6 // android.transition.TransitionValues positionValues
         8: .line 71
      StackMap locals: android.transition.TransitionValues
      StackMap stack:
            aload 0 /* this */
            aload 6 /* positionValues */
            invokevirtual android.transition.CircularPropagation.getViewX:(Landroid/transition/TransitionValues;)I
            istore 7 /* viewCenterX */
        start local 7 // int viewCenterX
         9: .line 72
            aload 0 /* this */
            aload 6 /* positionValues */
            invokevirtual android.transition.CircularPropagation.getViewY:(Landroid/transition/TransitionValues;)I
            istore 8 /* viewCenterY */
        start local 8 // int viewCenterY
        10: .line 74
            aload 2 /* transition */
            invokevirtual android.transition.Transition.getEpicenter:()Landroid/graphics/Rect;
            astore 9 /* epicenter */
        start local 9 // android.graphics.Rect epicenter
        11: .line 77
            aload 9 /* epicenter */
            ifnull 15
        12: .line 78
            aload 9 /* epicenter */
            invokevirtual android.graphics.Rect.centerX:()I
            istore 10 /* epicenterX */
        start local 10 // int epicenterX
        13: .line 79
            aload 9 /* epicenter */
            invokevirtual android.graphics.Rect.centerY:()I
            istore 11 /* epicenterY */
        start local 11 // int epicenterY
        14: .line 80
            goto 23
        end local 11 // int epicenterY
        end local 10 // int epicenterX
        15: .line 81
      StackMap locals: int int android.graphics.Rect
      StackMap stack:
            iconst_2
            newarray 10
            astore 12 /* loc */
        start local 12 // int[] loc
        16: .line 82
            aload 1 /* sceneRoot */
            aload 12 /* loc */
            invokevirtual android.view.ViewGroup.getLocationOnScreen:([I)V
        17: .line 83
            aload 12 /* loc */
            iconst_0
            iaload
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getWidth:()I
            iconst_2
            idiv
            iadd
            i2f
        18: .line 84
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getTranslationX:()F
        19: .line 83
            fadd
            invokestatic java.lang.Math.round:(F)I
            istore 10 /* epicenterX */
        start local 10 // int epicenterX
        20: .line 85
            aload 12 /* loc */
            iconst_1
            iaload
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getHeight:()I
            iconst_2
            idiv
            iadd
            i2f
        21: .line 86
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getTranslationY:()F
        22: .line 85
            fadd
            invokestatic java.lang.Math.round:(F)I
            istore 11 /* epicenterY */
        end local 12 // int[] loc
        start local 11 // int epicenterY
        23: .line 88
      StackMap locals: int int
      StackMap stack:
            iload 7 /* viewCenterX */
            i2f
            iload 8 /* viewCenterY */
            i2f
            iload 10 /* epicenterX */
            i2f
            iload 11 /* epicenterY */
            i2f
            invokestatic android.transition.CircularPropagation.distance:(FFFF)D
            dstore 12 /* distance */
        start local 12 // double distance
        24: .line 89
            fconst_0
            fconst_0
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getWidth:()I
            i2f
            aload 1 /* sceneRoot */
            invokevirtual android.view.ViewGroup.getHeight:()I
            i2f
            invokestatic android.transition.CircularPropagation.distance:(FFFF)D
            dstore 14 /* maxDistance */
        start local 14 // double maxDistance
        25: .line 90
            dload 12 /* distance */
            dload 14 /* maxDistance */
            ddiv
            dstore 16 /* distanceFraction */
        start local 16 // double distanceFraction
        26: .line 92
            aload 2 /* transition */
            invokevirtual android.transition.Transition.getDuration:()J
            lstore 18 /* duration */
        start local 18 // long duration
        27: .line 93
            lload 18 /* duration */
            lconst_0
            lcmp
            ifge 29
        28: .line 94
            ldc 300
            lstore 18 /* duration */
        29: .line 97
      StackMap locals: android.transition.CircularPropagation android.view.ViewGroup android.transition.Transition android.transition.TransitionValues android.transition.TransitionValues int android.transition.TransitionValues int int android.graphics.Rect int int double double double long
      StackMap stack:
            lload 18 /* duration */
            iload 5 /* directionMultiplier */
            i2l
            lmul
            l2f
            aload 0 /* this */
            getfield android.transition.CircularPropagation.mPropagationSpeed:F
            fdiv
            f2d
            dload 16 /* distanceFraction */
            dmul
            invokestatic java.lang.Math.round:(D)J
            lreturn
        end local 18 // long duration
        end local 16 // double distanceFraction
        end local 14 // double maxDistance
        end local 12 // double distance
        end local 11 // int epicenterY
        end local 10 // int epicenterX
        end local 9 // android.graphics.Rect epicenter
        end local 8 // int viewCenterY
        end local 7 // int viewCenterX
        end local 6 // android.transition.TransitionValues positionValues
        end local 5 // int directionMultiplier
        end local 4 // android.transition.TransitionValues endValues
        end local 3 // android.transition.TransitionValues startValues
        end local 2 // android.transition.Transition transition
        end local 1 // android.view.ViewGroup sceneRoot
        end local 0 // android.transition.CircularPropagation this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   30     0                 this  Landroid/transition/CircularPropagation;
            0   30     1            sceneRoot  Landroid/view/ViewGroup;
            0   30     2           transition  Landroid/transition/Transition;
            0   30     3          startValues  Landroid/transition/TransitionValues;
            0   30     4            endValues  Landroid/transition/TransitionValues;
            3   30     5  directionMultiplier  I
            5    7     6       positionValues  Landroid/transition/TransitionValues;
            8   30     6       positionValues  Landroid/transition/TransitionValues;
            9   30     7          viewCenterX  I
           10   30     8          viewCenterY  I
           11   30     9            epicenter  Landroid/graphics/Rect;
           13   15    10           epicenterX  I
           20   30    10           epicenterX  I
           14   15    11           epicenterY  I
           23   30    11           epicenterY  I
           16   23    12                  loc  [I
           24   30    12             distance  D
           25   30    14          maxDistance  D
           26   30    16     distanceFraction  D
           27   30    18             duration  J
    MethodParameters:
             Name  Flags
      sceneRoot    
      transition   
      startValues  
      endValues    

  private static double distance(float, float, float, float);
    descriptor: (FFFF)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // float x1
        start local 1 // float y1
        start local 2 // float x2
        start local 3 // float y2
         0: .line 101
            fload 2 /* x2 */
            fload 0 /* x1 */
            fsub
            f2d
            dstore 4 /* x */
        start local 4 // double x
         1: .line 102
            fload 3 /* y2 */
            fload 1 /* y1 */
            fsub
            f2d
            dstore 6 /* y */
        start local 6 // double y
         2: .line 103
            dload 4 /* x */
            dload 6 /* y */
            invokestatic java.lang.Math.hypot:(DD)D
            dreturn
        end local 6 // double y
        end local 4 // double x
        end local 3 // float y2
        end local 2 // float x2
        end local 1 // float y1
        end local 0 // float x1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    x1  F
            0    3     1    y1  F
            0    3     2    x2  F
            0    3     3    y2  F
            1    3     4     x  D
            2    3     6     y  D
    MethodParameters:
      Name  Flags
      x1    
      y1    
      x2    
      y2    
}
SourceFile: "CircularPropagation.java"