public final class android.widget.Editor$SelectionHandleView extends android.widget.Editor$HandleView
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.widget.Editor$SelectionHandleView
  super_class: android.widget.Editor$HandleView
{
  private final int mHandleType;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean mInWord;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

  private boolean mLanguageDirectionChanged;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final float mTextViewEdgeSlop;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] mTextViewLocation;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final android.widget.Editor this$0;
    descriptor: Landroid/widget/Editor;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(android.widget.Editor, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, int, int);
    descriptor: (Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 2 // android.graphics.drawable.Drawable drawableLtr
        start local 3 // android.graphics.drawable.Drawable drawableRtl
        start local 4 // int id
        start local 5 // int handleType
         0: .line 5245
            aload 0 /* this */
            aload 1
            putfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
         1: .line 5246
            aload 0 /* this */
            aload 1
            aload 2 /* drawableLtr */
            aload 3 /* drawableRtl */
            iload 4 /* id */
            invokespecial android.widget.Editor$HandleView.<init>:(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V
         2: .line 5231
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor$SelectionHandleView.mInWord:Z
         3: .line 5237
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor$SelectionHandleView.mLanguageDirectionChanged:Z
         4: .line 5242
            aload 0 /* this */
            iconst_2
            newarray 10
            putfield android.widget.Editor$SelectionHandleView.mTextViewLocation:[I
         5: .line 5247
            aload 0 /* this */
            iload 5 /* handleType */
            putfield android.widget.Editor$SelectionHandleView.mHandleType:I
         6: .line 5248
            aload 1
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            invokestatic android.view.ViewConfiguration.get:(Landroid/content/Context;)Landroid/view/ViewConfiguration;
            astore 6 /* viewConfiguration */
        start local 6 // android.view.ViewConfiguration viewConfiguration
         7: .line 5249
            aload 0 /* this */
            aload 6 /* viewConfiguration */
            invokevirtual android.view.ViewConfiguration.getScaledTouchSlop:()I
            iconst_4
            imul
            i2f
            putfield android.widget.Editor$SelectionHandleView.mTextViewEdgeSlop:F
         8: .line 5250
            return
        end local 6 // android.view.ViewConfiguration viewConfiguration
        end local 5 // int handleType
        end local 4 // int id
        end local 3 // android.graphics.drawable.Drawable drawableRtl
        end local 2 // android.graphics.drawable.Drawable drawableLtr
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Landroid/widget/Editor$SelectionHandleView;
            0    9     2        drawableLtr  Landroid/graphics/drawable/Drawable;
            0    9     3        drawableRtl  Landroid/graphics/drawable/Drawable;
            0    9     4                 id  I
            0    9     5         handleType  I
            7    9     6  viewConfiguration  Landroid/view/ViewConfiguration;
    MethodParameters:
             Name  Flags
      this$0       final
      drawableLtr  
      drawableRtl  
      id           
      handleType   

  private boolean isStartHandle();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor$SelectionHandleView this
         0: .line 5253
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mHandleType:I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/Editor$SelectionHandleView;

  protected int getHotspotX(android.graphics.drawable.Drawable, boolean);
    descriptor: (Landroid/graphics/drawable/Drawable;Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.graphics.drawable.Drawable drawable
        start local 2 // boolean isRtlRun
         0: .line 5258
            iload 2 /* isRtlRun */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            if_icmpne 2
         1: .line 5259
            aload 1 /* drawable */
            invokevirtual android.graphics.drawable.Drawable.getIntrinsicWidth:()I
            iconst_4
            idiv
            ireturn
         2: .line 5261
      StackMap locals:
      StackMap stack:
            aload 1 /* drawable */
            invokevirtual android.graphics.drawable.Drawable.getIntrinsicWidth:()I
            iconst_3
            imul
            iconst_4
            idiv
            ireturn
        end local 2 // boolean isRtlRun
        end local 1 // android.graphics.drawable.Drawable drawable
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/widget/Editor$SelectionHandleView;
            0    3     1  drawable  Landroid/graphics/drawable/Drawable;
            0    3     2  isRtlRun  Z
    MethodParameters:
          Name  Flags
      drawable  
      isRtlRun  

  protected int getHorizontalGravity(boolean);
    descriptor: (Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // boolean isRtlRun
         0: .line 5267
            iload 1 /* isRtlRun */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            if_icmpne 1
            iconst_3
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_5
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // boolean isRtlRun
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/widget/Editor$SelectionHandleView;
            0    3     1  isRtlRun  Z
    MethodParameters:
          Name  Flags
      isRtlRun  

  public int getCurrentCursorOffset();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor$SelectionHandleView this
         0: .line 5272
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor$SelectionHandleView;

  protected void updateSelection(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // int offset
         0: .line 5277
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 5
         1: .line 5278
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 1 /* offset */
         2: .line 5279
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
         3: .line 5278
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         4: .line 5280
            goto 8
         5: .line 5281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
         6: .line 5282
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            iload 1 /* offset */
         7: .line 5281
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         8: .line 5284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.updateDrawable:()V
         9: .line 5285
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 11
        10: .line 5286
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.invalidateActionMode:()V
        11: .line 5288
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int offset
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Landroid/widget/Editor$SelectionHandleView;
            0   12     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  protected void updatePosition(float, float, boolean);
    descriptor: (FFZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=21, args_size=4
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // float x
        start local 2 // float y
        start local 3 // boolean fromTouchScreen
         0: .line 5292
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 4 /* layout */
        start local 4 // android.text.Layout layout
         1: .line 5293
            aload 4 /* layout */
            ifnonnull 6
         2: .line 5296
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 1 /* x */
            fload 2 /* y */
            invokevirtual android.widget.TextView.getOffsetForPosition:(FF)I
         3: .line 5297
            iload 3 /* fromTouchScreen */
         4: .line 5296
            invokevirtual android.widget.Editor$SelectionHandleView.positionAndAdjustForCrossingHandles:(IZ)V
         5: .line 5298
            return
         6: .line 5301
      StackMap locals: android.text.Layout
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
            iconst_m1
            if_icmpne 8
         7: .line 5302
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 2 /* y */
            invokevirtual android.widget.TextView.getLineAtCoordinate:(F)I
            putfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
         8: .line 5305
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* positionCursor */
        start local 5 // boolean positionCursor
         9: .line 5307
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 10
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            goto 11
      StackMap locals: int
      StackMap stack:
        10: aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
        11: .line 5306
      StackMap locals:
      StackMap stack: int
            istore 6 /* anotherHandleOffset */
        start local 6 // int anotherHandleOffset
        12: .line 5308
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            aload 4 /* layout */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
            fload 2 /* y */
            invokevirtual android.widget.Editor.getCurrentLineAdjustedForSlop:(Landroid/text/Layout;IF)I
            istore 7 /* currLine */
        start local 7 // int currLine
        13: .line 5309
            aload 0 /* this */
            aload 4 /* layout */
            iload 7 /* currLine */
            fload 1 /* x */
            invokevirtual android.widget.Editor$SelectionHandleView.getOffsetAtCoordinate:(Landroid/text/Layout;IF)I
            istore 8 /* initialOffset */
        start local 8 // int initialOffset
        14: .line 5311
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 15
            iload 8 /* initialOffset */
            iload 6 /* anotherHandleOffset */
            if_icmpge 16
        15: .line 5312
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 18
            iload 8 /* initialOffset */
            iload 6 /* anotherHandleOffset */
            if_icmpgt 18
        16: .line 5315
      StackMap locals:
      StackMap stack:
            aload 4 /* layout */
            iload 6 /* anotherHandleOffset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 7 /* currLine */
        17: .line 5316
            aload 0 /* this */
            aload 4 /* layout */
            iload 7 /* currLine */
            fload 1 /* x */
            invokevirtual android.widget.Editor$SelectionHandleView.getOffsetAtCoordinate:(Landroid/text/Layout;IF)I
            istore 8 /* initialOffset */
        18: .line 5319
      StackMap locals:
      StackMap stack:
            iload 8 /* initialOffset */
            istore 9 /* offset */
        start local 9 // int offset
        19: .line 5320
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            iload 9 /* offset */
            invokevirtual android.widget.Editor.getWordEnd:(I)I
            istore 10 /* wordEnd */
        start local 10 // int wordEnd
        20: .line 5321
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            iload 9 /* offset */
            invokevirtual android.widget.Editor.getWordStart:(I)I
            istore 11 /* wordStart */
        start local 11 // int wordStart
        21: .line 5323
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevX:F
            ldc -1.0
            fcmpl
            ifne 23
        22: .line 5324
            aload 0 /* this */
            fload 1 /* x */
            putfield android.widget.Editor$SelectionHandleView.mPrevX:F
        23: .line 5327
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.getCurrentCursorOffset:()I
            istore 12 /* currentOffset */
        start local 12 // int currentOffset
        24: .line 5328
            aload 0 /* this */
            aload 4 /* layout */
            iload 12 /* currentOffset */
            invokevirtual android.widget.Editor$SelectionHandleView.isAtRtlRun:(Landroid/text/Layout;I)Z
            istore 13 /* rtlAtCurrentOffset */
        start local 13 // boolean rtlAtCurrentOffset
        25: .line 5329
            aload 0 /* this */
            aload 4 /* layout */
            iload 9 /* offset */
            invokevirtual android.widget.Editor$SelectionHandleView.isAtRtlRun:(Landroid/text/Layout;I)Z
            istore 14 /* atRtl */
        start local 14 // boolean atRtl
        26: .line 5330
            aload 4 /* layout */
            iload 9 /* offset */
            invokevirtual android.text.Layout.isLevelBoundary:(I)Z
            istore 15 /* isLvlBoundary */
        start local 15 // boolean isLvlBoundary
        27: .line 5335
            iload 15 /* isLvlBoundary */
            ifne 29
            iload 13 /* rtlAtCurrentOffset */
            ifeq 28
            iload 14 /* atRtl */
            ifeq 29
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int
      StackMap stack:
        28: iload 13 /* rtlAtCurrentOffset */
            ifne 33
            iload 14 /* atRtl */
            ifeq 33
        29: .line 5338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor$SelectionHandleView.mLanguageDirectionChanged:Z
        30: .line 5339
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        31: .line 5340
            aload 0 /* this */
            iload 9 /* offset */
            iload 3 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAndAdjustForCrossingHandles:(IZ)V
        32: .line 5341
            return
        33: .line 5342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mLanguageDirectionChanged:Z
            ifeq 38
            iload 15 /* isLvlBoundary */
            ifne 38
        34: .line 5345
            aload 0 /* this */
            iload 9 /* offset */
            iload 3 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAndAdjustForCrossingHandles:(IZ)V
        35: .line 5346
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        36: .line 5347
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor$SelectionHandleView.mLanguageDirectionChanged:Z
        37: .line 5348
            return
        38: .line 5352
      StackMap locals:
      StackMap stack:
            fload 1 /* x */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevX:F
            fsub
            fstore 17 /* xDiff */
        start local 17 // float xDiff
        39: .line 5353
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 44
        40: .line 5354
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
            if_icmpge 41
            iconst_1
            goto 42
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int top float
      StackMap stack:
        41: iconst_0
      StackMap locals:
      StackMap stack: int
        42: istore 16 /* isExpanding */
        start local 16 // boolean isExpanding
        43: .line 5355
            goto 47
        end local 16 // boolean isExpanding
        44: .line 5356
      StackMap locals:
      StackMap stack:
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
            if_icmple 45
            iconst_1
            goto 46
      StackMap locals:
      StackMap stack:
        45: iconst_0
      StackMap locals:
      StackMap stack: int
        46: istore 16 /* isExpanding */
        start local 16 // boolean isExpanding
        47: .line 5358
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int int float
      StackMap stack:
            iload 14 /* atRtl */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            if_icmpne 52
        48: .line 5359
            iload 16 /* isExpanding */
            fload 17 /* xDiff */
            fconst_0
            fcmpl
            ifle 49
            iconst_1
            goto 50
      StackMap locals:
      StackMap stack: int
        49: iconst_0
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int int float
      StackMap stack: int int
        50: ior
            istore 16 /* isExpanding */
        51: .line 5360
            goto 55
        52: .line 5361
      StackMap locals:
      StackMap stack:
            iload 16 /* isExpanding */
            fload 17 /* xDiff */
            fconst_0
            fcmpg
            ifge 53
            iconst_1
            goto 54
      StackMap locals:
      StackMap stack: int
        53: iconst_0
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int int float
      StackMap stack: int int
        54: ior
            istore 16 /* isExpanding */
        55: .line 5364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getHorizontallyScrolling:()Z
            ifeq 72
        56: .line 5365
            aload 0 /* this */
            fload 1 /* x */
            iload 14 /* atRtl */
            invokevirtual android.widget.Editor$SelectionHandleView.positionNearEdgeOfScrollingView:(FZ)Z
            ifeq 72
        57: .line 5366
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 58
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getScrollX:()I
            ifne 62
        58: .line 5367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 72
        59: .line 5368
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 14 /* atRtl */
            ifeq 60
            iconst_m1
            goto 61
      StackMap locals:
      StackMap stack: android.widget.TextView
        60: iconst_1
      StackMap locals: android.widget.Editor$SelectionHandleView float float int android.text.Layout int int int int int int int int int int int int float
      StackMap stack: android.widget.TextView int
        61: invokevirtual android.widget.TextView.canScrollHorizontally:(I)Z
            ifeq 72
        62: .line 5369
      StackMap locals:
      StackMap stack:
            iload 16 /* isExpanding */
            ifeq 64
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 63
            iload 9 /* offset */
            iload 12 /* currentOffset */
            if_icmplt 65
        63: .line 5370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 64
            iload 9 /* offset */
            iload 12 /* currentOffset */
            if_icmpgt 65
        64: .line 5371
      StackMap locals:
      StackMap stack:
            iload 16 /* isExpanding */
            ifne 72
        65: .line 5375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        66: .line 5376
            iload 14 /* atRtl */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            if_icmpne 68
        67: .line 5377
            aload 4 /* layout */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            invokevirtual android.text.Layout.getOffsetToRightOf:(I)I
            goto 69
        68: .line 5378
      StackMap locals:
      StackMap stack:
            aload 4 /* layout */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            invokevirtual android.text.Layout.getOffsetToLeftOf:(I)I
        69: .line 5376
      StackMap locals:
      StackMap stack: int
            istore 18 /* nextOffset */
        start local 18 // int nextOffset
        70: .line 5379
            aload 0 /* this */
            iload 18 /* nextOffset */
            iload 3 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAndAdjustForCrossingHandles:(IZ)V
        71: .line 5380
            return
        end local 18 // int nextOffset
        72: .line 5384
      StackMap locals:
      StackMap stack:
            iload 16 /* isExpanding */
            ifeq 112
        73: .line 5386
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 74
            iload 11 /* wordStart */
            goto 75
      StackMap locals:
      StackMap stack:
        74: iload 10 /* wordEnd */
      StackMap locals:
      StackMap stack: int
        75: istore 18 /* wordBoundary */
        start local 18 // int wordBoundary
        76: .line 5387
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mInWord:Z
            ifeq 79
        77: .line 5388
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 78
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmpge 81
            goto 79
      StackMap locals: int
      StackMap stack:
        78: iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmple 81
        79: .line 5389
      StackMap locals:
      StackMap stack:
            iload 14 /* atRtl */
            aload 0 /* this */
            aload 4 /* layout */
            iload 18 /* wordBoundary */
            invokevirtual android.widget.Editor$SelectionHandleView.isAtRtlRun:(Landroid/text/Layout;I)Z
            if_icmpne 81
        80: .line 5387
            iconst_1
            goto 82
      StackMap locals:
      StackMap stack:
        81: iconst_0
      StackMap locals:
      StackMap stack: int
        82: istore 19 /* snapToWord */
        start local 19 // boolean snapToWord
        83: .line 5390
            iload 19 /* snapToWord */
            ifeq 102
        84: .line 5394
            aload 4 /* layout */
            iload 18 /* wordBoundary */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            iload 7 /* currLine */
            if_icmpeq 89
        85: .line 5395
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 87
        86: .line 5396
            aload 4 /* layout */
            iload 7 /* currLine */
            invokevirtual android.text.Layout.getLineStart:(I)I
            goto 88
      StackMap locals: int
      StackMap stack:
        87: aload 4 /* layout */
            iload 7 /* currLine */
            invokevirtual android.text.Layout.getLineEnd:(I)I
        88: .line 5395
      StackMap locals:
      StackMap stack: int
            istore 18 /* wordBoundary */
        89: .line 5398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 91
        90: .line 5399
            iload 10 /* wordEnd */
            iload 10 /* wordEnd */
            iload 18 /* wordBoundary */
            isub
            iconst_2
            idiv
            isub
            goto 92
        91: .line 5400
      StackMap locals:
      StackMap stack:
            iload 11 /* wordStart */
            iload 18 /* wordBoundary */
            iload 11 /* wordStart */
            isub
            iconst_2
            idiv
            iadd
        92: .line 5398
      StackMap locals:
      StackMap stack: int
            istore 20 /* offsetThresholdToSnap */
        start local 20 // int offsetThresholdToSnap
        93: .line 5401
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 97
        94: .line 5402
            iload 9 /* offset */
            iload 20 /* offsetThresholdToSnap */
            if_icmple 95
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmpge 97
        95: .line 5405
      StackMap locals: int
      StackMap stack:
            iload 11 /* wordStart */
            istore 9 /* offset */
        96: .line 5406
            goto 102
      StackMap locals:
      StackMap stack:
        97: aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 101
        98: .line 5407
            iload 9 /* offset */
            iload 20 /* offsetThresholdToSnap */
            if_icmpge 99
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmple 101
        99: .line 5410
      StackMap locals:
      StackMap stack:
            iload 10 /* wordEnd */
            istore 9 /* offset */
       100: .line 5411
            goto 102
       101: .line 5412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            istore 9 /* offset */
        end local 20 // int offsetThresholdToSnap
       102: .line 5415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 103
            iload 9 /* offset */
            iload 8 /* initialOffset */
            if_icmplt 104
       103: .line 5416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 109
            iload 9 /* offset */
            iload 8 /* initialOffset */
            if_icmple 109
       104: .line 5417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* layout */
            iload 9 /* offset */
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;I)F
            fstore 20 /* adjustedX */
        start local 20 // float adjustedX
       105: .line 5418
            aload 0 /* this */
       106: .line 5419
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 1 /* x */
            invokevirtual android.widget.TextView.convertToLocalHorizontalCoordinate:(F)F
            fload 20 /* adjustedX */
            fsub
       107: .line 5418
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        end local 20 // float adjustedX
       108: .line 5420
            goto 110
       109: .line 5421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
       110: .line 5423
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* positionCursor */
        end local 19 // boolean snapToWord
        end local 18 // int wordBoundary
       111: .line 5424
            goto 143
       112: .line 5426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* layout */
            iload 7 /* currLine */
            fload 1 /* x */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
            fsub
            invokevirtual android.widget.Editor$SelectionHandleView.getOffsetAtCoordinate:(Landroid/text/Layout;IF)I
       113: .line 5425
            istore 18 /* adjustedOffset */
        start local 18 // int adjustedOffset
       114: .line 5427
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 117
       115: .line 5428
            iload 18 /* adjustedOffset */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            if_icmpgt 116
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmpgt 116
            iconst_0
            goto 120
      StackMap locals: int
      StackMap stack:
       116: iconst_1
            goto 120
       117: .line 5429
      StackMap locals:
      StackMap stack:
            iload 18 /* adjustedOffset */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            if_icmplt 119
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
       118: .line 5427
            if_icmplt 119
            iconst_0
            goto 120
      StackMap locals:
      StackMap stack:
       119: iconst_1
      StackMap locals:
      StackMap stack: int
       120: istore 19 /* shrinking */
        start local 19 // boolean shrinking
       121: .line 5430
            iload 19 /* shrinking */
            ifeq 138
       122: .line 5432
            iload 7 /* currLine */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPrevLine:I
            if_icmpeq 135
       123: .line 5434
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 124
            iload 11 /* wordStart */
            goto 125
      StackMap locals: int
      StackMap stack:
       124: iload 10 /* wordEnd */
      StackMap locals:
      StackMap stack: int
       125: istore 9 /* offset */
       126: .line 5435
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 127
            iload 9 /* offset */
            iload 8 /* initialOffset */
            if_icmplt 128
       127: .line 5436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 133
            iload 9 /* offset */
            iload 8 /* initialOffset */
            if_icmple 133
       128: .line 5437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* layout */
            iload 9 /* offset */
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;I)F
            fstore 20 /* adjustedX */
        start local 20 // float adjustedX
       129: .line 5438
            aload 0 /* this */
       130: .line 5439
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 1 /* x */
            invokevirtual android.widget.TextView.convertToLocalHorizontalCoordinate:(F)F
            fload 20 /* adjustedX */
            fsub
       131: .line 5438
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        end local 20 // float adjustedX
       132: .line 5440
            goto 136
       133: .line 5441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
       134: .line 5443
            goto 136
       135: .line 5444
      StackMap locals:
      StackMap stack:
            iload 18 /* adjustedOffset */
            istore 9 /* offset */
       136: .line 5446
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* positionCursor */
       137: .line 5447
            goto 143
      StackMap locals:
      StackMap stack:
       138: aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 139
            iload 18 /* adjustedOffset */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            if_icmplt 140
       139: .line 5448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 143
            iload 18 /* adjustedOffset */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            if_icmple 143
       140: .line 5451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 1 /* x */
            invokevirtual android.widget.TextView.convertToLocalHorizontalCoordinate:(F)F
       141: .line 5452
            aload 0 /* this */
            aload 4 /* layout */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;I)F
            fsub
       142: .line 5451
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
        end local 19 // boolean shrinking
        end local 18 // int adjustedOffset
       143: .line 5456
      StackMap locals:
      StackMap stack:
            iload 5 /* positionCursor */
            ifeq 146
       144: .line 5457
            aload 0 /* this */
            iload 7 /* currLine */
            putfield android.widget.Editor$SelectionHandleView.mPreviousLineTouched:I
       145: .line 5458
            aload 0 /* this */
            iload 9 /* offset */
            iload 3 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAndAdjustForCrossingHandles:(IZ)V
       146: .line 5460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* x */
            putfield android.widget.Editor$SelectionHandleView.mPrevX:F
       147: .line 5461
            return
        end local 17 // float xDiff
        end local 16 // boolean isExpanding
        end local 15 // boolean isLvlBoundary
        end local 14 // boolean atRtl
        end local 13 // boolean rtlAtCurrentOffset
        end local 12 // int currentOffset
        end local 11 // int wordStart
        end local 10 // int wordEnd
        end local 9 // int offset
        end local 8 // int initialOffset
        end local 7 // int currLine
        end local 6 // int anotherHandleOffset
        end local 5 // boolean positionCursor
        end local 4 // android.text.Layout layout
        end local 3 // boolean fromTouchScreen
        end local 2 // float y
        end local 1 // float x
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  148     0                   this  Landroid/widget/Editor$SelectionHandleView;
            0  148     1                      x  F
            0  148     2                      y  F
            0  148     3        fromTouchScreen  Z
            1  148     4                 layout  Landroid/text/Layout;
            9  148     5         positionCursor  Z
           12  148     6    anotherHandleOffset  I
           13  148     7               currLine  I
           14  148     8          initialOffset  I
           19  148     9                 offset  I
           20  148    10                wordEnd  I
           21  148    11              wordStart  I
           24  148    12          currentOffset  I
           25  148    13     rtlAtCurrentOffset  Z
           26  148    14                  atRtl  Z
           27  148    15          isLvlBoundary  Z
           43   44    16            isExpanding  Z
           47  148    16            isExpanding  Z
           39  148    17                  xDiff  F
           70   72    18             nextOffset  I
           76  111    18           wordBoundary  I
           83  111    19             snapToWord  Z
           93  102    20  offsetThresholdToSnap  I
          105  108    20              adjustedX  F
          114  143    18         adjustedOffset  I
          121  143    19              shrinking  Z
          129  132    20              adjustedX  F
    MethodParameters:
                 Name  Flags
      x                
      y                
      fromTouchScreen  

  protected void positionAtCursorOffset(int, boolean, boolean);
    descriptor: (IZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // int offset
        start local 2 // boolean forceUpdatePosition
        start local 3 // boolean fromTouchScreen
         0: .line 5466
            aload 0 /* this */
            iload 1 /* offset */
            iload 2 /* forceUpdatePosition */
            iload 3 /* fromTouchScreen */
            invokespecial android.widget.Editor$HandleView.positionAtCursorOffset:(IZZ)V
         1: .line 5467
            aload 0 /* this */
            iload 1 /* offset */
            iconst_m1
            if_icmpeq 2
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.isBoundary:(I)Z
            ifne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: android.widget.Editor$SelectionHandleView
         2: iconst_0
      StackMap locals: android.widget.Editor$SelectionHandleView int int int
      StackMap stack: android.widget.Editor$SelectionHandleView int
         3: putfield android.widget.Editor$SelectionHandleView.mInWord:Z
         4: .line 5468
            return
        end local 3 // boolean fromTouchScreen
        end local 2 // boolean forceUpdatePosition
        end local 1 // int offset
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Landroid/widget/Editor$SelectionHandleView;
            0    5     1               offset  I
            0    5     2  forceUpdatePosition  Z
            0    5     3      fromTouchScreen  Z
    MethodParameters:
                     Name  Flags
      offset               
      forceUpdatePosition  
      fromTouchScreen      

  public boolean onTouchEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.view.MotionEvent event
         0: .line 5472
            aload 0 /* this */
            aload 1 /* event */
            invokespecial android.widget.Editor$HandleView.onTouchEvent:(Landroid/view/MotionEvent;)Z
            istore 2 /* superResult */
        start local 2 // boolean superResult
         1: .line 5474
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            tableswitch { // 0 - 3
                    0: 2
                    1: 8
                    2: 6
                    3: 8
              default: 9
          }
         2: .line 5478
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
         3: .line 5479
            aload 0 /* this */
            ldc -1.0
            putfield android.widget.Editor$SelectionHandleView.mPrevX:F
         4: .line 5480
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.widget.Editor$SelectionHandleView.updateMagnifier:(Landroid/view/MotionEvent;)V
         5: .line 5481
            goto 9
         6: .line 5484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.widget.Editor$SelectionHandleView.updateMagnifier:(Landroid/view/MotionEvent;)V
         7: .line 5485
            goto 9
         8: .line 5489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.dismissMagnifier:()V
         9: .line 5493
      StackMap locals:
      StackMap stack:
            iload 2 /* superResult */
            ireturn
        end local 2 // boolean superResult
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Landroid/widget/Editor$SelectionHandleView;
            0   10     1        event  Landroid/view/MotionEvent;
            1   10     2  superResult  Z
    MethodParameters:
       Name  Flags
      event  

  private void positionAndAdjustForCrossingHandles(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // int offset
        start local 2 // boolean fromTouchScreen
         0: .line 5498
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
         2: .line 5497
      StackMap locals:
      StackMap stack: int
            istore 3 /* anotherHandleOffset */
        start local 3 // int anotherHandleOffset
         3: .line 5499
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 4
            iload 1 /* offset */
            iload 3 /* anotherHandleOffset */
            if_icmpge 5
         4: .line 5500
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifne 31
            iload 1 /* offset */
            iload 3 /* anotherHandleOffset */
            if_icmpgt 31
         5: .line 5501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.widget.Editor$SelectionHandleView.mTouchWordDelta:F
         6: .line 5502
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 4 /* layout */
        start local 4 // android.text.Layout layout
         7: .line 5503
            aload 4 /* layout */
            ifnull 28
            iload 1 /* offset */
            iload 3 /* anotherHandleOffset */
            if_icmpeq 28
         8: .line 5504
            aload 0 /* this */
            aload 4 /* layout */
            iload 1 /* offset */
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;I)F
            fstore 5 /* horiz */
        start local 5 // float horiz
         9: .line 5505
            aload 0 /* this */
            aload 4 /* layout */
            iload 3 /* anotherHandleOffset */
        10: .line 5506
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 11
            iconst_0
            goto 12
      StackMap locals: android.widget.Editor$SelectionHandleView int int int android.text.Layout float
      StackMap stack: android.widget.Editor$SelectionHandleView android.text.Layout int
        11: iconst_1
        12: .line 5505
      StackMap locals: android.widget.Editor$SelectionHandleView int int int android.text.Layout float
      StackMap stack: android.widget.Editor$SelectionHandleView android.text.Layout int int
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;IZ)F
            fstore 6 /* anotherHandleHoriz */
        start local 6 // float anotherHandleHoriz
        13: .line 5507
            aload 0 /* this */
            aload 4 /* layout */
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mPreviousOffset:I
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;I)F
            fstore 7 /* currentHoriz */
        start local 7 // float currentHoriz
        14: .line 5508
            fload 7 /* currentHoriz */
            fload 6 /* anotherHandleHoriz */
            fcmpg
            ifge 15
            fload 5 /* horiz */
            fload 6 /* anotherHandleHoriz */
            fcmpg
            iflt 16
        15: .line 5509
      StackMap locals: float float
      StackMap stack:
            fload 7 /* currentHoriz */
            fload 6 /* anotherHandleHoriz */
            fcmpl
            ifle 28
            fload 5 /* horiz */
            fload 6 /* anotherHandleHoriz */
            fcmpl
            ifle 28
        16: .line 5512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.getCurrentCursorOffset:()I
            istore 8 /* currentOffset */
        start local 8 // int currentOffset
        17: .line 5513
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 19
        18: .line 5514
            iload 8 /* currentOffset */
            goto 20
      StackMap locals: int
      StackMap stack:
        19: iload 8 /* currentOffset */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
        20: .line 5513
      StackMap locals:
      StackMap stack: int
            istore 9 /* offsetToGetRunRange */
        start local 9 // int offsetToGetRunRange
        21: .line 5515
            aload 4 /* layout */
            iload 9 /* offsetToGetRunRange */
            invokevirtual android.text.Layout.getRunRange:(I)J
            lstore 10 /* range */
        start local 10 // long range
        22: .line 5516
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 25
        23: .line 5517
            lload 10 /* range */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 1 /* offset */
        24: .line 5518
            goto 26
        25: .line 5519
      StackMap locals: int long
      StackMap stack:
            lload 10 /* range */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 1 /* offset */
        26: .line 5521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            iload 2 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAtCursorOffset:(IZZ)V
        27: .line 5522
            return
        end local 10 // long range
        end local 9 // int offsetToGetRunRange
        end local 8 // int currentOffset
        end local 7 // float currentHoriz
        end local 6 // float anotherHandleHoriz
        end local 5 // float horiz
        28: .line 5526
      StackMap locals: android.widget.Editor$SelectionHandleView int int int android.text.Layout
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            iload 3 /* anotherHandleOffset */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 29
            iconst_0
            goto 30
      StackMap locals: android.widget.Editor$SelectionHandleView int int int android.text.Layout
      StackMap stack: android.widget.Editor int
        29: iconst_1
      StackMap locals: android.widget.Editor$SelectionHandleView int int int android.text.Layout
      StackMap stack: android.widget.Editor int int
        30: invokevirtual android.widget.Editor.getNextCursorOffset:(IZ)I
            istore 1 /* offset */
        end local 4 // android.text.Layout layout
        31: .line 5528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            iload 2 /* fromTouchScreen */
            invokevirtual android.widget.Editor$SelectionHandleView.positionAtCursorOffset:(IZZ)V
        32: .line 5529
            return
        end local 3 // int anotherHandleOffset
        end local 2 // boolean fromTouchScreen
        end local 1 // int offset
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   33     0                 this  Landroid/widget/Editor$SelectionHandleView;
            0   33     1               offset  I
            0   33     2      fromTouchScreen  Z
            3   33     3  anotherHandleOffset  I
            7   31     4               layout  Landroid/text/Layout;
            9   28     5                horiz  F
           13   28     6   anotherHandleHoriz  F
           14   28     7         currentHoriz  F
           17   28     8        currentOffset  I
           21   28     9  offsetToGetRunRange  I
           22   28    10                range  J
    MethodParameters:
                 Name  Flags
      offset           
      fromTouchScreen  

  private boolean positionNearEdgeOfScrollingView(float, boolean);
    descriptor: (FZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // float x
        start local 2 // boolean atRtl
         0: .line 5532
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTextViewLocation:[I
            invokevirtual android.widget.TextView.getLocationOnScreen:([I)V
         1: .line 5534
            iload 2 /* atRtl */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            if_icmpne 9
         2: .line 5535
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTextViewLocation:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getWidth:()I
            iadd
         3: .line 5536
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getPaddingRight:()I
         4: .line 5535
            isub
            istore 4 /* rightEdge */
        start local 4 // int rightEdge
         5: .line 5537
            fload 1 /* x */
            iload 4 /* rightEdge */
            i2f
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTextViewEdgeSlop:F
            fsub
            fcmpl
            ifle 6
            iconst_1
            goto 7
      StackMap locals: android.widget.Editor$SelectionHandleView float int top int
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* nearEdge */
        end local 4 // int rightEdge
        start local 3 // boolean nearEdge
         8: .line 5538
            goto 13
        end local 3 // boolean nearEdge
         9: .line 5539
      StackMap locals: android.widget.Editor$SelectionHandleView float int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTextViewLocation:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getPaddingLeft:()I
            iadd
            istore 4 /* leftEdge */
        start local 4 // int leftEdge
        10: .line 5540
            fload 1 /* x */
            iload 4 /* leftEdge */
            i2f
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.mTextViewEdgeSlop:F
            fadd
            fcmpg
            ifge 11
            iconst_1
            goto 12
      StackMap locals: android.widget.Editor$SelectionHandleView float int top int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 3 /* nearEdge */
        end local 4 // int leftEdge
        start local 3 // boolean nearEdge
        13: .line 5542
      StackMap locals: android.widget.Editor$SelectionHandleView float int int
      StackMap stack:
            iload 3 /* nearEdge */
            ireturn
        end local 3 // boolean nearEdge
        end local 2 // boolean atRtl
        end local 1 // float x
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Landroid/widget/Editor$SelectionHandleView;
            0   14     1          x  F
            0   14     2      atRtl  Z
            8    9     3   nearEdge  Z
           13   14     3   nearEdge  Z
            5    8     4  rightEdge  I
           10   13     4   leftEdge  I
    MethodParameters:
       Name  Flags
      x      
      atRtl  

  protected boolean isAtRtlRun(android.text.Layout, int);
    descriptor: (Landroid/text/Layout;I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.text.Layout layout
        start local 2 // int offset
         0: .line 5547
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 1
            iload 2 /* offset */
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 2 /* offset */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* offsetToCheck */
        start local 3 // int offsetToCheck
         3: .line 5548
            aload 1 /* layout */
            iload 3 /* offsetToCheck */
            invokevirtual android.text.Layout.isRtlCharAt:(I)Z
            ireturn
        end local 3 // int offsetToCheck
        end local 2 // int offset
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Landroid/widget/Editor$SelectionHandleView;
            0    4     1         layout  Landroid/text/Layout;
            0    4     2         offset  I
            3    4     3  offsetToCheck  I
    MethodParameters:
        Name  Flags
      layout  
      offset  

  public float getHorizontal(android.text.Layout, int);
    descriptor: (Landroid/text/Layout;I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.text.Layout layout
        start local 2 // int offset
         0: .line 5553
            aload 0 /* this */
            aload 1 /* layout */
            iload 2 /* offset */
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            invokevirtual android.widget.Editor$SelectionHandleView.getHorizontal:(Landroid/text/Layout;IZ)F
            freturn
        end local 2 // int offset
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/widget/Editor$SelectionHandleView;
            0    1     1  layout  Landroid/text/Layout;
            0    1     2  offset  I
    MethodParameters:
        Name  Flags
      layout  
      offset  

  private float getHorizontal(android.text.Layout, int, boolean);
    descriptor: (Landroid/text/Layout;IZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.text.Layout layout
        start local 2 // int offset
        start local 3 // boolean startHandle
         0: .line 5557
            aload 1 /* layout */
            iload 2 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
         1: .line 5558
            iload 3 /* startHandle */
            ifeq 2
            iload 2 /* offset */
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 2 /* offset */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* offsetToCheck */
        start local 5 // int offsetToCheck
         4: .line 5559
            aload 1 /* layout */
            iload 5 /* offsetToCheck */
            invokevirtual android.text.Layout.isRtlCharAt:(I)Z
            istore 6 /* isRtlChar */
        start local 6 // boolean isRtlChar
         5: .line 5560
            aload 1 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_m1
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals: int int
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* isRtlParagraph */
        start local 7 // boolean isRtlParagraph
         8: .line 5561
            iload 6 /* isRtlChar */
            iload 7 /* isRtlParagraph */
            if_icmpne 10
         9: .line 5562
            aload 1 /* layout */
            iload 2 /* offset */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            goto 11
      StackMap locals: int
      StackMap stack:
        10: aload 1 /* layout */
            iload 2 /* offset */
            invokevirtual android.text.Layout.getSecondaryHorizontal:(I)F
        11: .line 5561
      StackMap locals:
      StackMap stack: float
            freturn
        end local 7 // boolean isRtlParagraph
        end local 6 // boolean isRtlChar
        end local 5 // int offsetToCheck
        end local 4 // int line
        end local 3 // boolean startHandle
        end local 2 // int offset
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Landroid/widget/Editor$SelectionHandleView;
            0   12     1          layout  Landroid/text/Layout;
            0   12     2          offset  I
            0   12     3     startHandle  Z
            1   12     4            line  I
            4   12     5   offsetToCheck  I
            5   12     6       isRtlChar  Z
            8   12     7  isRtlParagraph  Z
    MethodParameters:
             Name  Flags
      layout       
      offset       
      startHandle  

  protected int getOffsetAtCoordinate(android.text.Layout, int, float);
    descriptor: (Landroid/text/Layout;IF)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // android.widget.Editor$SelectionHandleView this
        start local 1 // android.text.Layout layout
        start local 2 // int line
        start local 3 // float x
         0: .line 5567
            aload 0 /* this */
            getfield android.widget.Editor$SelectionHandleView.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 3 /* x */
            invokevirtual android.widget.TextView.convertToLocalHorizontalCoordinate:(F)F
            fstore 4 /* localX */
        start local 4 // float localX
         1: .line 5568
            aload 1 /* layout */
            iload 2 /* line */
            fload 4 /* localX */
            iconst_1
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IFZ)I
            istore 5 /* primaryOffset */
        start local 5 // int primaryOffset
         2: .line 5569
            aload 1 /* layout */
            iload 5 /* primaryOffset */
            invokevirtual android.text.Layout.isLevelBoundary:(I)Z
            ifne 4
         3: .line 5570
            iload 5 /* primaryOffset */
            ireturn
         4: .line 5572
      StackMap locals: float int
      StackMap stack:
            aload 1 /* layout */
            iload 2 /* line */
            fload 4 /* localX */
            iconst_0
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IFZ)I
            istore 6 /* secondaryOffset */
        start local 6 // int secondaryOffset
         5: .line 5573
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.getCurrentCursorOffset:()I
            istore 7 /* currentOffset */
        start local 7 // int currentOffset
         6: .line 5574
            iload 5 /* primaryOffset */
            iload 7 /* currentOffset */
            isub
            invokestatic java.lang.Math.abs:(I)I
            istore 8 /* primaryDiff */
        start local 8 // int primaryDiff
         7: .line 5575
            iload 6 /* secondaryOffset */
            iload 7 /* currentOffset */
            isub
            invokestatic java.lang.Math.abs:(I)I
            istore 9 /* secondaryDiff */
        start local 9 // int secondaryDiff
         8: .line 5576
            iload 8 /* primaryDiff */
            iload 9 /* secondaryDiff */
            if_icmpge 10
         9: .line 5577
            iload 5 /* primaryOffset */
            ireturn
        10: .line 5578
      StackMap locals: android.widget.Editor$SelectionHandleView android.text.Layout int float float int int int int int
      StackMap stack:
            iload 8 /* primaryDiff */
            iload 9 /* secondaryDiff */
            if_icmple 12
        11: .line 5579
            iload 6 /* secondaryOffset */
            ireturn
        12: .line 5581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 14
        13: .line 5582
            iload 7 /* currentOffset */
            goto 15
      StackMap locals:
      StackMap stack:
        14: iload 7 /* currentOffset */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
        15: .line 5581
      StackMap locals:
      StackMap stack: int
            istore 10 /* offsetToCheck */
        start local 10 // int offsetToCheck
        16: .line 5583
            aload 1 /* layout */
            iload 10 /* offsetToCheck */
            invokevirtual android.text.Layout.isRtlCharAt:(I)Z
            istore 11 /* isRtlChar */
        start local 11 // boolean isRtlChar
        17: .line 5584
            aload 1 /* layout */
            iload 2 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_m1
            if_icmpne 18
            iconst_1
            goto 19
      StackMap locals: int int
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 12 /* isRtlParagraph */
        start local 12 // boolean isRtlParagraph
        20: .line 5585
            iload 11 /* isRtlChar */
            iload 12 /* isRtlParagraph */
            if_icmpne 21
            iload 5 /* primaryOffset */
            goto 22
      StackMap locals: int
      StackMap stack:
        21: iload 6 /* secondaryOffset */
      StackMap locals:
      StackMap stack: int
        22: ireturn
        end local 12 // boolean isRtlParagraph
        end local 11 // boolean isRtlChar
        end local 10 // int offsetToCheck
        end local 9 // int secondaryDiff
        end local 8 // int primaryDiff
        end local 7 // int currentOffset
        end local 6 // int secondaryOffset
        end local 5 // int primaryOffset
        end local 4 // float localX
        end local 3 // float x
        end local 2 // int line
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Landroid/widget/Editor$SelectionHandleView;
            0   23     1           layout  Landroid/text/Layout;
            0   23     2             line  I
            0   23     3                x  F
            1   23     4           localX  F
            2   23     5    primaryOffset  I
            5   23     6  secondaryOffset  I
            6   23     7    currentOffset  I
            7   23     8      primaryDiff  I
            8   23     9    secondaryDiff  I
           16   23    10    offsetToCheck  I
           17   23    11        isRtlChar  Z
           20   23    12   isRtlParagraph  Z
    MethodParameters:
        Name  Flags
      layout  
      line    
      x       

  protected int getMagnifierHandleTrigger();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor$SelectionHandleView this
         0: .line 5591
            aload 0 /* this */
            invokevirtual android.widget.Editor$SelectionHandleView.isStartHandle:()Z
            ifeq 2
         1: .line 5592
            iconst_1
            goto 3
         2: .line 5593
      StackMap locals:
      StackMap stack:
            iconst_2
         3: .line 5591
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // android.widget.Editor$SelectionHandleView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/Editor$SelectionHandleView;
}
SourceFile: "Editor.java"
NestHost: android.widget.Editor
InnerClasses:
  public abstract HandleView = android.widget.Editor$HandleView of android.widget.Editor
  public final SelectionHandleView = android.widget.Editor$SelectionHandleView of android.widget.Editor
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()