public class android.text.method.LinkMovementMethod extends android.text.method.ScrollingMovementMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.text.method.LinkMovementMethod
  super_class: android.text.method.ScrollingMovementMethod
{
  private static final int CLICK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

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

  private static android.text.method.LinkMovementMethod sInstance;
    descriptor: Landroid/text/method/LinkMovementMethod;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Object FROM_BELOW;
    descriptor: Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 278
            new android.text.NoCopySpan$Concrete
            dup
            invokespecial android.text.NoCopySpan$Concrete.<init>:()V
            putstatic android.text.method.LinkMovementMethod.FROM_BELOW:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.method.LinkMovementMethod this
         0: .line 35
            aload 0 /* this */
            invokespecial android.text.method.ScrollingMovementMethod.<init>:()V
            return
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/method/LinkMovementMethod;

  public boolean canSelectArbitrarily();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.method.LinkMovementMethod this
         0: .line 44
            iconst_1
            ireturn
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/method/LinkMovementMethod;

  protected boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
        start local 3 // int keyCode
        start local 4 // int movementMetaState
        start local 5 // android.view.KeyEvent event
         0: .line 50
            iload 3 /* keyCode */
            lookupswitch { // 2
                   23: 1
                   66: 1
              default: 5
          }
         1: .line 53
      StackMap locals:
      StackMap stack:
            iload 4 /* movementMetaState */
            invokestatic android.view.KeyEvent.metaStateHasNoModifiers:(I)Z
            ifeq 5
         2: .line 54
            aload 5 /* event */
            invokevirtual android.view.KeyEvent.getAction:()I
            ifne 5
         3: .line 55
            aload 5 /* event */
            invokevirtual android.view.KeyEvent.getRepeatCount:()I
            ifne 5
            aload 0 /* this */
            iconst_1
            aload 1 /* widget */
            aload 2 /* buffer */
            invokevirtual android.text.method.LinkMovementMethod.action:(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
            ifeq 5
         4: .line 56
            iconst_1
            ireturn
         5: .line 61
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            iload 3 /* keyCode */
            iload 4 /* movementMetaState */
            aload 5 /* event */
            invokespecial android.text.method.ScrollingMovementMethod.handleMovementKey:(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
            ireturn
        end local 5 // android.view.KeyEvent event
        end local 4 // int movementMetaState
        end local 3 // int keyCode
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Landroid/text/method/LinkMovementMethod;
            0    6     1             widget  Landroid/widget/TextView;
            0    6     2             buffer  Landroid/text/Spannable;
            0    6     3            keyCode  I
            0    6     4  movementMetaState  I
            0    6     5              event  Landroid/view/KeyEvent;
    MethodParameters:
                   Name  Flags
      widget             
      buffer             
      keyCode            
      movementMetaState  
      event              

  protected boolean up(android.widget.TextView, android.text.Spannable);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
         0: .line 66
            aload 0 /* this */
            iconst_2
            aload 1 /* widget */
            aload 2 /* buffer */
            invokevirtual android.text.method.LinkMovementMethod.action:(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
            ifeq 2
         1: .line 67
            iconst_1
            ireturn
         2: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            invokespecial android.text.method.ScrollingMovementMethod.up:(Landroid/widget/TextView;Landroid/text/Spannable;)Z
            ireturn
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/text/method/LinkMovementMethod;
            0    3     1  widget  Landroid/widget/TextView;
            0    3     2  buffer  Landroid/text/Spannable;
    MethodParameters:
        Name  Flags
      widget  
      buffer  

  protected boolean down(android.widget.TextView, android.text.Spannable);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
         0: .line 75
            aload 0 /* this */
            iconst_3
            aload 1 /* widget */
            aload 2 /* buffer */
            invokevirtual android.text.method.LinkMovementMethod.action:(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
            ifeq 2
         1: .line 76
            iconst_1
            ireturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            invokespecial android.text.method.ScrollingMovementMethod.down:(Landroid/widget/TextView;Landroid/text/Spannable;)Z
            ireturn
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/text/method/LinkMovementMethod;
            0    3     1  widget  Landroid/widget/TextView;
            0    3     2  buffer  Landroid/text/Spannable;
    MethodParameters:
        Name  Flags
      widget  
      buffer  

  protected boolean left(android.widget.TextView, android.text.Spannable);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
         0: .line 84
            aload 0 /* this */
            iconst_2
            aload 1 /* widget */
            aload 2 /* buffer */
            invokevirtual android.text.method.LinkMovementMethod.action:(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
            ifeq 2
         1: .line 85
            iconst_1
            ireturn
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            invokespecial android.text.method.ScrollingMovementMethod.left:(Landroid/widget/TextView;Landroid/text/Spannable;)Z
            ireturn
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/text/method/LinkMovementMethod;
            0    3     1  widget  Landroid/widget/TextView;
            0    3     2  buffer  Landroid/text/Spannable;
    MethodParameters:
        Name  Flags
      widget  
      buffer  

  protected boolean right(android.widget.TextView, android.text.Spannable);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
         0: .line 93
            aload 0 /* this */
            iconst_3
            aload 1 /* widget */
            aload 2 /* buffer */
            invokevirtual android.text.method.LinkMovementMethod.action:(ILandroid/widget/TextView;Landroid/text/Spannable;)Z
            ifeq 2
         1: .line 94
            iconst_1
            ireturn
         2: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            invokespecial android.text.method.ScrollingMovementMethod.right:(Landroid/widget/TextView;Landroid/text/Spannable;)Z
            ireturn
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/text/method/LinkMovementMethod;
            0    3     1  widget  Landroid/widget/TextView;
            0    3     2  buffer  Landroid/text/Spannable;
    MethodParameters:
        Name  Flags
      widget  
      buffer  

  private boolean action(int, android.widget.TextView, android.text.Spannable);
    descriptor: (ILandroid/widget/TextView;Landroid/text/Spannable;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=23, args_size=4
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // int what
        start local 2 // android.widget.TextView widget
        start local 3 // android.text.Spannable buffer
         0: .line 101
            aload 2 /* widget */
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 4 /* layout */
        start local 4 // android.text.Layout layout
         1: .line 103
            aload 2 /* widget */
            invokevirtual android.widget.TextView.getTotalPaddingTop:()I
         2: .line 104
            aload 2 /* widget */
            invokevirtual android.widget.TextView.getTotalPaddingBottom:()I
         3: .line 103
            iadd
            istore 5 /* padding */
        start local 5 // int padding
         4: .line 105
            aload 2 /* widget */
            invokevirtual android.widget.TextView.getScrollY:()I
            istore 6 /* areaTop */
        start local 6 // int areaTop
         5: .line 106
            iload 6 /* areaTop */
            aload 2 /* widget */
            invokevirtual android.widget.TextView.getHeight:()I
            iadd
            iload 5 /* padding */
            isub
            istore 7 /* areaBot */
        start local 7 // int areaBot
         6: .line 108
            aload 4 /* layout */
            iload 6 /* areaTop */
            invokevirtual android.text.Layout.getLineForVertical:(I)I
            istore 8 /* lineTop */
        start local 8 // int lineTop
         7: .line 109
            aload 4 /* layout */
            iload 7 /* areaBot */
            invokevirtual android.text.Layout.getLineForVertical:(I)I
            istore 9 /* lineBot */
        start local 9 // int lineBot
         8: .line 111
            aload 4 /* layout */
            iload 8 /* lineTop */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 10 /* first */
        start local 10 // int first
         9: .line 112
            aload 4 /* layout */
            iload 9 /* lineBot */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 11 /* last */
        start local 11 // int last
        10: .line 114
            aload 3 /* buffer */
            iload 10 /* first */
            iload 11 /* last */
            ldc Landroid/text/style/ClickableSpan;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ClickableSpan[]
            astore 12 /* candidates */
        start local 12 // android.text.style.ClickableSpan[] candidates
        11: .line 116
            aload 3 /* buffer */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 13 /* a */
        start local 13 // int a
        12: .line 117
            aload 3 /* buffer */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 14 /* b */
        start local 14 // int b
        13: .line 119
            iload 13 /* a */
            iload 14 /* b */
            invokestatic java.lang.Math.min:(II)I
            istore 15 /* selStart */
        start local 15 // int selStart
        14: .line 120
            iload 13 /* a */
            iload 14 /* b */
            invokestatic java.lang.Math.max:(II)I
            istore 16 /* selEnd */
        start local 16 // int selEnd
        15: .line 122
            iload 15 /* selStart */
            ifge 18
        16: .line 123
            aload 3 /* buffer */
            getstatic android.text.method.LinkMovementMethod.FROM_BELOW:Ljava/lang/Object;
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            iflt 18
        17: .line 124
            aload 3 /* buffer */
            invokeinterface android.text.Spannable.length:()I
            dup
            istore 16 /* selEnd */
            istore 15 /* selStart */
        18: .line 128
      StackMap locals: android.text.method.LinkMovementMethod int android.widget.TextView android.text.Spannable android.text.Layout int int int int int int int android.text.style.ClickableSpan[] int int int int
      StackMap stack:
            iload 15 /* selStart */
            iload 11 /* last */
            if_icmple 20
        19: .line 129
            ldc 2147483647
            dup
            istore 16 /* selEnd */
            istore 15 /* selStart */
        20: .line 130
      StackMap locals:
      StackMap stack:
            iload 16 /* selEnd */
            iload 10 /* first */
            if_icmpge 22
        21: .line 131
            iconst_m1
            dup
            istore 16 /* selEnd */
            istore 15 /* selStart */
        22: .line 133
      StackMap locals:
      StackMap stack:
            iload 1 /* what */
            tableswitch { // 1 - 3
                    1: 23
                    2: 34
                    3: 48
              default: 62
          }
        23: .line 135
      StackMap locals:
      StackMap stack:
            iload 15 /* selStart */
            iload 16 /* selEnd */
            if_icmpne 25
        24: .line 136
            iconst_0
            ireturn
        25: .line 139
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            iload 15 /* selStart */
            iload 16 /* selEnd */
            ldc Landroid/text/style/ClickableSpan;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ClickableSpan[]
            astore 17 /* links */
        start local 17 // android.text.style.ClickableSpan[] links
        26: .line 141
            aload 17 /* links */
            arraylength
            iconst_1
            if_icmpeq 28
        27: .line 142
            iconst_0
            ireturn
        28: .line 145
      StackMap locals: android.text.style.ClickableSpan[]
      StackMap stack:
            aload 17 /* links */
            iconst_0
            aaload
            astore 18 /* link */
        start local 18 // android.text.style.ClickableSpan link
        29: .line 146
            aload 18 /* link */
            instanceof android.view.textclassifier.TextLinks$TextLinkSpan
            ifeq 32
        30: .line 147
            aload 18 /* link */
            checkcast android.view.textclassifier.TextLinks$TextLinkSpan
            aload 2 /* widget */
            iconst_1
            invokevirtual android.view.textclassifier.TextLinks$TextLinkSpan.onClick:(Landroid/view/View;I)V
        31: .line 148
            goto 62
        32: .line 149
      StackMap locals: android.text.style.ClickableSpan
      StackMap stack:
            aload 18 /* link */
            aload 2 /* widget */
            invokevirtual android.text.style.ClickableSpan.onClick:(Landroid/view/View;)V
        33: .line 151
            goto 62
        end local 18 // android.text.style.ClickableSpan link
        end local 17 // android.text.style.ClickableSpan[] links
        34: .line 156
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 19 /* bestStart */
        start local 19 // int bestStart
        35: .line 157
            iconst_m1
            istore 20 /* bestEnd */
        start local 20 // int bestEnd
        36: .line 159
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        37: goto 44
        38: .line 160
      StackMap locals: android.text.method.LinkMovementMethod int android.widget.TextView android.text.Spannable android.text.Layout int int int int int int int android.text.style.ClickableSpan[] int int int int top top int int int
      StackMap stack:
            aload 3 /* buffer */
            aload 12 /* candidates */
            iload 21 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
            istore 22 /* end */
        start local 22 // int end
        39: .line 162
            iload 22 /* end */
            iload 16 /* selEnd */
            if_icmplt 40
            iload 15 /* selStart */
            iload 16 /* selEnd */
            if_icmpne 43
        40: .line 163
      StackMap locals: int
      StackMap stack:
            iload 22 /* end */
            iload 20 /* bestEnd */
            if_icmple 43
        41: .line 164
            aload 3 /* buffer */
            aload 12 /* candidates */
            iload 21 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            istore 19 /* bestStart */
        42: .line 165
            iload 22 /* end */
            istore 20 /* bestEnd */
        end local 22 // int end
        43: .line 159
      StackMap locals:
      StackMap stack:
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 21 /* i */
            aload 12 /* candidates */
            arraylength
            if_icmplt 38
        end local 21 // int i
        45: .line 170
            iload 19 /* bestStart */
            iflt 62
        46: .line 171
            aload 3 /* buffer */
            iload 20 /* bestEnd */
            iload 19 /* bestStart */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        47: .line 172
            iconst_1
            ireturn
        end local 20 // int bestEnd
        end local 19 // int bestStart
        48: .line 178
      StackMap locals: android.text.method.LinkMovementMethod int android.widget.TextView android.text.Spannable android.text.Layout int int int int int int int android.text.style.ClickableSpan[] int int int int
      StackMap stack:
            ldc 2147483647
            istore 19 /* bestStart */
        start local 19 // int bestStart
        49: .line 179
            ldc 2147483647
            istore 20 /* bestEnd */
        start local 20 // int bestEnd
        50: .line 181
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        51: goto 58
        52: .line 182
      StackMap locals: android.text.method.LinkMovementMethod int android.widget.TextView android.text.Spannable android.text.Layout int int int int int int int android.text.style.ClickableSpan[] int int int int top top int int int
      StackMap stack:
            aload 3 /* buffer */
            aload 12 /* candidates */
            iload 21 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            istore 22 /* start */
        start local 22 // int start
        53: .line 184
            iload 22 /* start */
            iload 15 /* selStart */
            if_icmpgt 54
            iload 15 /* selStart */
            iload 16 /* selEnd */
            if_icmpne 57
        54: .line 185
      StackMap locals: int
      StackMap stack:
            iload 22 /* start */
            iload 19 /* bestStart */
            if_icmpge 57
        55: .line 186
            iload 22 /* start */
            istore 19 /* bestStart */
        56: .line 187
            aload 3 /* buffer */
            aload 12 /* candidates */
            iload 21 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
            istore 20 /* bestEnd */
        end local 22 // int start
        57: .line 181
      StackMap locals:
      StackMap stack:
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        58: iload 21 /* i */
            aload 12 /* candidates */
            arraylength
            if_icmplt 52
        end local 21 // int i
        59: .line 192
            iload 20 /* bestEnd */
            ldc 2147483647
            if_icmpge 62
        60: .line 193
            aload 3 /* buffer */
            iload 19 /* bestStart */
            iload 20 /* bestEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        61: .line 194
            iconst_1
            ireturn
        end local 20 // int bestEnd
        end local 19 // int bestStart
        62: .line 200
      StackMap locals: android.text.method.LinkMovementMethod int android.widget.TextView android.text.Spannable android.text.Layout int int int int int int int android.text.style.ClickableSpan[] int int int int
      StackMap stack:
            iconst_0
            ireturn
        end local 16 // int selEnd
        end local 15 // int selStart
        end local 14 // int b
        end local 13 // int a
        end local 12 // android.text.style.ClickableSpan[] candidates
        end local 11 // int last
        end local 10 // int first
        end local 9 // int lineBot
        end local 8 // int lineTop
        end local 7 // int areaBot
        end local 6 // int areaTop
        end local 5 // int padding
        end local 4 // android.text.Layout layout
        end local 3 // android.text.Spannable buffer
        end local 2 // android.widget.TextView widget
        end local 1 // int what
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   63     0        this  Landroid/text/method/LinkMovementMethod;
            0   63     1        what  I
            0   63     2      widget  Landroid/widget/TextView;
            0   63     3      buffer  Landroid/text/Spannable;
            1   63     4      layout  Landroid/text/Layout;
            4   63     5     padding  I
            5   63     6     areaTop  I
            6   63     7     areaBot  I
            7   63     8     lineTop  I
            8   63     9     lineBot  I
            9   63    10       first  I
           10   63    11        last  I
           11   63    12  candidates  [Landroid/text/style/ClickableSpan;
           12   63    13           a  I
           13   63    14           b  I
           14   63    15    selStart  I
           15   63    16      selEnd  I
           26   34    17       links  [Landroid/text/style/ClickableSpan;
           29   34    18        link  Landroid/text/style/ClickableSpan;
           35   48    19   bestStart  I
           49   62    19   bestStart  I
           36   48    20     bestEnd  I
           50   62    20     bestEnd  I
           37   45    21           i  I
           39   43    22         end  I
           51   59    21           i  I
           53   57    22       start  I
    MethodParameters:
        Name  Flags
      what    
      widget  
      buffer  

  public boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable buffer
        start local 3 // android.view.MotionEvent event
         0: .line 206
            aload 3 /* event */
            invokevirtual android.view.MotionEvent.getAction:()I
            istore 4 /* action */
        start local 4 // int action
         1: .line 208
            iload 4 /* action */
            iconst_1
            if_icmpeq 2
            iload 4 /* action */
            ifne 32
         2: .line 209
      StackMap locals: int
      StackMap stack:
            aload 3 /* event */
            invokevirtual android.view.MotionEvent.getX:()F
            f2i
            istore 5 /* x */
        start local 5 // int x
         3: .line 210
            aload 3 /* event */
            invokevirtual android.view.MotionEvent.getY:()F
            f2i
            istore 6 /* y */
        start local 6 // int y
         4: .line 212
            iload 5 /* x */
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getTotalPaddingLeft:()I
            isub
            istore 5 /* x */
         5: .line 213
            iload 6 /* y */
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getTotalPaddingTop:()I
            isub
            istore 6 /* y */
         6: .line 215
            iload 5 /* x */
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getScrollX:()I
            iadd
            istore 5 /* x */
         7: .line 216
            iload 6 /* y */
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getScrollY:()I
            iadd
            istore 6 /* y */
         8: .line 218
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 7 /* layout */
        start local 7 // android.text.Layout layout
         9: .line 219
            aload 7 /* layout */
            iload 6 /* y */
            invokevirtual android.text.Layout.getLineForVertical:(I)I
            istore 8 /* line */
        start local 8 // int line
        10: .line 220
            aload 7 /* layout */
            iload 8 /* line */
            iload 5 /* x */
            i2f
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IF)I
            istore 9 /* off */
        start local 9 // int off
        11: .line 222
            aload 2 /* buffer */
            iload 9 /* off */
            iload 9 /* off */
            ldc Landroid/text/style/ClickableSpan;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ClickableSpan[]
            astore 10 /* links */
        start local 10 // android.text.style.ClickableSpan[] links
        12: .line 224
            aload 10 /* links */
            arraylength
            ifeq 31
        13: .line 225
            aload 10 /* links */
            iconst_0
            aaload
            astore 11 /* link */
        start local 11 // android.text.style.ClickableSpan link
        14: .line 226
            iload 4 /* action */
            iconst_1
            if_icmpne 22
        15: .line 227
            aload 11 /* link */
            instanceof android.view.textclassifier.TextLinks$TextLinkSpan
            ifeq 20
        16: .line 228
            aload 11 /* link */
            checkcast android.view.textclassifier.TextLinks$TextLinkSpan
        17: .line 229
            aload 1 /* widget */
            iconst_0
        18: .line 228
            invokevirtual android.view.textclassifier.TextLinks$TextLinkSpan.onClick:(Landroid/view/View;I)V
        19: .line 230
            goto 30
        20: .line 231
      StackMap locals: android.text.method.LinkMovementMethod android.widget.TextView android.text.Spannable android.view.MotionEvent int int int android.text.Layout int int android.text.style.ClickableSpan[] android.text.style.ClickableSpan
      StackMap stack:
            aload 11 /* link */
            aload 1 /* widget */
            invokevirtual android.text.style.ClickableSpan.onClick:(Landroid/view/View;)V
        21: .line 233
            goto 30
      StackMap locals:
      StackMap stack:
        22: iload 4 /* action */
            ifne 30
        23: .line 234
            aload 1 /* widget */
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
        24: .line 235
            bipush 28
            if_icmplt 26
        25: .line 238
            aload 1 /* widget */
            sipush 200
            invokevirtual android.widget.TextView.hideFloatingToolbar:(I)V
        26: .line 240
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
        27: .line 241
            aload 2 /* buffer */
            aload 11 /* link */
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
        28: .line 242
            aload 2 /* buffer */
            aload 11 /* link */
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
        29: .line 240
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        30: .line 244
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 11 // android.text.style.ClickableSpan link
        31: .line 246
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokestatic android.text.Selection.removeSelection:(Landroid/text/Spannable;)V
        end local 10 // android.text.style.ClickableSpan[] links
        end local 9 // int off
        end local 8 // int line
        end local 7 // android.text.Layout layout
        end local 6 // int y
        end local 5 // int x
        32: .line 250
      StackMap locals: android.text.method.LinkMovementMethod android.widget.TextView android.text.Spannable android.view.MotionEvent int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* widget */
            aload 2 /* buffer */
            aload 3 /* event */
            invokespecial android.text.method.ScrollingMovementMethod.onTouchEvent:(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
            ireturn
        end local 4 // int action
        end local 3 // android.view.MotionEvent event
        end local 2 // android.text.Spannable buffer
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   33     0    this  Landroid/text/method/LinkMovementMethod;
            0   33     1  widget  Landroid/widget/TextView;
            0   33     2  buffer  Landroid/text/Spannable;
            0   33     3   event  Landroid/view/MotionEvent;
            1   33     4  action  I
            3   32     5       x  I
            4   32     6       y  I
            9   32     7  layout  Landroid/text/Layout;
           10   32     8    line  I
           11   32     9     off  I
           12   32    10   links  [Landroid/text/style/ClickableSpan;
           14   31    11    link  Landroid/text/style/ClickableSpan;
    MethodParameters:
        Name  Flags
      widget  
      buffer  
      event   

  public void initialize(android.widget.TextView, android.text.Spannable);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView widget
        start local 2 // android.text.Spannable text
         0: .line 255
            aload 2 /* text */
            invokestatic android.text.Selection.removeSelection:(Landroid/text/Spannable;)V
         1: .line 256
            aload 2 /* text */
            getstatic android.text.method.LinkMovementMethod.FROM_BELOW:Ljava/lang/Object;
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
         2: .line 257
            return
        end local 2 // android.text.Spannable text
        end local 1 // android.widget.TextView widget
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/text/method/LinkMovementMethod;
            0    3     1  widget  Landroid/widget/TextView;
            0    3     2    text  Landroid/text/Spannable;
    MethodParameters:
        Name  Flags
      widget  
      text    

  public void onTakeFocus(android.widget.TextView, android.text.Spannable, int);
    descriptor: (Landroid/widget/TextView;Landroid/text/Spannable;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.text.method.LinkMovementMethod this
        start local 1 // android.widget.TextView view
        start local 2 // android.text.Spannable text
        start local 3 // int dir
         0: .line 261
            aload 2 /* text */
            invokestatic android.text.Selection.removeSelection:(Landroid/text/Spannable;)V
         1: .line 263
            iload 3 /* dir */
            iconst_1
            iand
            ifeq 4
         2: .line 264
            aload 2 /* text */
            getstatic android.text.method.LinkMovementMethod.FROM_BELOW:Ljava/lang/Object;
            iconst_0
            iconst_0
            bipush 34
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         3: .line 265
            goto 5
         4: .line 266
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            getstatic android.text.method.LinkMovementMethod.FROM_BELOW:Ljava/lang/Object;
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
         5: .line 268
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int dir
        end local 2 // android.text.Spannable text
        end local 1 // android.widget.TextView view
        end local 0 // android.text.method.LinkMovementMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/text/method/LinkMovementMethod;
            0    6     1  view  Landroid/widget/TextView;
            0    6     2  text  Landroid/text/Spannable;
            0    6     3   dir  I
    MethodParameters:
      Name  Flags
      view  
      text  
      dir   

  public static android.text.method.MovementMethod getInstance();
    descriptor: ()Landroid/text/method/MovementMethod;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 271
            getstatic android.text.method.LinkMovementMethod.sInstance:Landroid/text/method/LinkMovementMethod;
            ifnonnull 2
         1: .line 272
            new android.text.method.LinkMovementMethod
            dup
            invokespecial android.text.method.LinkMovementMethod.<init>:()V
            putstatic android.text.method.LinkMovementMethod.sInstance:Landroid/text/method/LinkMovementMethod;
         2: .line 274
      StackMap locals:
      StackMap stack:
            getstatic android.text.method.LinkMovementMethod.sInstance:Landroid/text/method/LinkMovementMethod;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "LinkMovementMethod.java"
InnerClasses:
  public Concrete = android.text.NoCopySpan$Concrete of android.text.NoCopySpan
  public TextLinkSpan = android.view.textclassifier.TextLinks$TextLinkSpan of android.view.textclassifier.TextLinks