public class android.transition.Explode extends android.transition.Visibility
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.transition.Explode
  super_class: android.transition.Visibility
{
  private static final android.animation.TimeInterpolator sDecelerate;
    descriptor: Landroid/animation/TimeInterpolator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final android.animation.TimeInterpolator sAccelerate;
    descriptor: Landroid/animation/TimeInterpolator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Explode"

  private static final java.lang.String PROPNAME_SCREEN_BOUNDS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "android:explode:screenBounds"

  private int[] mTempLoc;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 41
            new android.view.animation.DecelerateInterpolator
            dup
            invokespecial android.view.animation.DecelerateInterpolator.<init>:()V
            putstatic android.transition.Explode.sDecelerate:Landroid/animation/TimeInterpolator;
         1: .line 42
            new android.view.animation.AccelerateInterpolator
            dup
            invokespecial android.view.animation.AccelerateInterpolator.<init>:()V
            putstatic android.transition.Explode.sAccelerate:Landroid/animation/TimeInterpolator;
         2: .line 44
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.transition.Explode this
         0: .line 48
            aload 0 /* this */
            invokespecial android.transition.Visibility.<init>:()V
         1: .line 46
            aload 0 /* this */
            iconst_2
            newarray 10
            putfield android.transition.Explode.mTempLoc:[I
         2: .line 49
            aload 0 /* this */
            new android.transition.CircularPropagation
            dup
            invokespecial android.transition.CircularPropagation.<init>:()V
            invokevirtual android.transition.Explode.setPropagation:(Landroid/transition/TransitionPropagation;)V
         3: .line 50
            return
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/transition/Explode;

  public void <init>(android.content.Context, android.util.AttributeSet);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.transition.Explode this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
         0: .line 53
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            invokespecial android.transition.Visibility.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;)V
         1: .line 46
            aload 0 /* this */
            iconst_2
            newarray 10
            putfield android.transition.Explode.mTempLoc:[I
         2: .line 54
            aload 0 /* this */
            new android.transition.CircularPropagation
            dup
            invokespecial android.transition.CircularPropagation.<init>:()V
            invokevirtual android.transition.Explode.setPropagation:(Landroid/transition/TransitionPropagation;)V
         3: .line 55
            return
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/transition/Explode;
            0    4     1  context  Landroid/content/Context;
            0    4     2    attrs  Landroid/util/AttributeSet;
    MethodParameters:
         Name  Flags
      context  
      attrs    

  private void captureValues(android.transition.TransitionValues);
    descriptor: (Landroid/transition/TransitionValues;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=2
        start local 0 // android.transition.Explode this
        start local 1 // android.transition.TransitionValues transitionValues
         0: .line 58
            aload 1 /* transitionValues */
            getfield android.transition.TransitionValues.view:Landroid/view/View;
            astore 2 /* view */
        start local 2 // android.view.View view
         1: .line 59
            aload 2 /* view */
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            invokevirtual android.view.View.getLocationOnScreen:([I)V
         2: .line 60
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_0
            iaload
            istore 3 /* left */
        start local 3 // int left
         3: .line 61
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_1
            iaload
            istore 4 /* top */
        start local 4 // int top
         4: .line 62
            iload 3 /* left */
            aload 2 /* view */
            invokevirtual android.view.View.getWidth:()I
            iadd
            istore 5 /* right */
        start local 5 // int right
         5: .line 63
            iload 4 /* top */
            aload 2 /* view */
            invokevirtual android.view.View.getHeight:()I
            iadd
            istore 6 /* bottom */
        start local 6 // int bottom
         6: .line 64
            aload 1 /* transitionValues */
            getfield android.transition.TransitionValues.values:Ljava/util/Map;
            ldc "android:explode:screenBounds"
            new android.graphics.Rect
            dup
            iload 3 /* left */
            iload 4 /* top */
            iload 5 /* right */
            iload 6 /* bottom */
            invokespecial android.graphics.Rect.<init>:(IIII)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 65
            return
        end local 6 // int bottom
        end local 5 // int right
        end local 4 // int top
        end local 3 // int left
        end local 2 // android.view.View view
        end local 1 // android.transition.TransitionValues transitionValues
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Landroid/transition/Explode;
            0    8     1  transitionValues  Landroid/transition/TransitionValues;
            1    8     2              view  Landroid/view/View;
            3    8     3              left  I
            4    8     4               top  I
            5    8     5             right  I
            6    8     6            bottom  I
    MethodParameters:
                  Name  Flags
      transitionValues  

  public void captureStartValues(android.transition.TransitionValues);
    descriptor: (Landroid/transition/TransitionValues;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.transition.Explode this
        start local 1 // android.transition.TransitionValues transitionValues
         0: .line 69
            aload 0 /* this */
            aload 1 /* transitionValues */
            invokespecial android.transition.Visibility.captureStartValues:(Landroid/transition/TransitionValues;)V
         1: .line 70
            aload 0 /* this */
            aload 1 /* transitionValues */
            invokevirtual android.transition.Explode.captureValues:(Landroid/transition/TransitionValues;)V
         2: .line 71
            return
        end local 1 // android.transition.TransitionValues transitionValues
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Landroid/transition/Explode;
            0    3     1  transitionValues  Landroid/transition/TransitionValues;
    MethodParameters:
                  Name  Flags
      transitionValues  

  public void captureEndValues(android.transition.TransitionValues);
    descriptor: (Landroid/transition/TransitionValues;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.transition.Explode this
        start local 1 // android.transition.TransitionValues transitionValues
         0: .line 75
            aload 0 /* this */
            aload 1 /* transitionValues */
            invokespecial android.transition.Visibility.captureEndValues:(Landroid/transition/TransitionValues;)V
         1: .line 76
            aload 0 /* this */
            aload 1 /* transitionValues */
            invokevirtual android.transition.Explode.captureValues:(Landroid/transition/TransitionValues;)V
         2: .line 77
            return
        end local 1 // android.transition.TransitionValues transitionValues
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Landroid/transition/Explode;
            0    3     1  transitionValues  Landroid/transition/TransitionValues;
    MethodParameters:
                  Name  Flags
      transitionValues  

  public android.animation.Animator onAppear(android.view.ViewGroup, android.view.View, android.transition.TransitionValues, android.transition.TransitionValues);
    descriptor: (Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=5
        start local 0 // android.transition.Explode this
        start local 1 // android.view.ViewGroup sceneRoot
        start local 2 // android.view.View view
        start local 3 // android.transition.TransitionValues startValues
        start local 4 // android.transition.TransitionValues endValues
         0: .line 82
            aload 4 /* endValues */
            ifnonnull 2
         1: .line 83
            aconst_null
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            aload 4 /* endValues */
            getfield android.transition.TransitionValues.values:Ljava/util/Map;
            ldc "android:explode:screenBounds"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.graphics.Rect
            astore 5 /* bounds */
        start local 5 // android.graphics.Rect bounds
         3: .line 86
            aload 2 /* view */
            invokevirtual android.view.View.getTranslationX:()F
            fstore 6 /* endX */
        start local 6 // float endX
         4: .line 87
            aload 2 /* view */
            invokevirtual android.view.View.getTranslationY:()F
            fstore 7 /* endY */
        start local 7 // float endY
         5: .line 88
            aload 0 /* this */
            aload 1 /* sceneRoot */
            aload 5 /* bounds */
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            invokevirtual android.transition.Explode.calculateOut:(Landroid/view/View;Landroid/graphics/Rect;[I)V
         6: .line 89
            fload 6 /* endX */
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_0
            iaload
            i2f
            fadd
            fstore 8 /* startX */
        start local 8 // float startX
         7: .line 90
            fload 7 /* endY */
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_1
            iaload
            i2f
            fadd
            fstore 9 /* startY */
        start local 9 // float startY
         8: .line 92
            aload 2 /* view */
            aload 4 /* endValues */
            aload 5 /* bounds */
            getfield android.graphics.Rect.left:I
            aload 5 /* bounds */
            getfield android.graphics.Rect.top:I
         9: .line 93
            fload 8 /* startX */
            fload 9 /* startY */
            fload 6 /* endX */
            fload 7 /* endY */
            getstatic android.transition.Explode.sDecelerate:Landroid/animation/TimeInterpolator;
            aload 0 /* this */
        10: .line 92
            invokestatic android.transition.TranslationAnimationCreator.createAnimation:(Landroid/view/View;Landroid/transition/TransitionValues;IIFFFFLandroid/animation/TimeInterpolator;Landroid/transition/Transition;)Landroid/animation/Animator;
            areturn
        end local 9 // float startY
        end local 8 // float startX
        end local 7 // float endY
        end local 6 // float endX
        end local 5 // android.graphics.Rect bounds
        end local 4 // android.transition.TransitionValues endValues
        end local 3 // android.transition.TransitionValues startValues
        end local 2 // android.view.View view
        end local 1 // android.view.ViewGroup sceneRoot
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Landroid/transition/Explode;
            0   11     1    sceneRoot  Landroid/view/ViewGroup;
            0   11     2         view  Landroid/view/View;
            0   11     3  startValues  Landroid/transition/TransitionValues;
            0   11     4    endValues  Landroid/transition/TransitionValues;
            3   11     5       bounds  Landroid/graphics/Rect;
            4   11     6         endX  F
            5   11     7         endY  F
            7   11     8       startX  F
            8   11     9       startY  F
    MethodParameters:
             Name  Flags
      sceneRoot    
      view         
      startValues  
      endValues    

  public android.animation.Animator onDisappear(android.view.ViewGroup, android.view.View, android.transition.TransitionValues, android.transition.TransitionValues);
    descriptor: (Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.transition.Explode this
         0: .line 109
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/transition/Explode;
    MethodParameters:
             Name  Flags
      sceneRoot    
      view         
      startValues  
      endValues    

  private void calculateOut(android.view.View, android.graphics.Rect, int[]);
    descriptor: (Landroid/view/View;Landroid/graphics/Rect;[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=19, args_size=4
        start local 0 // android.transition.Explode this
        start local 1 // android.view.View sceneRoot
        start local 2 // android.graphics.Rect bounds
        start local 3 // int[] outVector
         0: .line 126
            aload 1 /* sceneRoot */
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            invokevirtual android.view.View.getLocationOnScreen:([I)V
         1: .line 127
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_0
            iaload
            istore 4 /* sceneRootX */
        start local 4 // int sceneRootX
         2: .line 128
            aload 0 /* this */
            getfield android.transition.Explode.mTempLoc:[I
            iconst_1
            iaload
            istore 5 /* sceneRootY */
        start local 5 // int sceneRootY
         3: .line 132
            aload 0 /* this */
            invokevirtual android.transition.Explode.getEpicenter:()Landroid/graphics/Rect;
            astore 8 /* epicenter */
        start local 8 // android.graphics.Rect epicenter
         4: .line 133
            aload 8 /* epicenter */
            ifnonnull 12
         5: .line 134
            iload 4 /* sceneRootX */
            aload 1 /* sceneRoot */
            invokevirtual android.view.View.getWidth:()I
            iconst_2
            idiv
            iadd
         6: .line 135
            aload 1 /* sceneRoot */
            invokevirtual android.view.View.getTranslationX:()F
            invokestatic java.lang.Math.round:(F)I
         7: .line 134
            iadd
            istore 6 /* focalX */
        start local 6 // int focalX
         8: .line 136
            iload 5 /* sceneRootY */
            aload 1 /* sceneRoot */
            invokevirtual android.view.View.getHeight:()I
            iconst_2
            idiv
            iadd
         9: .line 137
            aload 1 /* sceneRoot */
            invokevirtual android.view.View.getTranslationY:()F
            invokestatic java.lang.Math.round:(F)I
        10: .line 136
            iadd
            istore 7 /* focalY */
        start local 7 // int focalY
        11: .line 138
            goto 14
        end local 7 // int focalY
        end local 6 // int focalX
        12: .line 139
      StackMap locals: android.transition.Explode android.view.View android.graphics.Rect int[] int int top top android.graphics.Rect
      StackMap stack:
            aload 8 /* epicenter */
            invokevirtual android.graphics.Rect.centerX:()I
            istore 6 /* focalX */
        start local 6 // int focalX
        13: .line 140
            aload 8 /* epicenter */
            invokevirtual android.graphics.Rect.centerY:()I
            istore 7 /* focalY */
        start local 7 // int focalY
        14: .line 143
      StackMap locals: android.transition.Explode android.view.View android.graphics.Rect int[] int int int int android.graphics.Rect
      StackMap stack:
            aload 2 /* bounds */
            invokevirtual android.graphics.Rect.centerX:()I
            istore 9 /* centerX */
        start local 9 // int centerX
        15: .line 144
            aload 2 /* bounds */
            invokevirtual android.graphics.Rect.centerY:()I
            istore 10 /* centerY */
        start local 10 // int centerY
        16: .line 145
            iload 9 /* centerX */
            iload 6 /* focalX */
            isub
            i2d
            dstore 11 /* xVector */
        start local 11 // double xVector
        17: .line 146
            iload 10 /* centerY */
            iload 7 /* focalY */
            isub
            i2d
            dstore 13 /* yVector */
        start local 13 // double yVector
        18: .line 148
            dload 11 /* xVector */
            dconst_0
            dcmpl
            ifne 21
            dload 13 /* yVector */
            dconst_0
            dcmpl
            ifne 21
        19: .line 150
            invokestatic java.lang.Math.random:()D
            ldc 2.0
            dmul
            dconst_1
            dsub
            dstore 11 /* xVector */
        20: .line 151
            invokestatic java.lang.Math.random:()D
            ldc 2.0
            dmul
            dconst_1
            dsub
            dstore 13 /* yVector */
        21: .line 153
      StackMap locals: android.transition.Explode android.view.View android.graphics.Rect int[] int int int int android.graphics.Rect int int double double
      StackMap stack:
            dload 11 /* xVector */
            dload 13 /* yVector */
            invokestatic java.lang.Math.hypot:(DD)D
            dstore 15 /* vectorSize */
        start local 15 // double vectorSize
        22: .line 154
            dload 11 /* xVector */
            dload 15 /* vectorSize */
            ddiv
            dstore 11 /* xVector */
        23: .line 155
            dload 13 /* yVector */
            dload 15 /* vectorSize */
            ddiv
            dstore 13 /* yVector */
        24: .line 158
            aload 1 /* sceneRoot */
            iload 6 /* focalX */
            iload 4 /* sceneRootX */
            isub
            iload 7 /* focalY */
            iload 5 /* sceneRootY */
            isub
            invokestatic android.transition.Explode.calculateMaxDistance:(Landroid/view/View;II)D
        25: .line 157
            dstore 17 /* maxDistance */
        start local 17 // double maxDistance
        26: .line 160
            aload 3 /* outVector */
            iconst_0
            dload 17 /* maxDistance */
            dload 11 /* xVector */
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2i
            iastore
        27: .line 161
            aload 3 /* outVector */
            iconst_1
            dload 17 /* maxDistance */
            dload 13 /* yVector */
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2i
            iastore
        28: .line 162
            return
        end local 17 // double maxDistance
        end local 15 // double vectorSize
        end local 13 // double yVector
        end local 11 // double xVector
        end local 10 // int centerY
        end local 9 // int centerX
        end local 8 // android.graphics.Rect epicenter
        end local 7 // int focalY
        end local 6 // int focalX
        end local 5 // int sceneRootY
        end local 4 // int sceneRootX
        end local 3 // int[] outVector
        end local 2 // android.graphics.Rect bounds
        end local 1 // android.view.View sceneRoot
        end local 0 // android.transition.Explode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Landroid/transition/Explode;
            0   29     1    sceneRoot  Landroid/view/View;
            0   29     2       bounds  Landroid/graphics/Rect;
            0   29     3    outVector  [I
            2   29     4   sceneRootX  I
            3   29     5   sceneRootY  I
            8   12     6       focalX  I
           13   29     6       focalX  I
           11   12     7       focalY  I
           14   29     7       focalY  I
            4   29     8    epicenter  Landroid/graphics/Rect;
           15   29     9      centerX  I
           16   29    10      centerY  I
           17   29    11      xVector  D
           18   29    13      yVector  D
           22   29    15   vectorSize  D
           26   29    17  maxDistance  D
    MethodParameters:
           Name  Flags
      sceneRoot  
      bounds     
      outVector  

  private static double calculateMaxDistance(android.view.View, int, int);
    descriptor: (Landroid/view/View;II)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.view.View sceneRoot
        start local 1 // int focalX
        start local 2 // int focalY
         0: .line 165
            iload 1 /* focalX */
            aload 0 /* sceneRoot */
            invokevirtual android.view.View.getWidth:()I
            iload 1 /* focalX */
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxX */
        start local 3 // int maxX
         1: .line 166
            iload 2 /* focalY */
            aload 0 /* sceneRoot */
            invokevirtual android.view.View.getHeight:()I
            iload 2 /* focalY */
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxY */
        start local 4 // int maxY
         2: .line 167
            iload 3 /* maxX */
            i2d
            iload 4 /* maxY */
            i2d
            invokestatic java.lang.Math.hypot:(DD)D
            dreturn
        end local 4 // int maxY
        end local 3 // int maxX
        end local 2 // int focalY
        end local 1 // int focalX
        end local 0 // android.view.View sceneRoot
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  sceneRoot  Landroid/view/View;
            0    3     1     focalX  I
            0    3     2     focalY  I
            1    3     3       maxX  I
            2    3     4       maxY  I
    MethodParameters:
           Name  Flags
      sceneRoot  
      focalX     
      focalY     
}
SourceFile: "Explode.java"