public final class android.widget.SelectionActionModeHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.widget.SelectionActionModeHelper
  super_class: java.lang.Object
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SelectActionModeHelper"

  private final android.widget.Editor mEditor;
    descriptor: Landroid/widget/Editor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.widget.TextView mTextView;
    descriptor: Landroid/widget/TextView;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.widget.SelectionActionModeHelper$TextClassificationHelper mTextClassificationHelper;
    descriptor: Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.view.textclassifier.TextClassification mTextClassification;
    descriptor: Landroid/view/textclassifier/TextClassification;
    flags: (0x0002) ACC_PRIVATE

  private android.os.AsyncTask mTextClassificationAsyncTask;
    descriptor: Landroid/os/AsyncTask;
    flags: (0x0002) ACC_PRIVATE

  private final android.widget.SelectionActionModeHelper$SelectionTracker mSelectionTracker;
    descriptor: Landroid/widget/SelectionActionModeHelper$SelectionTracker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.widget.SmartSelectSprite mSmartSelectSprite;
    descriptor: Landroid/widget/SmartSelectSprite;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(android.widget.Editor);
    descriptor: (Landroid/widget/Editor;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.widget.Editor editor
         0: .line 84
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            aload 1 /* editor */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.widget.Editor
            putfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
         2: .line 86
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
            putfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
         3: .line 87
            aload 0 /* this */
            new android.widget.SelectionActionModeHelper$TextClassificationHelper
            dup
         4: .line 88
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
         5: .line 89
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/TextView;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/TextView.getTextClassifier()Landroid/view/textclassifier/TextClassifier; (5)
                  ()Landroid/view/textclassifier/TextClassifier;
         6: .line 90
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
         7: .line 91
            iconst_0
            iconst_1
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getTextLocales:()Landroid/os/LocaleList;
            invokespecial android.widget.SelectionActionModeHelper$TextClassificationHelper.<init>:(Landroid/content/Context;Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
         8: .line 87
            putfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
         9: .line 92
            aload 0 /* this */
            new android.widget.SelectionActionModeHelper$SelectionTracker
            dup
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokespecial android.widget.SelectionActionModeHelper$SelectionTracker.<init>:(Landroid/widget/TextView;)V
            putfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
        10: .line 94
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.getTextClassificationSettings:()Landroid/view/textclassifier/TextClassificationConstants;
            invokevirtual android.view.textclassifier.TextClassificationConstants.isSmartSelectionAnimationEnabled:()Z
            ifeq 15
        11: .line 95
            aload 0 /* this */
            new android.widget.SmartSelectSprite
            dup
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
        12: .line 96
            aload 1 /* editor */
            invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
            getfield android.widget.TextView.mHighlightColor:I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Landroid/widget/TextView;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  android/view/View.invalidate()V (5)
                  ()V
            invokespecial android.widget.SmartSelectSprite.<init>:(Landroid/content/Context;ILjava/lang/Runnable;)V
        13: .line 95
            putfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
        14: .line 97
            goto 16
        15: .line 98
      StackMap locals: android.widget.SelectionActionModeHelper android.widget.Editor
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
        16: .line 100
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.widget.Editor editor
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Landroid/widget/SelectionActionModeHelper;
            0   17     1  editor  Landroid/widget/Editor;
    MethodParameters:
        Name  Flags
      editor  

  public void startSelectionActionModeAsync(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // boolean adjustSelection
         0: .line 107
            iload 1 /* adjustSelection */
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.getTextClassificationSettings:()Landroid/view/textclassifier/TextClassificationConstants;
            invokevirtual android.view.textclassifier.TextClassificationConstants.isSmartSelectionEnabled:()Z
            iand
            istore 1 /* adjustSelection */
         1: .line 109
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
         2: .line 110
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
         3: .line 111
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
         4: .line 112
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
         5: .line 113
            iconst_0
         6: .line 109
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onOriginalSelection:(Ljava/lang/CharSequence;IIZ)V
         7: .line 114
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelAsyncTask:()V
         8: .line 115
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.skipTextClassification:()Z
            ifeq 11
         9: .line 116
            aload 0 /* this */
            aconst_null
            invokevirtual android.widget.SelectionActionModeHelper.startSelectionActionMode:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        10: .line 117
            goto 25
        11: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.resetTextClassificationHelper:()V
        12: .line 119
            aload 0 /* this */
        13: new android.widget.SelectionActionModeHelper$TextClassificationAsyncTask
            dup
        14: .line 120
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
        15: .line 121
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationHelper.getTimeoutDuration:()I
        16: .line 122
            iload 1 /* adjustSelection */
            ifeq 18
        17: .line 123
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.suggestSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
            goto 19
        18: .line 124
      StackMap locals: android.widget.SelectionActionModeHelper int
      StackMap stack: android.widget.SelectionActionModeHelper new 13 new 13 android.widget.TextView int
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.classifyText()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
        19: .line 125
      StackMap locals: android.widget.SelectionActionModeHelper int
      StackMap stack: android.widget.SelectionActionModeHelper new 13 new 13 android.widget.TextView int java.util.function.Supplier
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
            ifnull 21
        20: .line 126
            aload 0 /* this */
            invokedynamic accept(Landroid/widget/SelectionActionModeHelper;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  android/widget/SelectionActionModeHelper.startSelectionActionModeWithSmartSelectAnimation(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V (7)
                  (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
            goto 22
        21: .line 127
      StackMap locals: android.widget.SelectionActionModeHelper int
      StackMap stack: android.widget.SelectionActionModeHelper new 13 new 13 android.widget.TextView int java.util.function.Supplier
            aload 0 /* this */
            invokedynamic accept(Landroid/widget/SelectionActionModeHelper;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  android/widget/SelectionActionModeHelper.startSelectionActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V (7)
                  (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        22: .line 128
      StackMap locals: android.widget.SelectionActionModeHelper int
      StackMap stack: android.widget.SelectionActionModeHelper new 13 new 13 android.widget.TextView int java.util.function.Supplier java.util.function.Consumer
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.getOriginalSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
            invokespecial android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.<init>:(Landroid/widget/TextView;ILjava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;)V
            iconst_0
            anewarray java.lang.Void
        23: .line 129
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
        24: .line 119
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
        25: .line 131
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean adjustSelection
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Landroid/widget/SelectionActionModeHelper;
            0   26     1  adjustSelection  Z
    MethodParameters:
                 Name  Flags
      adjustSelection  

  public void startLinkActionModeAsync(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int start
        start local 2 // int end
         0: .line 137
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
            iload 1 /* start */
            iload 2 /* end */
            iconst_1
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onOriginalSelection:(Ljava/lang/CharSequence;IIZ)V
         1: .line 138
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelAsyncTask:()V
         2: .line 139
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.skipTextClassification:()Z
            ifeq 5
         3: .line 140
            aload 0 /* this */
            aconst_null
            invokevirtual android.widget.SelectionActionModeHelper.startLinkActionMode:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
         4: .line 141
            goto 14
         5: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.widget.SelectionActionModeHelper.resetTextClassificationHelper:(II)V
         6: .line 143
            aload 0 /* this */
            new android.widget.SelectionActionModeHelper$TextClassificationAsyncTask
            dup
         7: .line 144
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
         8: .line 145
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationHelper.getTimeoutDuration:()I
         9: .line 146
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.classifyText()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
        10: .line 147
            aload 0 /* this */
            invokedynamic accept(Landroid/widget/SelectionActionModeHelper;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  android/widget/SelectionActionModeHelper.startLinkActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V (7)
                  (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        11: .line 148
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.getOriginalSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
            invokespecial android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.<init>:(Landroid/widget/TextView;ILjava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;)V
            iconst_0
            anewarray java.lang.Void
        12: .line 149
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
        13: .line 143
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
        14: .line 151
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Landroid/widget/SelectionActionModeHelper;
            0   15     1  start  I
            0   15     2    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public void invalidateActionModeAsync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 154
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelAsyncTask:()V
         1: .line 155
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.skipTextClassification:()Z
            ifeq 4
         2: .line 156
            aload 0 /* this */
            aconst_null
            invokevirtual android.widget.SelectionActionModeHelper.invalidateActionMode:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
         3: .line 157
            goto 13
         4: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.resetTextClassificationHelper:()V
         5: .line 159
            aload 0 /* this */
            new android.widget.SelectionActionModeHelper$TextClassificationAsyncTask
            dup
         6: .line 160
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
         7: .line 161
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationHelper.getTimeoutDuration:()I
         8: .line 162
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.classifyText()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
         9: .line 163
            aload 0 /* this */
            invokedynamic accept(Landroid/widget/SelectionActionModeHelper;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  android/widget/SelectionActionModeHelper.invalidateActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V (7)
                  (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        10: .line 164
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper$TextClassificationHelper.getOriginalSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult; (5)
                  ()Landroid/widget/SelectionActionModeHelper$SelectionResult;
            invokespecial android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.<init>:(Landroid/widget/TextView;ILjava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;)V
            iconst_0
            anewarray java.lang.Void
        11: .line 165
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
        12: .line 159
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
        13: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/widget/SelectionActionModeHelper;

  public void onSelectionAction(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int menuItemId
         0: .line 170
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
         1: .line 171
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
         2: .line 172
            iload 1 /* menuItemId */
            invokestatic android.widget.SelectionActionModeHelper.getActionType:(I)I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         3: .line 170
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSelectionAction:(IIILandroid/view/textclassifier/TextClassification;)V
         4: .line 173
            return
        end local 1 // int menuItemId
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/widget/SelectionActionModeHelper;
            0    5     1  menuItemId  I
    MethodParameters:
            Name  Flags
      menuItemId  

  public void onSelectionDrag();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 176
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
         1: .line 177
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
         2: .line 178
            bipush 106
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         3: .line 176
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSelectionAction:(IIILandroid/view/textclassifier/TextClassification;)V
         4: .line 179
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/SelectionActionModeHelper;

  public void onTextChanged(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int start
        start local 2 // int end
         0: .line 182
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            iload 1 /* start */
            iload 2 /* end */
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onTextChanged:(IILandroid/view/textclassifier/TextClassification;)V
         1: .line 183
            return
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/widget/SelectionActionModeHelper;
            0    2     1  start  I
            0    2     2    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public boolean resetSelection(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int textIndex
         0: .line 186
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            iload 1 /* textIndex */
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.resetSelection:(ILandroid/widget/Editor;)Z
            ifeq 3
         1: .line 187
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.invalidateActionModeAsync:()V
         2: .line 188
            iconst_1
            ireturn
         3: .line 190
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int textIndex
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/widget/SelectionActionModeHelper;
            0    4     1  textIndex  I
    MethodParameters:
           Name  Flags
      textIndex  

  public android.view.textclassifier.TextClassification getTextClassification();
    descriptor: ()Landroid/view/textclassifier/TextClassification;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 195
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
            areturn
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/SelectionActionModeHelper;

  public void onDestroyActionMode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 199
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelSmartSelectAnimation:()V
         1: .line 200
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSelectionDestroyed:()V
         2: .line 201
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelAsyncTask:()V
         3: .line 202
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/SelectionActionModeHelper;

  public void onDraw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.graphics.Canvas canvas
         0: .line 205
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.isDrawingHighlight:()Z
            ifeq 2
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
            ifnull 2
         1: .line 206
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
            aload 1 /* canvas */
            invokevirtual android.widget.SmartSelectSprite.draw:(Landroid/graphics/Canvas;)V
         2: .line 208
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/widget/SelectionActionModeHelper;
            0    3     1  canvas  Landroid/graphics/Canvas;
    MethodParameters:
        Name  Flags
      canvas  final

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

  private android.view.textclassifier.TextClassificationConstants getTextClassificationSettings();
    descriptor: ()Landroid/view/textclassifier/TextClassificationConstants;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 215
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            invokestatic android.view.textclassifier.TextClassificationManager.getSettings:(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
            areturn
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/SelectionActionModeHelper;

  private void cancelAsyncTask();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 219
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
            ifnull 3
         1: .line 220
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
            iconst_1
            invokevirtual android.os.AsyncTask.cancel:(Z)Z
            pop
         2: .line 221
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
         3: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         4: .line 224
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/SelectionActionModeHelper;

  private boolean skipTextClassification();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 228
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.usesNoOpTextClassifier:()Z
            istore 1 /* noOpTextClassifier */
        start local 1 // boolean noOpTextClassifier
         1: .line 230
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* noSelection */
        start local 2 // boolean noSelection
         4: .line 232
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasPasswordTransformationMethod:()Z
            ifne 7
         5: .line 233
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getInputType:()I
            invokestatic android.widget.TextView.isPasswordInputType:(I)Z
            ifne 7
         6: .line 232
            iconst_0
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 3 /* password */
        start local 3 // boolean password
         9: .line 234
            iload 1 /* noOpTextClassifier */
            ifne 10
            iload 2 /* noSelection */
            ifne 10
            iload 3 /* password */
            ifne 10
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
        10: iconst_1
            ireturn
        end local 3 // boolean password
        end local 2 // boolean noSelection
        end local 1 // boolean noOpTextClassifier
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Landroid/widget/SelectionActionModeHelper;
            1   11     1  noOpTextClassifier  Z
            4   11     2         noSelection  Z
            9   11     3            password  Z

  private void startLinkActionMode(android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
         0: .line 238
            aload 0 /* this */
            iconst_2
            aload 1 /* result */
            invokevirtual android.widget.SelectionActionModeHelper.startActionMode:(ILandroid/widget/SelectionActionModeHelper$SelectionResult;)V
         1: .line 239
            return
        end local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/widget/SelectionActionModeHelper;
            0    2     1  result  Landroid/widget/SelectionActionModeHelper$SelectionResult;
    MethodParameters:
        Name  Flags
      result  

  private void startSelectionActionMode(android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
         0: .line 242
            aload 0 /* this */
            iconst_0
            aload 1 /* result */
            invokevirtual android.widget.SelectionActionModeHelper.startActionMode:(ILandroid/widget/SelectionActionModeHelper$SelectionResult;)V
         1: .line 243
            return
        end local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/widget/SelectionActionModeHelper;
            0    2     1  result  Landroid/widget/SelectionActionModeHelper$SelectionResult;
    MethodParameters:
        Name  Flags
      result  

  private void startActionMode(int, android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (ILandroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int actionMode
        start local 2 // android.widget.SelectionActionModeHelper$SelectionResult result
         0: .line 247
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
            astore 3 /* text */
        start local 3 // java.lang.CharSequence text
         1: .line 248
            aload 2 /* result */
            ifnull 8
            aload 3 /* text */
            instanceof android.text.Spannable
            ifeq 8
         2: .line 249
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextSelectable:()Z
            ifne 3
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifeq 8
         3: .line 251
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.getTextClassificationSettings:()Landroid/view/textclassifier/TextClassificationConstants;
            invokevirtual android.view.textclassifier.TextClassificationConstants.isModelDarkLaunchEnabled:()Z
            ifne 6
         4: .line 252
            aload 3 /* text */
            checkcast android.text.Spannable
            aload 2 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
            aload 2 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         5: .line 253
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.invalidate:()V
         6: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mClassification:Landroid/view/textclassifier/TextClassification;
            putfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         7: .line 256
            goto 12
      StackMap locals:
      StackMap stack:
         8: aload 2 /* result */
            ifnull 11
            iload 1 /* actionMode */
            iconst_2
            if_icmpne 11
         9: .line 257
            aload 0 /* this */
            aload 2 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mClassification:Landroid/view/textclassifier/TextClassification;
            putfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
        10: .line 258
            goto 12
        11: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
        12: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            iload 1 /* actionMode */
            invokevirtual android.widget.Editor.startActionModeInternal:(I)Z
            ifeq 23
        13: .line 262
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            astore 4 /* controller */
        start local 4 // android.widget.Editor$SelectionModifierCursorController controller
        14: .line 263
            aload 4 /* controller */
            ifnull 17
        15: .line 264
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextSelectable:()Z
            ifne 16
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifeq 17
        16: .line 265
      StackMap locals: android.widget.Editor$SelectionModifierCursorController
      StackMap stack:
            aload 4 /* controller */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.show:()V
        17: .line 267
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            ifnull 23
        18: .line 268
            iload 1 /* actionMode */
            tableswitch { // 0 - 2
                    0: 19
                    1: 23
                    2: 21
              default: 23
          }
        19: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            aload 2 /* result */
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSmartSelection:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        20: .line 271
            goto 23
        21: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
            aload 2 /* result */
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onLinkSelected:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        22: .line 274
            goto 23
        end local 4 // android.widget.Editor$SelectionModifierCursorController controller
        23: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            iconst_0
            invokevirtual android.widget.Editor.setRestartActionModeOnNextRefresh:(Z)V
        24: .line 281
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
        25: .line 282
            return
        end local 3 // java.lang.CharSequence text
        end local 2 // android.widget.SelectionActionModeHelper$SelectionResult result
        end local 1 // int actionMode
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Landroid/widget/SelectionActionModeHelper;
            0   26     1  actionMode  I
            0   26     2      result  Landroid/widget/SelectionActionModeHelper$SelectionResult;
            1   26     3        text  Ljava/lang/CharSequence;
           14   23     4  controller  Landroid/widget/Editor$SelectionModifierCursorController;
    RuntimeInvisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        android.widget.Editor$TextActionMode()
    RuntimeInvisibleParameterAnnotations: 
      0:
        android.widget.Editor$TextActionMode()
      1:
    MethodParameters:
            Name  Flags
      actionMode  
      result      

  private void startSelectionActionModeWithSmartSelectAnimation(android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
         0: .line 286
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 2 /* layout */
        start local 2 // android.text.Layout layout
         1: .line 288
            aload 0 /* this */
            aload 1 /* result */
            invokedynamic run(Landroid/widget/SelectionActionModeHelper;Landroid/widget/SelectionActionModeHelper$SelectionResult;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  android/widget/SelectionActionModeHelper.lambda$13(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V (7)
                  ()V
            astore 3 /* onAnimationEndCallback */
        start local 3 // java.lang.Runnable onAnimationEndCallback
         2: .line 300
            aload 1 /* result */
            ifnull 5
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            aload 1 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
            if_icmpne 4
         3: .line 301
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            aload 1 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
            if_icmpeq 5
         4: .line 299
      StackMap locals: android.text.Layout java.lang.Runnable
      StackMap stack:
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* didSelectionChange */
        start local 4 // boolean didSelectionChange
         7: .line 303
            iload 4 /* didSelectionChange */
            ifne 10
         8: .line 304
            aload 3 /* onAnimationEndCallback */
            invokeinterface java.lang.Runnable.run:()V
         9: .line 305
            return
        10: .line 309
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* layout */
            aload 1 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
            aload 1 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
            invokevirtual android.widget.SelectionActionModeHelper.convertSelectionToRectangles:(Landroid/text/Layout;II)Ljava/util/List;
        11: .line 308
            astore 5 /* selectionRectangles */
        start local 5 // java.util.List selectionRectangles
        12: .line 311
            new android.graphics.PointF
            dup
        13: .line 312
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getLastUpPositionX:()F
        14: .line 313
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getLastUpPositionY:()F
        15: .line 311
            invokespecial android.graphics.PointF.<init>:(FF)V
            astore 6 /* touchPoint */
        start local 6 // android.graphics.PointF touchPoint
        16: .line 316
            aload 6 /* touchPoint */
            aload 5 /* selectionRectangles */
        17: .line 317
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  android/widget/SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle()Landroid/graphics/RectF; (5)
                  (Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;)Landroid/graphics/RectF;
        18: .line 316
            invokestatic android.widget.SelectionActionModeHelper.movePointInsideNearestRectangle:(Landroid/graphics/PointF;Ljava/util/List;Ljava/util/function/Function;)Landroid/graphics/PointF;
        19: .line 315
            astore 7 /* animationStartPoint */
        start local 7 // android.graphics.PointF animationStartPoint
        20: .line 319
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
        21: .line 320
            aload 7 /* animationStartPoint */
        22: .line 321
            aload 5 /* selectionRectangles */
        23: .line 322
            aload 3 /* onAnimationEndCallback */
        24: .line 319
            invokevirtual android.widget.SmartSelectSprite.startAnimation:(Landroid/graphics/PointF;Ljava/util/List;Ljava/lang/Runnable;)V
        25: .line 323
            return
        end local 7 // android.graphics.PointF animationStartPoint
        end local 6 // android.graphics.PointF touchPoint
        end local 5 // java.util.List selectionRectangles
        end local 4 // boolean didSelectionChange
        end local 3 // java.lang.Runnable onAnimationEndCallback
        end local 2 // android.text.Layout layout
        end local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   26     0                    this  Landroid/widget/SelectionActionModeHelper;
            0   26     1                  result  Landroid/widget/SelectionActionModeHelper$SelectionResult;
            1   26     2                  layout  Landroid/text/Layout;
            2   26     3  onAnimationEndCallback  Ljava/lang/Runnable;
            7   26     4      didSelectionChange  Z
           12   26     5     selectionRectangles  Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;
           16   26     6              touchPoint  Landroid/graphics/PointF;
           20   26     7     animationStartPoint  Landroid/graphics/PointF;
    MethodParameters:
        Name  Flags
      result  

  private java.util.List<android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout> convertSelectionToRectangles(android.text.Layout, int, int);
    descriptor: (Landroid/text/Layout;II)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.text.Layout layout
        start local 2 // int start
        start local 3 // int end
         0: .line 327
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* result */
        start local 4 // java.util.List result
         1: .line 330
            aload 4 /* result */
            invokedynamic accept(Ljava/util/List;)Landroid/text/Layout$SelectionRectangleConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (FFFFI)V
                  android/widget/SelectionActionModeHelper.lambda$15(Ljava/util/List;FFFFI)V (6)
                  (FFFFI)V
         2: .line 329
            astore 5 /* consumer */
        start local 5 // android.text.Layout$SelectionRectangleConsumer consumer
         3: .line 338
            aload 1 /* layout */
            iload 2 /* start */
            iload 3 /* end */
            aload 5 /* consumer */
            invokevirtual android.text.Layout.getSelection:(IILandroid/text/Layout$SelectionRectangleConsumer;)V
         4: .line 340
            aload 4 /* result */
         5: .line 341
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  android/widget/SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle()Landroid/graphics/RectF; (5)
                  (Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;)Landroid/graphics/RectF;
         6: .line 342
            getstatic android.widget.SmartSelectSprite.RECTANGLE_COMPARATOR:Ljava/util/Comparator;
         7: .line 340
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         8: .line 344
            aload 4 /* result */
            areturn
        end local 5 // android.text.Layout$SelectionRectangleConsumer consumer
        end local 4 // java.util.List result
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/widget/SelectionActionModeHelper;
            0    9     1    layout  Landroid/text/Layout;
            0    9     2     start  I
            0    9     3       end  I
            1    9     4    result  Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;
            3    9     5  consumer  Landroid/text/Layout$SelectionRectangleConsumer;
    Signature: (Landroid/text/Layout;II)Ljava/util/List<Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;>;
    MethodParameters:
        Name  Flags
      layout  final
      start   final
      end     final

  public static <T> void mergeRectangleIntoList(java.util.List<T>, android.graphics.RectF, java.util.function.Function<T, android.graphics.RectF>, java.util.function.Function<android.graphics.RectF, T>);
    descriptor: (Ljava/util/List;Landroid/graphics/RectF;Ljava/util/function/Function;Ljava/util/function/Function;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // java.util.List list
        start local 1 // android.graphics.RectF candidate
        start local 2 // java.util.function.Function extractor
        start local 3 // java.util.function.Function packer
         0: .line 370
            aload 1 /* candidate */
            invokevirtual android.graphics.RectF.isEmpty:()Z
            ifeq 2
         1: .line 371
            return
         2: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            invokeinterface java.util.List.size:()I
            istore 4 /* elementCount */
        start local 4 // int elementCount
         3: .line 375
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         4: goto 27
         5: .line 376
      StackMap locals: int int
      StackMap stack:
            aload 2 /* extractor */
            aload 0 /* list */
            iload 5 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.graphics.RectF
            astore 6 /* existingRectangle */
        start local 6 // android.graphics.RectF existingRectangle
         6: .line 377
            aload 6 /* existingRectangle */
            aload 1 /* candidate */
            invokevirtual android.graphics.RectF.contains:(Landroid/graphics/RectF;)Z
            ifeq 8
         7: .line 378
            return
         8: .line 380
      StackMap locals: android.graphics.RectF
      StackMap stack:
            aload 1 /* candidate */
            aload 6 /* existingRectangle */
            invokevirtual android.graphics.RectF.contains:(Landroid/graphics/RectF;)Z
            ifeq 11
         9: .line 381
            aload 6 /* existingRectangle */
            invokevirtual android.graphics.RectF.setEmpty:()V
        10: .line 382
            goto 26
        11: .line 385
      StackMap locals:
      StackMap stack:
            aload 1 /* candidate */
            getfield android.graphics.RectF.left:F
            aload 6 /* existingRectangle */
            getfield android.graphics.RectF.right:F
            fcmpl
            ifeq 14
        12: .line 386
            aload 1 /* candidate */
            getfield android.graphics.RectF.right:F
            aload 6 /* existingRectangle */
            getfield android.graphics.RectF.left:F
            fcmpl
            ifeq 14
        13: .line 385
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 7 /* rectanglesContinueEachOther */
        start local 7 // boolean rectanglesContinueEachOther
        16: .line 387
            aload 1 /* candidate */
            getfield android.graphics.RectF.top:F
            aload 6 /* existingRectangle */
            getfield android.graphics.RectF.top:F
            fcmpl
            ifne 21
        17: .line 388
            aload 1 /* candidate */
            getfield android.graphics.RectF.bottom:F
            aload 6 /* existingRectangle */
            getfield android.graphics.RectF.bottom:F
            fcmpl
            ifne 21
        18: .line 389
            aload 1 /* candidate */
            aload 6 /* existingRectangle */
            invokestatic android.graphics.RectF.intersects:(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z
            ifne 20
        19: .line 390
            iload 7 /* rectanglesContinueEachOther */
            ifeq 21
        20: .line 387
      StackMap locals: int
      StackMap stack:
            iconst_1
            goto 22
      StackMap locals:
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 8 /* canMerge */
        start local 8 // boolean canMerge
        23: .line 392
            iload 8 /* canMerge */
            ifeq 26
        24: .line 393
            aload 1 /* candidate */
            aload 6 /* existingRectangle */
            invokevirtual android.graphics.RectF.union:(Landroid/graphics/RectF;)V
        25: .line 394
            aload 6 /* existingRectangle */
            invokevirtual android.graphics.RectF.setEmpty:()V
        end local 8 // boolean canMerge
        end local 7 // boolean rectanglesContinueEachOther
        end local 6 // android.graphics.RectF existingRectangle
        26: .line 375
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
      StackMap locals:
      StackMap stack:
        27: iload 5 /* index */
            iload 4 /* elementCount */
            if_icmplt 5
        end local 5 // int index
        28: .line 398
            iload 4 /* elementCount */
            iconst_1
            isub
            istore 5 /* index */
        start local 5 // int index
        29: goto 34
        30: .line 399
      StackMap locals:
      StackMap stack:
            aload 2 /* extractor */
            aload 0 /* list */
            iload 5 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.graphics.RectF
            astore 6 /* rectangle */
        start local 6 // android.graphics.RectF rectangle
        31: .line 400
            aload 6 /* rectangle */
            invokevirtual android.graphics.RectF.isEmpty:()Z
            ifeq 33
        32: .line 401
            aload 0 /* list */
            iload 5 /* index */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        end local 6 // android.graphics.RectF rectangle
        33: .line 398
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ -1
      StackMap locals:
      StackMap stack:
        34: iload 5 /* index */
            ifge 30
        end local 5 // int index
        35: .line 405
            aload 0 /* list */
            aload 3 /* packer */
            aload 1 /* candidate */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 406
            return
        end local 4 // int elementCount
        end local 3 // java.util.function.Function packer
        end local 2 // java.util.function.Function extractor
        end local 1 // android.graphics.RectF candidate
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   37     0                         list  Ljava/util/List<TT;>;
            0   37     1                    candidate  Landroid/graphics/RectF;
            0   37     2                    extractor  Ljava/util/function/Function<TT;Landroid/graphics/RectF;>;
            0   37     3                       packer  Ljava/util/function/Function<Landroid/graphics/RectF;TT;>;
            3   37     4                 elementCount  I
            4   28     5                        index  I
            6   26     6            existingRectangle  Landroid/graphics/RectF;
           16   26     7  rectanglesContinueEachOther  Z
           23   26     8                     canMerge  Z
           29   35     5                        index  I
           31   33     6                    rectangle  Landroid/graphics/RectF;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<TT;>;Landroid/graphics/RectF;Ljava/util/function/Function<TT;Landroid/graphics/RectF;>;Ljava/util/function/Function<Landroid/graphics/RectF;TT;>;)V
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
           Name  Flags
      list       final
      candidate  final
      extractor  final
      packer     final

  public static <T> android.graphics.PointF movePointInsideNearestRectangle(android.graphics.PointF, java.util.List<T>, java.util.function.Function<T, android.graphics.RectF>);
    descriptor: (Landroid/graphics/PointF;Ljava/util/List;Ljava/util/function/Function;)Landroid/graphics/PointF;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // android.graphics.PointF point
        start local 1 // java.util.List list
        start local 2 // java.util.function.Function extractor
         0: .line 413
            ldc -1.0
            fstore 3 /* bestX */
        start local 3 // float bestX
         1: .line 414
            ldc -1.0
            fstore 4 /* bestY */
        start local 4 // float bestY
         2: .line 415
            ldc 1.7976931348623157E308
            dstore 5 /* bestDistance */
        start local 5 // double bestDistance
         3: .line 417
            aload 1 /* list */
            invokeinterface java.util.List.size:()I
            istore 7 /* elementCount */
        start local 7 // int elementCount
         4: .line 418
            iconst_0
            istore 8 /* index */
        start local 8 // int index
         5: goto 23
         6: .line 419
      StackMap locals: android.graphics.PointF java.util.List java.util.function.Function float float double int int
      StackMap stack:
            aload 2 /* extractor */
            aload 1 /* list */
            iload 8 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.graphics.RectF
            astore 9 /* rectangle */
        start local 9 // android.graphics.RectF rectangle
         7: .line 420
            aload 9 /* rectangle */
            invokevirtual android.graphics.RectF.centerY:()F
            fstore 10 /* candidateY */
        start local 10 // float candidateY
         8: .line 423
            aload 0 /* point */
            getfield android.graphics.PointF.x:F
            aload 9 /* rectangle */
            getfield android.graphics.RectF.right:F
            fcmpl
            ifle 11
         9: .line 424
            aload 9 /* rectangle */
            getfield android.graphics.RectF.right:F
            fstore 11 /* candidateX */
        start local 11 // float candidateX
        10: .line 425
            goto 15
        end local 11 // float candidateX
      StackMap locals: android.graphics.RectF float
      StackMap stack:
        11: aload 0 /* point */
            getfield android.graphics.PointF.x:F
            aload 9 /* rectangle */
            getfield android.graphics.RectF.left:F
            fcmpg
            ifge 14
        12: .line 426
            aload 9 /* rectangle */
            getfield android.graphics.RectF.left:F
            fstore 11 /* candidateX */
        start local 11 // float candidateX
        13: .line 427
            goto 15
        end local 11 // float candidateX
        14: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* point */
            getfield android.graphics.PointF.x:F
            fstore 11 /* candidateX */
        start local 11 // float candidateX
        15: .line 431
      StackMap locals: float
      StackMap stack:
            aload 0 /* point */
            getfield android.graphics.PointF.x:F
            fload 11 /* candidateX */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
        16: .line 432
            aload 0 /* point */
            getfield android.graphics.PointF.y:F
            fload 10 /* candidateY */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
        17: .line 431
            dadd
            dstore 12 /* candidateDistance */
        start local 12 // double candidateDistance
        18: .line 434
            dload 12 /* candidateDistance */
            dload 5 /* bestDistance */
            dcmpg
            ifge 22
        19: .line 435
            fload 11 /* candidateX */
            fstore 3 /* bestX */
        20: .line 436
            fload 10 /* candidateY */
            fstore 4 /* bestY */
        21: .line 437
            dload 12 /* candidateDistance */
            dstore 5 /* bestDistance */
        end local 12 // double candidateDistance
        end local 11 // float candidateX
        end local 10 // float candidateY
        end local 9 // android.graphics.RectF rectangle
        22: .line 418
      StackMap locals:
      StackMap stack:
            iinc 8 /* index */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* index */
            iload 7 /* elementCount */
            if_icmplt 6
        end local 8 // int index
        24: .line 441
            new android.graphics.PointF
            dup
            fload 3 /* bestX */
            fload 4 /* bestY */
            invokespecial android.graphics.PointF.<init>:(FF)V
            areturn
        end local 7 // int elementCount
        end local 5 // double bestDistance
        end local 4 // float bestY
        end local 3 // float bestX
        end local 2 // java.util.function.Function extractor
        end local 1 // java.util.List list
        end local 0 // android.graphics.PointF point
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0              point  Landroid/graphics/PointF;
            0   25     1               list  Ljava/util/List<TT;>;
            0   25     2          extractor  Ljava/util/function/Function<TT;Landroid/graphics/RectF;>;
            1   25     3              bestX  F
            2   25     4              bestY  F
            3   25     5       bestDistance  D
            4   25     7       elementCount  I
            5   24     8              index  I
            7   22     9          rectangle  Landroid/graphics/RectF;
            8   22    10         candidateY  F
           10   11    11         candidateX  F
           13   14    11         candidateX  F
           15   22    11         candidateX  F
           18   22    12  candidateDistance  D
    Signature: <T:Ljava/lang/Object;>(Landroid/graphics/PointF;Ljava/util/List<TT;>;Ljava/util/function/Function<TT;Landroid/graphics/RectF;>;)Landroid/graphics/PointF;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
           Name  Flags
      point      final
      list       final
      extractor  final

  private void invalidateActionMode(android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
         0: .line 445
            aload 0 /* this */
            invokevirtual android.widget.SelectionActionModeHelper.cancelSmartSelectAnimation:()V
         1: .line 446
            aload 0 /* this */
            aload 1 /* result */
            ifnull 2
            aload 1 /* result */
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mClassification:Landroid/view/textclassifier/TextClassification;
            goto 3
      StackMap locals:
      StackMap stack: android.widget.SelectionActionModeHelper
         2: aconst_null
      StackMap locals: android.widget.SelectionActionModeHelper android.widget.SelectionActionModeHelper$SelectionResult
      StackMap stack: android.widget.SelectionActionModeHelper android.view.textclassifier.TextClassification
         3: putfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         4: .line 447
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mEditor:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getTextActionMode:()Landroid/view/ActionMode;
            astore 2 /* actionMode */
        start local 2 // android.view.ActionMode actionMode
         5: .line 448
            aload 2 /* actionMode */
            ifnull 7
         6: .line 449
            aload 2 /* actionMode */
            invokevirtual android.view.ActionMode.invalidate:()V
         7: .line 451
      StackMap locals: android.view.ActionMode
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSelectionTracker:Landroid/widget/SelectionActionModeHelper$SelectionTracker;
         8: .line 452
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassification:Landroid/view/textclassifier/TextClassification;
         9: .line 451
            invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSelectionUpdated:(IILandroid/view/textclassifier/TextClassification;)V
        10: .line 453
            aload 0 /* this */
            aconst_null
            putfield android.widget.SelectionActionModeHelper.mTextClassificationAsyncTask:Landroid/os/AsyncTask;
        11: .line 454
            return
        end local 2 // android.view.ActionMode actionMode
        end local 1 // android.widget.SelectionActionModeHelper$SelectionResult result
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Landroid/widget/SelectionActionModeHelper;
            0   12     1      result  Landroid/widget/SelectionActionModeHelper$SelectionResult;
            5   12     2  actionMode  Landroid/view/ActionMode;
    MethodParameters:
        Name  Flags
      result  

  private void resetTextClassificationHelper(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // android.widget.SelectionActionModeHelper this
        start local 1 // int selectionStart
        start local 2 // int selectionEnd
         0: .line 457
            iload 1 /* selectionStart */
            iflt 1
            iload 2 /* selectionEnd */
            ifge 3
         1: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 1 /* selectionStart */
         2: .line 460
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 2 /* selectionEnd */
         3: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextClassificationHelper:Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
         4: .line 463
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Landroid/widget/TextView;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/widget/TextView.getTextClassifier()Landroid/view/textclassifier/TextClassifier; (5)
                  ()Landroid/view/textclassifier/TextClassifier;
         5: .line 464
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
         6: .line 465
            iload 1 /* selectionStart */
            iload 2 /* selectionEnd */
         7: .line 466
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getTextLocales:()Landroid/os/LocaleList;
         8: .line 462
            invokevirtual android.widget.SelectionActionModeHelper$TextClassificationHelper.init:(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
         9: .line 467
            return
        end local 2 // int selectionEnd
        end local 1 // int selectionStart
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Landroid/widget/SelectionActionModeHelper;
            0   10     1  selectionStart  I
            0   10     2    selectionEnd  I
    MethodParameters:
                Name  Flags
      selectionStart  
      selectionEnd    

  private void resetTextClassificationHelper();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 470
            aload 0 /* this */
            iconst_m1
            iconst_m1
            invokevirtual android.widget.SelectionActionModeHelper.resetTextClassificationHelper:(II)V
         1: .line 471
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/SelectionActionModeHelper;

  private void cancelSmartSelectAnimation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 474
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
            ifnull 2
         1: .line 475
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mSmartSelectSprite:Landroid/widget/SmartSelectSprite;
            invokevirtual android.widget.SmartSelectSprite.cancelAnimation:()V
         2: .line 477
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/SelectionActionModeHelper;

  private static int getActionType(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 1103
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n\tcase expressions must be constant expressions\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
            Name  Flags
      menuItemId  

  private static java.lang.CharSequence getText(android.widget.TextView);
    descriptor: (Landroid/widget/TextView;)Ljava/lang/CharSequence;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.widget.TextView textView
         0: .line 1124
            aload 0 /* textView */
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 1 /* text */
        start local 1 // java.lang.CharSequence text
         1: .line 1125
            aload 1 /* text */
            ifnull 3
         2: .line 1126
            aload 1 /* text */
            areturn
         3: .line 1128
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            ldc ""
            areturn
        end local 1 // java.lang.CharSequence text
        end local 0 // android.widget.TextView textView
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  textView  Landroid/widget/TextView;
            1    4     1      text  Ljava/lang/CharSequence;
    MethodParameters:
          Name  Flags
      textView  

  private void lambda$13(android.widget.SelectionActionModeHelper$SelectionResult);
    descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.SelectionActionModeHelper this
         0: .line 290
            aload 1
            ifnull 4
            aload 1
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
            iflt 4
            aload 1
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
            aload 0 /* this */
            getfield android.widget.SelectionActionModeHelper.mTextView:Landroid/widget/TextView;
            invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpgt 4
         1: .line 291
            aload 1
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
            aload 1
            getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
            if_icmpgt 4
         2: .line 292
            aload 1
            astore 2 /* startSelectionResult */
        start local 2 // android.widget.SelectionActionModeHelper$SelectionResult startSelectionResult
         3: .line 293
            goto 5
        end local 2 // android.widget.SelectionActionModeHelper$SelectionResult startSelectionResult
         4: .line 294
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* startSelectionResult */
        start local 2 // android.widget.SelectionActionModeHelper$SelectionResult startSelectionResult
         5: .line 296
      StackMap locals: android.widget.SelectionActionModeHelper$SelectionResult
      StackMap stack:
            aload 0 /* this */
            aload 2 /* startSelectionResult */
            invokevirtual android.widget.SelectionActionModeHelper.startSelectionActionMode:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
        end local 2 // android.widget.SelectionActionModeHelper$SelectionResult startSelectionResult
         6: .line 297
            return
        end local 0 // android.widget.SelectionActionModeHelper this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Landroid/widget/SelectionActionModeHelper;
            3    4     2  startSelectionResult  Landroid/widget/SelectionActionModeHelper$SelectionResult;
            5    6     2  startSelectionResult  Landroid/widget/SelectionActionModeHelper$SelectionResult;

  private static void lambda$15(java.util.List, float, float, float, float, int);
    descriptor: (Ljava/util/List;FFFFI)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=6, args_size=6
        start local 1 // float left
        start local 2 // float top
        start local 3 // float right
        start local 4 // float bottom
        start local 5 // int textSelectionLayout
         0: .line 331
            aload 0
         1: .line 332
            new android.graphics.RectF
            dup
            fload 1 /* left */
            fload 2 /* top */
            fload 3 /* right */
            fload 4 /* bottom */
            invokespecial android.graphics.RectF.<init>:(FFFF)V
         2: .line 333
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  android/widget/SmartSelectSprite$RectangleWithTextSelectionLayout.getRectangle()Landroid/graphics/RectF; (5)
                  (Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;)Landroid/graphics/RectF;
         3: .line 334
            iload 5 /* textSelectionLayout */
            invokedynamic apply(I)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  android/widget/SelectionActionModeHelper.lambda$17(ILandroid/graphics/RectF;)Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout; (6)
                  (Landroid/graphics/RectF;)Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
         4: .line 330
            invokestatic android.widget.SelectionActionModeHelper.mergeRectangleIntoList:(Ljava/util/List;Landroid/graphics/RectF;Ljava/util/function/Function;Ljava/util/function/Function;)V
         5: .line 336
            return
        end local 5 // int textSelectionLayout
        end local 4 // float bottom
        end local 3 // float right
        end local 2 // float top
        end local 1 // float left
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     1                 left  F
            0    6     2                  top  F
            0    6     3                right  F
            0    6     4               bottom  F
            0    6     5  textSelectionLayout  I

  private static android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout lambda$17(int, android.graphics.RectF);
    descriptor: (ILandroid/graphics/RectF;)Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // android.graphics.RectF r
         0: .line 334
            new android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout
            dup
            aload 1 /* r */
         1: .line 335
            iload 0
         2: .line 334
            invokespecial android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout.<init>:(Landroid/graphics/RectF;I)V
         3: .line 335
            areturn
        end local 1 // android.graphics.RectF r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     r  Landroid/graphics/RectF;
}
SourceFile: "SelectionActionModeHelper.java"
NestMembers:
  android.widget.SelectionActionModeHelper$SelectionMetricsLogger  android.widget.SelectionActionModeHelper$SelectionResult  android.widget.SelectionActionModeHelper$SelectionTracker  android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable  android.widget.SelectionActionModeHelper$TextClassificationAsyncTask  android.widget.SelectionActionModeHelper$TextClassificationHelper
InnerClasses:
  public abstract SelectionRectangleConsumer = android.text.Layout$SelectionRectangleConsumer of android.text.Layout
  SelectionModifierCursorController = android.widget.Editor$SelectionModifierCursorController of android.widget.Editor
  abstract TextActionMode = android.widget.Editor$TextActionMode of android.widget.Editor
  private final SelectionMetricsLogger = android.widget.SelectionActionModeHelper$SelectionMetricsLogger of android.widget.SelectionActionModeHelper
  private final SelectionResult = android.widget.SelectionActionModeHelper$SelectionResult of android.widget.SelectionActionModeHelper
  private final SelectionTracker = android.widget.SelectionActionModeHelper$SelectionTracker of android.widget.SelectionActionModeHelper
  private final TextClassificationAsyncTask = android.widget.SelectionActionModeHelper$TextClassificationAsyncTask of android.widget.SelectionActionModeHelper
  private final TextClassificationHelper = android.widget.SelectionActionModeHelper$TextClassificationHelper of android.widget.SelectionActionModeHelper
  final RectangleWithTextSelectionLayout = android.widget.SmartSelectSprite$RectangleWithTextSelectionLayout of android.widget.SmartSelectSprite
  public final Visibility = com.android.internal.annotations.VisibleForTesting$Visibility of com.android.internal.annotations.VisibleForTesting
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PACKAGE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)