class android.widget.Editor$SuggestionHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.widget.Editor$SuggestionHelper
  super_class: java.lang.Object
{
  private final java.util.Comparator<android.text.style.SuggestionSpan> mSuggestionSpanComparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<Landroid/text/style/SuggestionSpan;>;

  private final java.util.HashMap<android.text.style.SuggestionSpan, java.lang.Integer> mSpansLengths;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Landroid/text/style/SuggestionSpan;Ljava/lang/Integer;>;

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

  private void <init>(android.widget.Editor);
    descriptor: (Landroid/widget/Editor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.widget.Editor$SuggestionHelper this
         0: .line 3401
            aload 0 /* this */
            aload 1
            putfield android.widget.Editor$SuggestionHelper.this$0:Landroid/widget/Editor;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 3402
            aload 0 /* this */
         2: .line 3403
            new android.widget.Editor$SuggestionHelper$SuggestionSpanComparator
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$SuggestionHelper$SuggestionSpanComparator.<init>:(Landroid/widget/Editor$SuggestionHelper;)V
            putfield android.widget.Editor$SuggestionHelper.mSuggestionSpanComparator:Ljava/util/Comparator;
         3: .line 3404
            aload 0 /* this */
         4: .line 3405
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.widget.Editor$SuggestionHelper.mSpansLengths:Ljava/util/HashMap;
         5: .line 3401
            return
        end local 0 // android.widget.Editor$SuggestionHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/Editor$SuggestionHelper;
    MethodParameters:
        Name  Flags
      this$0  final

  private android.text.style.SuggestionSpan[] getSortedSuggestionSpans();
    descriptor: ()[Landroid/text/style/SuggestionSpan;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // android.widget.Editor$SuggestionHelper this
         0: .line 3432
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 1 /* pos */
        start local 1 // int pos
         1: .line 3433
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            astore 2 /* spannable */
        start local 2 // android.text.Spannable spannable
         2: .line 3434
            aload 2 /* spannable */
            iload 1 /* pos */
            iload 1 /* pos */
            ldc Landroid/text/style/SuggestionSpan;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 3 /* suggestionSpans */
        start local 3 // android.text.style.SuggestionSpan[] suggestionSpans
         3: .line 3436
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.mSpansLengths:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         4: .line 3437
            aload 3 /* suggestionSpans */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: android.widget.Editor$SuggestionHelper int android.text.Spannable android.text.style.SuggestionSpan[] top int int android.text.style.SuggestionSpan[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* suggestionSpan */
        start local 4 // android.text.style.SuggestionSpan suggestionSpan
         6: .line 3438
            aload 2 /* spannable */
            aload 4 /* suggestionSpan */
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            istore 8 /* start */
        start local 8 // int start
         7: .line 3439
            aload 2 /* spannable */
            aload 4 /* suggestionSpan */
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
            istore 9 /* end */
        start local 9 // int end
         8: .line 3440
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.mSpansLengths:Ljava/util/HashMap;
            aload 4 /* suggestionSpan */
            iload 9 /* end */
            iload 8 /* start */
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // int end
        end local 8 // int start
        end local 4 // android.text.style.SuggestionSpan suggestionSpan
         9: .line 3437
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 5
        11: .line 3445
            aload 3 /* suggestionSpans */
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.mSuggestionSpanComparator:Ljava/util/Comparator;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        12: .line 3446
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.mSpansLengths:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
        13: .line 3448
            aload 3 /* suggestionSpans */
            areturn
        end local 3 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 2 // android.text.Spannable spannable
        end local 1 // int pos
        end local 0 // android.widget.Editor$SuggestionHelper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Landroid/widget/Editor$SuggestionHelper;
            1   14     1              pos  I
            2   14     2        spannable  Landroid/text/Spannable;
            3   14     3  suggestionSpans  [Landroid/text/style/SuggestionSpan;
            6    9     4   suggestionSpan  Landroid/text/style/SuggestionSpan;
            7    9     8            start  I
            8    9     9              end  I

  public int getSuggestionInfo(android.widget.Editor$SuggestionInfo[], android.widget.Editor$SuggestionSpanInfo);
    descriptor: ([Landroid/widget/Editor$SuggestionInfo;Landroid/widget/Editor$SuggestionSpanInfo;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=21, args_size=3
        start local 0 // android.widget.Editor$SuggestionHelper this
        start local 1 // android.widget.Editor$SuggestionInfo[] suggestionInfos
        start local 2 // android.widget.Editor$SuggestionSpanInfo misspelledSpanInfo
         0: .line 3461
            aload 0 /* this */
            getfield android.widget.Editor$SuggestionHelper.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            astore 3 /* spannable */
        start local 3 // android.text.Spannable spannable
         1: .line 3462
            aload 0 /* this */
            invokevirtual android.widget.Editor$SuggestionHelper.getSortedSuggestionSpans:()[Landroid/text/style/SuggestionSpan;
            astore 4 /* suggestionSpans */
        start local 4 // android.text.style.SuggestionSpan[] suggestionSpans
         2: .line 3463
            aload 4 /* suggestionSpans */
            arraylength
            istore 5 /* nbSpans */
        start local 5 // int nbSpans
         3: .line 3464
            iload 5 /* nbSpans */
            ifne 4
            iconst_0
            ireturn
         4: .line 3466
      StackMap locals: android.text.Spannable android.text.style.SuggestionSpan[] int
      StackMap stack:
            iconst_0
            istore 6 /* numberOfSuggestions */
        start local 6 // int numberOfSuggestions
         5: .line 3467
            aload 4 /* suggestionSpans */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 43
      StackMap locals: android.widget.Editor$SuggestionHelper android.widget.Editor$SuggestionInfo[] android.widget.Editor$SuggestionSpanInfo android.text.Spannable android.text.style.SuggestionSpan[] int int top int int android.text.style.SuggestionSpan[]
      StackMap stack:
         6: aload 10
            iload 8
            aaload
            astore 7 /* suggestionSpan */
        start local 7 // android.text.style.SuggestionSpan suggestionSpan
         7: .line 3468
            aload 3 /* spannable */
            aload 7 /* suggestionSpan */
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            istore 11 /* spanStart */
        start local 11 // int spanStart
         8: .line 3469
            aload 3 /* spannable */
            aload 7 /* suggestionSpan */
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
            istore 12 /* spanEnd */
        start local 12 // int spanEnd
         9: .line 3471
            aload 2 /* misspelledSpanInfo */
            ifnull 14
        10: .line 3472
            aload 7 /* suggestionSpan */
            invokevirtual android.text.style.SuggestionSpan.getFlags:()I
            iconst_2
            iand
            ifeq 14
        11: .line 3473
            aload 2 /* misspelledSpanInfo */
            aload 7 /* suggestionSpan */
            putfield android.widget.Editor$SuggestionSpanInfo.mSuggestionSpan:Landroid/text/style/SuggestionSpan;
        12: .line 3474
            aload 2 /* misspelledSpanInfo */
            iload 11 /* spanStart */
            putfield android.widget.Editor$SuggestionSpanInfo.mSpanStart:I
        13: .line 3475
            aload 2 /* misspelledSpanInfo */
            iload 12 /* spanEnd */
            putfield android.widget.Editor$SuggestionSpanInfo.mSpanEnd:I
        14: .line 3478
      StackMap locals: android.widget.Editor$SuggestionHelper android.widget.Editor$SuggestionInfo[] android.widget.Editor$SuggestionSpanInfo android.text.Spannable android.text.style.SuggestionSpan[] int int android.text.style.SuggestionSpan int int android.text.style.SuggestionSpan[] int int
      StackMap stack:
            aload 7 /* suggestionSpan */
            invokevirtual android.text.style.SuggestionSpan.getSuggestions:()[Ljava/lang/String;
            astore 13 /* suggestions */
        start local 13 // java.lang.String[] suggestions
        15: .line 3479
            aload 13 /* suggestions */
            arraylength
            istore 14 /* nbSuggestions */
        start local 14 // int nbSuggestions
        16: .line 3481
            iconst_0
            istore 15 /* suggestionIndex */
        start local 15 // int suggestionIndex
        17: goto 41
        18: .line 3482
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 13 /* suggestions */
            iload 15 /* suggestionIndex */
            aaload
            astore 16 /* suggestion */
        start local 16 // java.lang.String suggestion
        19: .line 3483
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        20: goto 30
        21: .line 3484
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 1 /* suggestionInfos */
            iload 17 /* i */
            aaload
            astore 18 /* otherSuggestionInfo */
        start local 18 // android.widget.Editor$SuggestionInfo otherSuggestionInfo
        22: .line 3485
            aload 18 /* otherSuggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mText:Landroid/text/SpannableStringBuilder;
            invokevirtual android.text.SpannableStringBuilder.toString:()Ljava/lang/String;
            aload 16 /* suggestion */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        23: .line 3487
            aload 18 /* otherSuggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionSpanInfo:Landroid/widget/Editor$SuggestionSpanInfo;
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanStart:I
        24: .line 3486
            istore 19 /* otherSpanStart */
        start local 19 // int otherSpanStart
        25: .line 3489
            aload 18 /* otherSuggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionSpanInfo:Landroid/widget/Editor$SuggestionSpanInfo;
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanEnd:I
        26: .line 3488
            istore 20 /* otherSpanEnd */
        start local 20 // int otherSpanEnd
        27: .line 3490
            iload 11 /* spanStart */
            iload 19 /* otherSpanStart */
            if_icmpne 29
            iload 12 /* spanEnd */
            iload 20 /* otherSpanEnd */
            if_icmpne 29
        28: .line 3491
            goto 40
        end local 20 // int otherSpanEnd
        end local 19 // int otherSpanStart
        end local 18 // android.widget.Editor$SuggestionInfo otherSuggestionInfo
        29: .line 3483
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 17 /* i */
            iload 6 /* numberOfSuggestions */
            if_icmplt 21
        end local 17 // int i
        31: .line 3496
            aload 1 /* suggestionInfos */
            iload 6 /* numberOfSuggestions */
            aaload
            astore 17 /* suggestionInfo */
        start local 17 // android.widget.Editor$SuggestionInfo suggestionInfo
        32: .line 3497
            aload 17 /* suggestionInfo */
            aload 7 /* suggestionSpan */
            iload 11 /* spanStart */
            iload 12 /* spanEnd */
            invokevirtual android.widget.Editor$SuggestionInfo.setSpanInfo:(Landroid/text/style/SuggestionSpan;II)V
        33: .line 3498
            aload 17 /* suggestionInfo */
            iload 15 /* suggestionIndex */
            putfield android.widget.Editor$SuggestionInfo.mSuggestionIndex:I
        34: .line 3499
            aload 17 /* suggestionInfo */
            iconst_0
            putfield android.widget.Editor$SuggestionInfo.mSuggestionStart:I
        35: .line 3500
            aload 17 /* suggestionInfo */
            aload 16 /* suggestion */
            invokevirtual java.lang.String.length:()I
            putfield android.widget.Editor$SuggestionInfo.mSuggestionEnd:I
        36: .line 3501
            aload 17 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mText:Landroid/text/SpannableStringBuilder;
            iconst_0
            aload 17 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mText:Landroid/text/SpannableStringBuilder;
            invokevirtual android.text.SpannableStringBuilder.length:()I
            aload 16 /* suggestion */
            invokevirtual android.text.SpannableStringBuilder.replace:(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
            pop
        37: .line 3502
            iinc 6 /* numberOfSuggestions */ 1
        38: .line 3503
            iload 6 /* numberOfSuggestions */
            aload 1 /* suggestionInfos */
            arraylength
            if_icmplt 40
        39: .line 3504
            iload 6 /* numberOfSuggestions */
            ireturn
        end local 17 // android.widget.Editor$SuggestionInfo suggestionInfo
        end local 16 // java.lang.String suggestion
        40: .line 3481
      StackMap locals:
      StackMap stack:
            iinc 15 /* suggestionIndex */ 1
      StackMap locals:
      StackMap stack:
        41: iload 15 /* suggestionIndex */
            iload 14 /* nbSuggestions */
            if_icmplt 18
        end local 15 // int suggestionIndex
        end local 14 // int nbSuggestions
        end local 13 // java.lang.String[] suggestions
        end local 12 // int spanEnd
        end local 11 // int spanStart
        end local 7 // android.text.style.SuggestionSpan suggestionSpan
        42: .line 3467
            iinc 8 1
      StackMap locals: android.widget.Editor$SuggestionHelper android.widget.Editor$SuggestionInfo[] android.widget.Editor$SuggestionSpanInfo android.text.Spannable android.text.style.SuggestionSpan[] int int top int int android.text.style.SuggestionSpan[]
      StackMap stack:
        43: iload 8
            iload 9
            if_icmplt 6
        44: .line 3508
            iload 6 /* numberOfSuggestions */
            ireturn
        end local 6 // int numberOfSuggestions
        end local 5 // int nbSpans
        end local 4 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 3 // android.text.Spannable spannable
        end local 2 // android.widget.Editor$SuggestionSpanInfo misspelledSpanInfo
        end local 1 // android.widget.Editor$SuggestionInfo[] suggestionInfos
        end local 0 // android.widget.Editor$SuggestionHelper this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   45     0                 this  Landroid/widget/Editor$SuggestionHelper;
            0   45     1      suggestionInfos  [Landroid/widget/Editor$SuggestionInfo;
            0   45     2   misspelledSpanInfo  Landroid/widget/Editor$SuggestionSpanInfo;
            1   45     3            spannable  Landroid/text/Spannable;
            2   45     4      suggestionSpans  [Landroid/text/style/SuggestionSpan;
            3   45     5              nbSpans  I
            5   45     6  numberOfSuggestions  I
            7   42     7       suggestionSpan  Landroid/text/style/SuggestionSpan;
            8   42    11            spanStart  I
            9   42    12              spanEnd  I
           15   42    13          suggestions  [Ljava/lang/String;
           16   42    14        nbSuggestions  I
           17   42    15      suggestionIndex  I
           19   40    16           suggestion  Ljava/lang/String;
           20   31    17                    i  I
           22   29    18  otherSuggestionInfo  Landroid/widget/Editor$SuggestionInfo;
           25   29    19       otherSpanStart  I
           27   29    20         otherSpanEnd  I
           32   40    17       suggestionInfo  Landroid/widget/Editor$SuggestionInfo;
    MethodParameters:
                    Name  Flags
      suggestionInfos     
      misspelledSpanInfo  
}
SourceFile: "Editor.java"
NestHost: android.widget.Editor
InnerClasses:
  private SuggestionHelper = android.widget.Editor$SuggestionHelper of android.widget.Editor
  private SuggestionSpanComparator = android.widget.Editor$SuggestionHelper$SuggestionSpanComparator of android.widget.Editor$SuggestionHelper
  private final SuggestionInfo = android.widget.Editor$SuggestionInfo of android.widget.Editor
  private final SuggestionSpanInfo = android.widget.Editor$SuggestionSpanInfo of android.widget.Editor