final class android.widget.SmartSelectSprite
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: android.widget.SmartSelectSprite
  super_class: java.lang.Object
{
  private static final int EXPAND_DURATION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 300

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

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

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

  private android.animation.Animator mActiveAnimator;
    descriptor: Landroid/animation/Animator;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Runnable mInvalidator;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mFillColor;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final java.util.Comparator<android.graphics.RectF> RECTANGLE_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Landroid/graphics/RectF;>;

  private android.graphics.drawable.Drawable mExistingDrawable;
    descriptor: Landroid/graphics/drawable/Drawable;
    flags: (0x0002) ACC_PRIVATE

  private android.widget.SmartSelectSprite$RectangleList mExistingRectangleList;
    descriptor: Landroid/widget/SmartSelectSprite$RectangleList;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 66
            invokedynamic applyAsDouble()Ljava/util/function/ToDoubleFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)D
                  android/widget/SmartSelectSprite.lambda$0(Landroid/graphics/RectF;)D (6)
                  (Landroid/graphics/RectF;)D
            invokestatic java.util.Comparator.comparingDouble:(Ljava/util/function/ToDoubleFunction;)Ljava/util/Comparator;
         1: .line 67
            invokedynamic applyAsDouble()Ljava/util/function/ToDoubleFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)D
                  android/widget/SmartSelectSprite.lambda$1(Landroid/graphics/RectF;)D (6)
                  (Landroid/graphics/RectF;)D
            invokeinterface java.util.Comparator.thenComparingDouble:(Ljava/util/function/ToDoubleFunction;)Ljava/util/Comparator;
         2: .line 65
            putstatic android.widget.SmartSelectSprite.RECTANGLE_COMPARATOR:Ljava/util/Comparator;
         3: .line 67
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(android.content.Context, int, java.lang.Runnable);
    descriptor: (Landroid/content/Context;ILjava/lang/Runnable;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.widget.SmartSelectSprite this
         0: .line 340
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tandroid.R.interpolator cannot be resolved to a type\n\tandroid.R.interpolator cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/SmartSelectSprite;
    MethodParameters:
                Name  Flags
      context         final
      highlightColor  
      invalidator     final

  public void startAnimation(android.graphics.PointF, java.util.List<android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout>, java.lang.Runnable);
    descriptor: (Landroid/graphics/PointF;Ljava/util/List;Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=15, args_size=4
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.graphics.PointF start
        start local 2 // java.util.List destinationRectangles
        start local 3 // java.lang.Runnable onAnimationEnd
         0: .line 368
            aload 0 /* this */
            invokevirtual android.widget.SmartSelectSprite.cancelAnimation:()V
         1: .line 371
            aload 0 /* this */
            invokedynamic onAnimationUpdate(Landroid/widget/SmartSelectSprite;)Landroid/animation/ValueAnimator$AnimatorUpdateListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Landroid/animation/ValueAnimator;)V
                  android/widget/SmartSelectSprite.lambda$2(Landroid/animation/ValueAnimator;)V (7)
                  (Landroid/animation/ValueAnimator;)V
         2: .line 370
            astore 4 /* updateListener */
        start local 4 // android.animation.ValueAnimator$AnimatorUpdateListener updateListener
         3: .line 373
            aload 2 /* destinationRectangles */
            invokeinterface java.util.List.size:()I
            istore 5 /* rectangleCount */
        start local 5 // int rectangleCount
         4: .line 375
            new java.util.ArrayList
            dup
            iload 5 /* rectangleCount */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* shapes */
        start local 6 // java.util.List shapes
         5: .line 376
            new java.util.ArrayList
            dup
            iload 5 /* rectangleCount */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* cornerAnimators */
        start local 7 // java.util.List cornerAnimators
         6: .line 378
            aconst_null
            astore 8 /* centerRectangle */
        start local 8 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout centerRectangle
         7: .line 380
            iconst_0
            istore 9 /* startingOffset */
        start local 9 // int startingOffset
         8: .line 382
            aload 2 /* destinationRectangles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 15
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int top java.util.Iterator
      StackMap stack:
         9: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout
            astore 10 /* rectangleWithTextSelectionLayout */
        start local 10 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout rectangleWithTextSelectionLayout
        10: .line 383
            aload 10 /* rectangleWithTextSelectionLayout */
            invokevirtual android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle:()Landroid/graphics/RectF;
            astore 12 /* rectangle */
        start local 12 // android.graphics.RectF rectangle
        11: .line 384
            aload 12 /* rectangle */
            aload 1 /* start */
            invokestatic android.widget.SmartSelectSprite.contains:(Landroid/graphics/RectF;Landroid/graphics/PointF;)Z
            ifeq 14
        12: .line 385
            aload 10 /* rectangleWithTextSelectionLayout */
            astore 8 /* centerRectangle */
        13: .line 386
            goto 16
        14: .line 388
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout java.util.Iterator android.graphics.RectF
      StackMap stack:
            iload 9 /* startingOffset */
            i2f
            aload 12 /* rectangle */
            invokevirtual android.graphics.RectF.width:()F
            fadd
            f2i
            istore 9 /* startingOffset */
        end local 12 // android.graphics.RectF rectangle
        end local 10 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout rectangleWithTextSelectionLayout
        15: .line 381
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        16: .line 391
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int
      StackMap stack:
            aload 8 /* centerRectangle */
            ifnonnull 18
        17: .line 392
            new java.lang.IllegalArgumentException
            dup
            ldc "Center point is not inside any of the rectangles!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 395
      StackMap locals:
      StackMap stack:
            iload 9 /* startingOffset */
            i2f
            aload 1 /* start */
            getfield android.graphics.PointF.x:F
            aload 8 /* centerRectangle */
            invokevirtual android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle:()Landroid/graphics/RectF;
            getfield android.graphics.RectF.left:F
            fsub
            fadd
            f2i
            istore 9 /* startingOffset */
        19: .line 398
            aload 8 /* centerRectangle */
            aload 2 /* destinationRectangles */
            invokestatic android.widget.SmartSelectSprite.generateDirections:(Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;Ljava/util/List;)[I
        20: .line 397
            astore 10 /* expansionDirections */
        start local 10 // int[] expansionDirections
        21: .line 400
            iconst_0
            istore 11 /* index */
        start local 11 // int index
        22: goto 35
        23: .line 402
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* destinationRectangles */
            iload 11 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout
        24: .line 401
            astore 12 /* rectangleWithTextSelectionLayout */
        start local 12 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout rectangleWithTextSelectionLayout
        25: .line 403
            aload 12 /* rectangleWithTextSelectionLayout */
            invokevirtual android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle:()Landroid/graphics/RectF;
            astore 13 /* rectangle */
        start local 13 // android.graphics.RectF rectangle
        26: .line 404
            new android.widget.SmartSelectSprite$RoundedRectangleShape
            dup
        27: .line 405
            aload 13 /* rectangle */
        28: .line 406
            aload 10 /* expansionDirections */
            iload 11 /* index */
            iaload
        29: .line 407
            aload 12 /* rectangleWithTextSelectionLayout */
            invokevirtual android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout.getTextSelectionLayout:()I
            ifne 30
            iconst_1
            goto 31
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int int[] int android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout android.graphics.RectF
      StackMap stack: new 26 new 26 android.graphics.RectF int
        30: iconst_0
        31: .line 404
      StackMap locals: android.widget.SmartSelectSprite android.graphics.PointF java.util.List java.lang.Runnable android.animation.ValueAnimator$AnimatorUpdateListener int java.util.List java.util.List android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout int int[] int android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout android.graphics.RectF
      StackMap stack: new 26 new 26 android.graphics.RectF int int
            invokespecial android.widget.SmartSelectSprite$RoundedRectangleShape.<init>:(Landroid/graphics/RectF;IZ)V
            astore 14 /* shape */
        start local 14 // android.widget.SmartSelectSprite$RoundedRectangleShape shape
        32: .line 409
            aload 7 /* cornerAnimators */
            aload 0 /* this */
            aload 14 /* shape */
            aload 4 /* updateListener */
            invokevirtual android.widget.SmartSelectSprite.createCornerAnimator:(Landroid/widget/SmartSelectSprite$RoundedRectangleShape;Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/animation/ObjectAnimator;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 410
            aload 6 /* shapes */
            aload 14 /* shape */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // android.widget.SmartSelectSprite$RoundedRectangleShape shape
        end local 13 // android.graphics.RectF rectangle
        end local 12 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout rectangleWithTextSelectionLayout
        34: .line 400
            iinc 11 /* index */ 1
      StackMap locals:
      StackMap stack:
        35: iload 11 /* index */
            iload 5 /* rectangleCount */
            if_icmplt 23
        end local 11 // int index
        36: .line 413
            new android.widget.SmartSelectSprite$RectangleList
            dup
            aload 6 /* shapes */
            invokespecial android.widget.SmartSelectSprite$RectangleList.<init>:(Ljava/util/List;)V
            astore 11 /* rectangleList */
        start local 11 // android.widget.SmartSelectSprite$RectangleList rectangleList
        37: .line 414
            new android.graphics.drawable.ShapeDrawable
            dup
            aload 11 /* rectangleList */
            invokespecial android.graphics.drawable.ShapeDrawable.<init>:(Landroid/graphics/drawable/shapes/Shape;)V
            astore 12 /* shapeDrawable */
        start local 12 // android.graphics.drawable.ShapeDrawable shapeDrawable
        38: .line 416
            aload 12 /* shapeDrawable */
            invokevirtual android.graphics.drawable.ShapeDrawable.getPaint:()Landroid/graphics/Paint;
            astore 13 /* paint */
        start local 13 // android.graphics.Paint paint
        39: .line 417
            aload 13 /* paint */
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mFillColor:I
            invokevirtual android.graphics.Paint.setColor:(I)V
        40: .line 418
            aload 13 /* paint */
            getstatic android.graphics.Paint$Style.FILL:Landroid/graphics/Paint$Style;
            invokevirtual android.graphics.Paint.setStyle:(Landroid/graphics/Paint$Style;)V
        41: .line 420
            aload 0 /* this */
            aload 11 /* rectangleList */
            putfield android.widget.SmartSelectSprite.mExistingRectangleList:Landroid/widget/SmartSelectSprite$RectangleList;
        42: .line 421
            aload 0 /* this */
            aload 12 /* shapeDrawable */
            putfield android.widget.SmartSelectSprite.mExistingDrawable:Landroid/graphics/drawable/Drawable;
        43: .line 423
            aload 0 /* this */
            aload 0 /* this */
            aload 11 /* rectangleList */
            iload 9 /* startingOffset */
            i2f
            iload 9 /* startingOffset */
            i2f
        44: .line 424
            aload 7 /* cornerAnimators */
            aload 4 /* updateListener */
            aload 3 /* onAnimationEnd */
        45: .line 423
            invokevirtual android.widget.SmartSelectSprite.createAnimator:(Landroid/widget/SmartSelectSprite$RectangleList;FFLjava/util/List;Landroid/animation/ValueAnimator$AnimatorUpdateListener;Ljava/lang/Runnable;)Landroid/animation/Animator;
            putfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
        46: .line 425
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
            invokevirtual android.animation.Animator.start:()V
        47: .line 426
            return
        end local 13 // android.graphics.Paint paint
        end local 12 // android.graphics.drawable.ShapeDrawable shapeDrawable
        end local 11 // android.widget.SmartSelectSprite$RectangleList rectangleList
        end local 10 // int[] expansionDirections
        end local 9 // int startingOffset
        end local 8 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout centerRectangle
        end local 7 // java.util.List cornerAnimators
        end local 6 // java.util.List shapes
        end local 5 // int rectangleCount
        end local 4 // android.animation.ValueAnimator$AnimatorUpdateListener updateListener
        end local 3 // java.lang.Runnable onAnimationEnd
        end local 2 // java.util.List destinationRectangles
        end local 1 // android.graphics.PointF start
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot                              Name  Signature
            0   48     0                              this  Landroid/widget/SmartSelectSprite;
            0   48     1                             start  Landroid/graphics/PointF;
            0   48     2             destinationRectangles  Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;
            0   48     3                    onAnimationEnd  Ljava/lang/Runnable;
            3   48     4                    updateListener  Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            4   48     5                    rectangleCount  I
            5   48     6                            shapes  Ljava/util/List<Landroid/widget/SmartSelectSprite$RoundedRectangleShape;>;
            6   48     7                   cornerAnimators  Ljava/util/List<Landroid/animation/Animator;>;
            7   48     8                   centerRectangle  Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
            8   48     9                    startingOffset  I
           10   15    10  rectangleWithTextSelectionLayout  Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
           11   15    12                         rectangle  Landroid/graphics/RectF;
           21   48    10               expansionDirections  [I
           22   36    11                             index  I
           25   34    12  rectangleWithTextSelectionLayout  Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
           26   34    13                         rectangle  Landroid/graphics/RectF;
           32   34    14                             shape  Landroid/widget/SmartSelectSprite$RoundedRectangleShape;
           37   48    11                     rectangleList  Landroid/widget/SmartSelectSprite$RectangleList;
           38   48    12                     shapeDrawable  Landroid/graphics/drawable/ShapeDrawable;
           39   48    13                             paint  Landroid/graphics/Paint;
    Signature: (Landroid/graphics/PointF;Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;Ljava/lang/Runnable;)V
    MethodParameters:
                       Name  Flags
      start                  final
      destinationRectangles  final
      onAnimationEnd         final

  public boolean isAnimationActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.SmartSelectSprite this
         0: .line 430
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
            ifnull 1
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
            invokevirtual android.animation.Animator.isRunning:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/SmartSelectSprite;

  private android.animation.Animator createAnimator(android.widget.SmartSelectSprite$RectangleList, float, float, java.util.List<android.animation.Animator>, android.animation.ValueAnimator$AnimatorUpdateListener, java.lang.Runnable);
    descriptor: (Landroid/widget/SmartSelectSprite$RectangleList;FFLjava/util/List;Landroid/animation/ValueAnimator$AnimatorUpdateListener;Ljava/lang/Runnable;)Landroid/animation/Animator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=7
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.widget.SmartSelectSprite$RectangleList rectangleList
        start local 2 // float startingOffsetLeft
        start local 3 // float startingOffsetRight
        start local 4 // java.util.List cornerAnimators
        start local 5 // android.animation.ValueAnimator$AnimatorUpdateListener updateListener
        start local 6 // java.lang.Runnable onAnimationEnd
         0: .line 441
            aload 1 /* rectangleList */
         1: .line 442
            ldc "rightBoundary"
            iconst_2
            newarray 6
            dup
            iconst_0
         2: .line 443
            fload 3 /* startingOffsetRight */
            fastore
            dup
            iconst_1
         3: .line 444
            aload 1 /* rectangleList */
            invokevirtual android.widget.SmartSelectSprite$RectangleList.getTotalWidth:()I
            i2f
            fastore
         4: .line 440
            invokestatic android.animation.ObjectAnimator.ofFloat:(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;
            astore 7 /* rightBoundaryAnimator */
        start local 7 // android.animation.ObjectAnimator rightBoundaryAnimator
         5: .line 447
            aload 1 /* rectangleList */
         6: .line 448
            ldc "leftBoundary"
            iconst_2
            newarray 6
            dup
            iconst_0
         7: .line 449
            fload 2 /* startingOffsetLeft */
            fastore
            dup
            iconst_1
         8: .line 450
            fconst_0
            fastore
         9: .line 446
            invokestatic android.animation.ObjectAnimator.ofFloat:(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;
            astore 8 /* leftBoundaryAnimator */
        start local 8 // android.animation.ObjectAnimator leftBoundaryAnimator
        10: .line 452
            aload 7 /* rightBoundaryAnimator */
            ldc 300
            invokevirtual android.animation.ObjectAnimator.setDuration:(J)Landroid/animation/ObjectAnimator;
            pop
        11: .line 453
            aload 8 /* leftBoundaryAnimator */
            ldc 300
            invokevirtual android.animation.ObjectAnimator.setDuration:(J)Landroid/animation/ObjectAnimator;
            pop
        12: .line 455
            aload 7 /* rightBoundaryAnimator */
            aload 5 /* updateListener */
            invokevirtual android.animation.ObjectAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
        13: .line 456
            aload 8 /* leftBoundaryAnimator */
            aload 5 /* updateListener */
            invokevirtual android.animation.ObjectAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
        14: .line 458
            aload 7 /* rightBoundaryAnimator */
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mExpandInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ObjectAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
        15: .line 459
            aload 8 /* leftBoundaryAnimator */
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mExpandInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ObjectAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
        16: .line 461
            new android.animation.AnimatorSet
            dup
            invokespecial android.animation.AnimatorSet.<init>:()V
            astore 9 /* cornerAnimator */
        start local 9 // android.animation.AnimatorSet cornerAnimator
        17: .line 462
            aload 9 /* cornerAnimator */
            aload 4 /* cornerAnimators */
            invokevirtual android.animation.AnimatorSet.playTogether:(Ljava/util/Collection;)V
        18: .line 464
            new android.animation.AnimatorSet
            dup
            invokespecial android.animation.AnimatorSet.<init>:()V
            astore 10 /* boundaryAnimator */
        start local 10 // android.animation.AnimatorSet boundaryAnimator
        19: .line 465
            aload 10 /* boundaryAnimator */
            iconst_2
            anewarray android.animation.Animator
            dup
            iconst_0
            aload 8 /* leftBoundaryAnimator */
            aastore
            dup
            iconst_1
            aload 7 /* rightBoundaryAnimator */
            aastore
            invokevirtual android.animation.AnimatorSet.playTogether:([Landroid/animation/Animator;)V
        20: .line 467
            new android.animation.AnimatorSet
            dup
            invokespecial android.animation.AnimatorSet.<init>:()V
            astore 11 /* animatorSet */
        start local 11 // android.animation.AnimatorSet animatorSet
        21: .line 468
            aload 11 /* animatorSet */
            iconst_2
            anewarray android.animation.Animator
            dup
            iconst_0
            aload 10 /* boundaryAnimator */
            aastore
            dup
            iconst_1
            aload 9 /* cornerAnimator */
            aastore
            invokevirtual android.animation.AnimatorSet.playSequentially:([Landroid/animation/Animator;)V
        22: .line 470
            aload 0 /* this */
            aload 11 /* animatorSet */
            aload 6 /* onAnimationEnd */
            invokevirtual android.widget.SmartSelectSprite.setUpAnimatorListener:(Landroid/animation/Animator;Ljava/lang/Runnable;)V
        23: .line 472
            aload 11 /* animatorSet */
            areturn
        end local 11 // android.animation.AnimatorSet animatorSet
        end local 10 // android.animation.AnimatorSet boundaryAnimator
        end local 9 // android.animation.AnimatorSet cornerAnimator
        end local 8 // android.animation.ObjectAnimator leftBoundaryAnimator
        end local 7 // android.animation.ObjectAnimator rightBoundaryAnimator
        end local 6 // java.lang.Runnable onAnimationEnd
        end local 5 // android.animation.ValueAnimator$AnimatorUpdateListener updateListener
        end local 4 // java.util.List cornerAnimators
        end local 3 // float startingOffsetRight
        end local 2 // float startingOffsetLeft
        end local 1 // android.widget.SmartSelectSprite$RectangleList rectangleList
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   24     0                   this  Landroid/widget/SmartSelectSprite;
            0   24     1          rectangleList  Landroid/widget/SmartSelectSprite$RectangleList;
            0   24     2     startingOffsetLeft  F
            0   24     3    startingOffsetRight  F
            0   24     4        cornerAnimators  Ljava/util/List<Landroid/animation/Animator;>;
            0   24     5         updateListener  Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            0   24     6         onAnimationEnd  Ljava/lang/Runnable;
            5   24     7  rightBoundaryAnimator  Landroid/animation/ObjectAnimator;
           10   24     8   leftBoundaryAnimator  Landroid/animation/ObjectAnimator;
           17   24     9         cornerAnimator  Landroid/animation/AnimatorSet;
           19   24    10       boundaryAnimator  Landroid/animation/AnimatorSet;
           21   24    11            animatorSet  Landroid/animation/AnimatorSet;
    Signature: (Landroid/widget/SmartSelectSprite$RectangleList;FFLjava/util/List<Landroid/animation/Animator;>;Landroid/animation/ValueAnimator$AnimatorUpdateListener;Ljava/lang/Runnable;)Landroid/animation/Animator;
    MethodParameters:
                     Name  Flags
      rectangleList        final
      startingOffsetLeft   final
      startingOffsetRight  final
      cornerAnimators      final
      updateListener       final
      onAnimationEnd       final

  private void setUpAnimatorListener(android.animation.Animator, java.lang.Runnable);
    descriptor: (Landroid/animation/Animator;Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.animation.Animator animator
        start local 2 // java.lang.Runnable onAnimationEnd
         0: .line 476
            aload 1 /* animator */
            new android.widget.SmartSelectSprite$1
            dup
            aload 0 /* this */
            aload 2 /* onAnimationEnd */
            invokespecial android.widget.SmartSelectSprite$1.<init>:(Landroid/widget/SmartSelectSprite;Ljava/lang/Runnable;)V
            invokevirtual android.animation.Animator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         1: .line 497
            return
        end local 2 // java.lang.Runnable onAnimationEnd
        end local 1 // android.animation.Animator animator
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Landroid/widget/SmartSelectSprite;
            0    2     1        animator  Landroid/animation/Animator;
            0    2     2  onAnimationEnd  Ljava/lang/Runnable;
    MethodParameters:
                Name  Flags
      animator        final
      onAnimationEnd  final

  private android.animation.ObjectAnimator createCornerAnimator(android.widget.SmartSelectSprite$RoundedRectangleShape, android.animation.ValueAnimator$AnimatorUpdateListener);
    descriptor: (Landroid/widget/SmartSelectSprite$RoundedRectangleShape;Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/animation/ObjectAnimator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.widget.SmartSelectSprite$RoundedRectangleShape shape
        start local 2 // android.animation.ValueAnimator$AnimatorUpdateListener listener
         0: .line 503
            aload 1 /* shape */
         1: .line 504
            ldc "roundRatio"
            iconst_2
            newarray 6
            dup
            iconst_0
         2: .line 505
            aload 1 /* shape */
            invokevirtual android.widget.SmartSelectSprite$RoundedRectangleShape.getRoundRatio:()F
            fastore
            dup
            iconst_1
            fconst_0
            fastore
         3: .line 502
            invokestatic android.animation.ObjectAnimator.ofFloat:(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;
            astore 3 /* animator */
        start local 3 // android.animation.ObjectAnimator animator
         4: .line 506
            aload 3 /* animator */
            ldc 50
            invokevirtual android.animation.ObjectAnimator.setDuration:(J)Landroid/animation/ObjectAnimator;
            pop
         5: .line 507
            aload 3 /* animator */
            aload 2 /* listener */
            invokevirtual android.animation.ObjectAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         6: .line 508
            aload 3 /* animator */
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mCornerInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ObjectAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
         7: .line 509
            aload 3 /* animator */
            areturn
        end local 3 // android.animation.ObjectAnimator animator
        end local 2 // android.animation.ValueAnimator$AnimatorUpdateListener listener
        end local 1 // android.widget.SmartSelectSprite$RoundedRectangleShape shape
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/widget/SmartSelectSprite;
            0    8     1     shape  Landroid/widget/SmartSelectSprite$RoundedRectangleShape;
            0    8     2  listener  Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            4    8     3  animator  Landroid/animation/ObjectAnimator;
    MethodParameters:
          Name  Flags
      shape     final
      listener  final

  private static int[] generateDirections(android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout, java.util.List<android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout>);
    descriptor: (Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;Ljava/util/List;)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout centerRectangle
        start local 1 // java.util.List rectangles
         0: .line 515
            aload 1 /* rectangles */
            invokeinterface java.util.List.size:()I
            newarray 10
            astore 2 /* result */
        start local 2 // int[] result
         1: .line 517
            aload 1 /* rectangles */
            aload 0 /* centerRectangle */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 3 /* centerRectangleIndex */
        start local 3 // int centerRectangleIndex
         2: .line 519
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 520
      StackMap locals: int[] int int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            iconst_m1
            iastore
         5: .line 519
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* centerRectangleIndex */
            iconst_1
            isub
            if_icmplt 4
        end local 4 // int i
         7: .line 523
            aload 1 /* rectangles */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 10
         8: .line 524
            aload 2 /* result */
            iload 3 /* centerRectangleIndex */
            iconst_0
            iastore
         9: .line 525
            goto 17
      StackMap locals:
      StackMap stack:
        10: iload 3 /* centerRectangleIndex */
            ifne 13
        11: .line 526
            aload 2 /* result */
            iload 3 /* centerRectangleIndex */
            iconst_m1
            iastore
        12: .line 527
            goto 17
      StackMap locals:
      StackMap stack:
        13: iload 3 /* centerRectangleIndex */
            aload 1 /* rectangles */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpne 16
        14: .line 528
            aload 2 /* result */
            iload 3 /* centerRectangleIndex */
            iconst_1
            iastore
        15: .line 529
            goto 17
        16: .line 530
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            iload 3 /* centerRectangleIndex */
            iconst_0
            iastore
        17: .line 533
      StackMap locals:
      StackMap stack:
            iload 3 /* centerRectangleIndex */
            iconst_1
            iadd
            istore 4 /* i */
        start local 4 // int i
        18: goto 21
        19: .line 534
      StackMap locals: int
      StackMap stack:
            aload 2 /* result */
            iload 4 /* i */
            iconst_1
            iastore
        20: .line 533
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            aload 2 /* result */
            arraylength
            if_icmplt 19
        end local 4 // int i
        22: .line 537
            aload 2 /* result */
            areturn
        end local 3 // int centerRectangleIndex
        end local 2 // int[] result
        end local 1 // java.util.List rectangles
        end local 0 // android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout centerRectangle
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0       centerRectangle  Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
            0   23     1            rectangles  Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;
            1   23     2                result  [I
            2   23     3  centerRectangleIndex  I
            3    7     4                     i  I
           18   22     4                     i  I
    Signature: (Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;)[I
    MethodParameters:
                 Name  Flags
      centerRectangle  final
      rectangles       final

  private static boolean contains(android.graphics.RectF, android.graphics.PointF);
    descriptor: (Landroid/graphics/RectF;Landroid/graphics/PointF;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.graphics.RectF rectangle
        start local 1 // android.graphics.PointF point
         0: .line 549
            aload 1 /* point */
            getfield android.graphics.PointF.x:F
            fstore 2 /* x */
        start local 2 // float x
         1: .line 550
            aload 1 /* point */
            getfield android.graphics.PointF.y:F
            fstore 3 /* y */
        start local 3 // float y
         2: .line 551
            fload 2 /* x */
            aload 0 /* rectangle */
            getfield android.graphics.RectF.left:F
            fcmpl
            iflt 5
            fload 2 /* x */
            aload 0 /* rectangle */
            getfield android.graphics.RectF.right:F
            fcmpg
            ifgt 5
            fload 3 /* y */
            aload 0 /* rectangle */
            getfield android.graphics.RectF.top:F
            fcmpl
            iflt 5
         3: .line 552
            fload 3 /* y */
            aload 0 /* rectangle */
            getfield android.graphics.RectF.bottom:F
         4: .line 551
            fcmpg
            ifgt 5
            iconst_1
            ireturn
      StackMap locals: float float
      StackMap stack:
         5: iconst_0
            ireturn
        end local 3 // float y
        end local 2 // float x
        end local 1 // android.graphics.PointF point
        end local 0 // android.graphics.RectF rectangle
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  rectangle  Landroid/graphics/RectF;
            0    6     1      point  Landroid/graphics/PointF;
            1    6     2          x  F
            2    6     3          y  F
    MethodParameters:
           Name  Flags
      rectangle  final
      point      final

  private void removeExistingDrawables();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.SmartSelectSprite this
         0: .line 556
            aload 0 /* this */
            aconst_null
            putfield android.widget.SmartSelectSprite.mExistingDrawable:Landroid/graphics/drawable/Drawable;
         1: .line 557
            aload 0 /* this */
            aconst_null
            putfield android.widget.SmartSelectSprite.mExistingRectangleList:Landroid/widget/SmartSelectSprite$RectangleList;
         2: .line 558
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mInvalidator:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
         3: .line 559
            return
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/SmartSelectSprite;

  public void cancelAnimation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.SmartSelectSprite this
         0: .line 565
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
            ifnull 4
         1: .line 566
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
            invokevirtual android.animation.Animator.cancel:()V
         2: .line 567
            aload 0 /* this */
            aconst_null
            putfield android.widget.SmartSelectSprite.mActiveAnimator:Landroid/animation/Animator;
         3: .line 568
            aload 0 /* this */
            invokevirtual android.widget.SmartSelectSprite.removeExistingDrawables:()V
         4: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/SmartSelectSprite;

  public void draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.graphics.Canvas canvas
         0: .line 573
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mExistingDrawable:Landroid/graphics/drawable/Drawable;
            ifnull 2
         1: .line 574
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mExistingDrawable:Landroid/graphics/drawable/Drawable;
            aload 1 /* canvas */
            invokevirtual android.graphics.drawable.Drawable.draw:(Landroid/graphics/Canvas;)V
         2: .line 576
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/widget/SmartSelectSprite;
            0    3     1  canvas  Landroid/graphics/Canvas;
    MethodParameters:
        Name  Flags
      canvas  

  private static double lambda$0(android.graphics.RectF);
    descriptor: (Landroid/graphics/RectF;)D
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.graphics.RectF e
         0: .line 66
            aload 0 /* e */
            getfield android.graphics.RectF.bottom:F
            f2d
            dreturn
        end local 0 // android.graphics.RectF e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Landroid/graphics/RectF;

  private static double lambda$1(android.graphics.RectF);
    descriptor: (Landroid/graphics/RectF;)D
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.graphics.RectF e
         0: .line 67
            aload 0 /* e */
            getfield android.graphics.RectF.left:F
            f2d
            dreturn
        end local 0 // android.graphics.RectF e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Landroid/graphics/RectF;

  private void lambda$2(android.animation.ValueAnimator);
    descriptor: (Landroid/animation/ValueAnimator;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.widget.SmartSelectSprite this
        start local 1 // android.animation.ValueAnimator valueAnimator
         0: .line 371
            aload 0 /* this */
            getfield android.widget.SmartSelectSprite.mInvalidator:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
            return
        end local 1 // android.animation.ValueAnimator valueAnimator
        end local 0 // android.widget.SmartSelectSprite this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Landroid/widget/SmartSelectSprite;
            0    1     1  valueAnimator  Landroid/animation/ValueAnimator;
}
SourceFile: "SmartSelectSprite.java"
NestMembers:
  android.widget.SmartSelectSprite$1  android.widget.SmartSelectSprite$RectangleList  android.widget.SmartSelectSprite$RectangleList$DisplayType  android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout  android.widget.SmartSelectSprite$RoundedRectangleShape  android.widget.SmartSelectSprite$RoundedRectangleShape$ExpansionDirection
InnerClasses:
  public abstract AnimatorListener = android.animation.Animator$AnimatorListener of android.animation.Animator
  public abstract AnimatorUpdateListener = android.animation.ValueAnimator$AnimatorUpdateListener of android.animation.ValueAnimator
  public final Style = android.graphics.Paint$Style of android.graphics.Paint
  android.widget.SmartSelectSprite$1
  private final RectangleList = android.widget.SmartSelectSprite$RectangleList of android.widget.SmartSelectSprite
  final RectangleWithTextSelectionLayout = android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout of android.widget.SmartSelectSprite
  private final RoundedRectangleShape = android.widget.SmartSelectSprite$RoundedRectangleShape of android.widget.SmartSelectSprite
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles