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

  private static final boolean DEBUG_UNDO;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean FLAG_USE_MAGNIFIER;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int BLINK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 500

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

  private static final float LINE_SLOP_MULTIPLIER_FOR_HANDLEVIEWS;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.5

  private static final int UNSET_X_VALUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int UNSET_LINE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final java.lang.String UNDO_OWNER_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Editor"

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

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

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

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

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

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

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

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

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

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

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

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

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

  private final android.content.UndoManager mUndoManager;
    descriptor: Landroid/content/UndoManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.content.UndoOwner mUndoOwner;
    descriptor: Landroid/content/UndoOwner;
    flags: (0x0002) ACC_PRIVATE

  final android.widget.Editor$UndoInputFilter mUndoInputFilter;
    descriptor: Landroid/widget/Editor$UndoInputFilter;
    flags: (0x0010) ACC_FINAL

  boolean mAllowUndo;
    descriptor: Z
    flags: (0x0000) 

  private final com.android.internal.logging.MetricsLogger mMetricsLogger;
    descriptor: Lcom/android/internal/logging/MetricsLogger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.widget.Editor$InsertionPointCursorController mInsertionPointCursorController;
    descriptor: Landroid/widget/Editor$InsertionPointCursorController;
    flags: (0x0002) ACC_PRIVATE

  android.widget.Editor$SelectionModifierCursorController mSelectionModifierCursorController;
    descriptor: Landroid/widget/Editor$SelectionModifierCursorController;
    flags: (0x0000) 

  private android.view.ActionMode mTextActionMode;
    descriptor: Landroid/view/ActionMode;
    flags: (0x0002) ACC_PRIVATE

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

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

  private final boolean mHapticTextHandleEnabled;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final android.view.ViewTreeObserver$OnDrawListener mMagnifierOnDrawListener;
    descriptor: Landroid/view/ViewTreeObserver$OnDrawListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.widget.Editor$CorrectionHighlighter mCorrectionHighlighter;
    descriptor: Landroid/widget/Editor$CorrectionHighlighter;
    flags: (0x0002) ACC_PRIVATE

  android.widget.Editor$InputContentType mInputContentType;
    descriptor: Landroid/widget/Editor$InputContentType;
    flags: (0x0000) 

  android.widget.Editor$InputMethodState mInputMethodState;
    descriptor: Landroid/widget/Editor$InputMethodState;
    flags: (0x0000) 

  private android.widget.Editor$TextRenderNode[] mTextRenderNodes;
    descriptor: [Landroid/widget/Editor$TextRenderNode;
    flags: (0x0002) ACC_PRIVATE

  boolean mFrozenWithFocus;
    descriptor: Z
    flags: (0x0000) 

  boolean mSelectionMoved;
    descriptor: Z
    flags: (0x0000) 

  boolean mTouchFocusSelected;
    descriptor: Z
    flags: (0x0000) 

  android.text.method.KeyListener mKeyListener;
    descriptor: Landroid/text/method/KeyListener;
    flags: (0x0000) 

  int mInputType;
    descriptor: I
    flags: (0x0000) 

  boolean mDiscardNextActionUp;
    descriptor: Z
    flags: (0x0000) 

  boolean mIgnoreActionUpEvent;
    descriptor: Z
    flags: (0x0000) 

  private long mShowCursor;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private android.widget.Editor$Blink mBlink;
    descriptor: Landroid/widget/Editor$Blink;
    flags: (0x0002) ACC_PRIVATE

  boolean mCursorVisible;
    descriptor: Z
    flags: (0x0000) 

  boolean mSelectAllOnFocus;
    descriptor: Z
    flags: (0x0000) 

  boolean mTextIsSelectable;
    descriptor: Z
    flags: (0x0000) 

  java.lang.CharSequence mError;
    descriptor: Ljava/lang/CharSequence;
    flags: (0x0000) 

  boolean mErrorWasChanged;
    descriptor: Z
    flags: (0x0000) 

  private android.widget.Editor$ErrorPopup mErrorPopup;
    descriptor: Landroid/widget/Editor$ErrorPopup;
    flags: (0x0002) ACC_PRIVATE

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

  boolean mInBatchEditControllers;
    descriptor: Z
    flags: (0x0000) 

  boolean mShowSoftInputOnFocus;
    descriptor: Z
    flags: (0x0000) 

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

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

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

  private android.widget.SelectionActionModeHelper mSelectionActionModeHelper;
    descriptor: Landroid/widget/SelectionActionModeHelper;
    flags: (0x0002) ACC_PRIVATE

  boolean mIsBeingLongClicked;
    descriptor: Z
    flags: (0x0000) 

  private android.widget.Editor$SuggestionsPopupWindow mSuggestionsPopupWindow;
    descriptor: Landroid/widget/Editor$SuggestionsPopupWindow;
    flags: (0x0002) ACC_PRIVATE

  android.text.style.SuggestionRangeSpan mSuggestionRangeSpan;
    descriptor: Landroid/text/style/SuggestionRangeSpan;
    flags: (0x0000) 

  private java.lang.Runnable mShowSuggestionRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  android.graphics.drawable.Drawable mDrawableForCursor;
    descriptor: Landroid/graphics/drawable/Drawable;
    flags: (0x0000) 

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

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

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

  private android.widget.Editor$PositionListener mPositionListener;
    descriptor: Landroid/widget/Editor$PositionListener;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

  android.view.ActionMode$Callback mCustomSelectionActionModeCallback;
    descriptor: Landroid/view/ActionMode$Callback;
    flags: (0x0000) 

  android.view.ActionMode$Callback mCustomInsertionActionModeCallback;
    descriptor: Landroid/view/ActionMode$Callback;
    flags: (0x0000) 

  boolean mCreatedWithASelection;
    descriptor: Z
    flags: (0x0000) 

  private int mTapState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long mLastTouchUpTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  private int mLastButtonState;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable mInsertionActionModeRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private android.widget.Editor$SpanController mSpanController;
    descriptor: Landroid/widget/Editor$SpanController;
    flags: (0x0002) ACC_PRIVATE

  private android.text.method.WordIterator mWordIterator;
    descriptor: Landroid/text/method/WordIterator;
    flags: (0x0002) ACC_PRIVATE

  android.widget.SpellChecker mSpellChecker;
    descriptor: Landroid/widget/SpellChecker;
    flags: (0x0000) 

  private android.text.method.WordIterator mWordIteratorWithText;
    descriptor: Landroid/text/method/WordIterator;
    flags: (0x0002) ACC_PRIVATE

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

  private android.graphics.Rect mTempRect;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0002) ACC_PRIVATE

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

  final android.widget.Editor$ProcessTextIntentActionsHandler mProcessTextIntentActionsHandler;
    descriptor: Landroid/widget/Editor$ProcessTextIntentActionsHandler;
    flags: (0x0010) ACC_FINAL

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

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

  boolean mIsInsertionActionModeStartPending;
    descriptor: Z
    flags: (0x0000) 

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

  static final int EXTRACT_NOTHING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  static final int EXTRACT_UNKNOWN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private final android.view.MenuItem$OnMenuItemClickListener mOnContextMenuItemClickListener;
    descriptor: Landroid/view/MenuItem$OnMenuItemClickListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int HANDLE_TYPE_SELECTION_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int HANDLE_TYPE_SELECTION_END;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  void <init>(android.widget.TextView);
    descriptor: (Landroid/widget/TextView;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Editor this
         0: .line 19
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import android.R cannot be resolved\n\tThe import com.android.internal.logging.nano cannot be resolved\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.layout cannot be resolved to a variable\n\tcom.android.internal.R.dimen cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tcom.android.internal.R.layout cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tandroid.R.string cannot be resolved to a variable\n\tcom.android.internal.R.layout cannot be resolved to a variable\n\tcom.android.internal.R.attr cannot be resolved to a variable\n\tcom.android.internal.R.drawable cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.attr cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.attr cannot be resolved to a variable\n\tcom.android.internal.R.dimen cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.id cannot be resolved to a variable\n\tcom.android.internal.R.styleable cannot be resolved to a variable\n\tcom.android.internal.R.styleable cannot be resolved to a variable\n\tcom.android.internal.R.styleable cannot be resolved to a variable\n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    MethodParameters:
          Name  Flags
      textView  

  android.os.ParcelableParcel saveInstanceState();
    descriptor: ()Landroid/os/ParcelableParcel;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 387
            new android.os.ParcelableParcel
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokespecial android.os.ParcelableParcel.<init>:(Ljava/lang/ClassLoader;)V
            astore 1 /* state */
        start local 1 // android.os.ParcelableParcel state
         1: .line 388
            aload 1 /* state */
            invokevirtual android.os.ParcelableParcel.getParcel:()Landroid/os/Parcel;
            astore 2 /* parcel */
        start local 2 // android.os.Parcel parcel
         2: .line 389
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 2 /* parcel */
            invokevirtual android.content.UndoManager.saveInstanceState:(Landroid/os/Parcel;)V
         3: .line 390
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            aload 2 /* parcel */
            invokevirtual android.widget.Editor$UndoInputFilter.saveInstanceState:(Landroid/os/Parcel;)V
         4: .line 391
            aload 1 /* state */
            areturn
        end local 2 // android.os.Parcel parcel
        end local 1 // android.os.ParcelableParcel state
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/widget/Editor;
            1    5     1   state  Landroid/os/ParcelableParcel;
            2    5     2  parcel  Landroid/os/Parcel;

  void restoreInstanceState(android.os.ParcelableParcel);
    descriptor: (Landroid/os/ParcelableParcel;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.os.ParcelableParcel state
         0: .line 395
            aload 1 /* state */
            invokevirtual android.os.ParcelableParcel.getParcel:()Landroid/os/Parcel;
            astore 2 /* parcel */
        start local 2 // android.os.Parcel parcel
         1: .line 396
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 2 /* parcel */
            aload 1 /* state */
            invokevirtual android.os.ParcelableParcel.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual android.content.UndoManager.restoreInstanceState:(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
         2: .line 397
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            aload 2 /* parcel */
            invokevirtual android.widget.Editor$UndoInputFilter.restoreInstanceState:(Landroid/os/Parcel;)V
         3: .line 399
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            ldc "Editor"
            aload 0 /* this */
            invokevirtual android.content.UndoManager.getOwner:(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
            putfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
         4: .line 400
            return
        end local 2 // android.os.Parcel parcel
        end local 1 // android.os.ParcelableParcel state
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/widget/Editor;
            0    5     1   state  Landroid/os/ParcelableParcel;
            1    5     2  parcel  Landroid/os/Parcel;
    MethodParameters:
       Name  Flags
      state  

  void forgetUndoRedo();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 406
            iconst_1
            anewarray android.content.UndoOwner
            dup
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
            aastore
            astore 1 /* owners */
        start local 1 // android.content.UndoOwner[] owners
         1: .line 407
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            iconst_m1
            invokevirtual android.content.UndoManager.forgetUndos:([Landroid/content/UndoOwner;I)I
            pop
         2: .line 408
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            iconst_m1
            invokevirtual android.content.UndoManager.forgetRedos:([Landroid/content/UndoOwner;I)I
            pop
         3: .line 409
            return
        end local 1 // android.content.UndoOwner[] owners
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/widget/Editor;
            1    4     1  owners  [Landroid/content/UndoOwner;

  boolean canUndo();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 412
            iconst_1
            anewarray android.content.UndoOwner
            dup
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
            aastore
            astore 1 /* owners */
        start local 1 // android.content.UndoOwner[] owners
         1: .line 413
            aload 0 /* this */
            getfield android.widget.Editor.mAllowUndo:Z
            ifeq 2
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            invokevirtual android.content.UndoManager.countUndos:([Landroid/content/UndoOwner;)I
            ifle 2
            iconst_1
            ireturn
      StackMap locals: android.content.UndoOwner[]
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // android.content.UndoOwner[] owners
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/widget/Editor;
            1    3     1  owners  [Landroid/content/UndoOwner;

  boolean canRedo();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 417
            iconst_1
            anewarray android.content.UndoOwner
            dup
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
            aastore
            astore 1 /* owners */
        start local 1 // android.content.UndoOwner[] owners
         1: .line 418
            aload 0 /* this */
            getfield android.widget.Editor.mAllowUndo:Z
            ifeq 2
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            invokevirtual android.content.UndoManager.countRedos:([Landroid/content/UndoOwner;)I
            ifle 2
            iconst_1
            ireturn
      StackMap locals: android.content.UndoOwner[]
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // android.content.UndoOwner[] owners
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/widget/Editor;
            1    3     1  owners  [Landroid/content/UndoOwner;

  void undo();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 422
            aload 0 /* this */
            getfield android.widget.Editor.mAllowUndo:Z
            ifne 2
         1: .line 423
            return
         2: .line 425
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray android.content.UndoOwner
            dup
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
            aastore
            astore 1 /* owners */
        start local 1 // android.content.UndoOwner[] owners
         3: .line 426
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            iconst_1
            invokevirtual android.content.UndoManager.undo:([Landroid/content/UndoOwner;I)I
            pop
         4: .line 427
            return
        end local 1 // android.content.UndoOwner[] owners
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/widget/Editor;
            3    5     1  owners  [Landroid/content/UndoOwner;

  void redo();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 430
            aload 0 /* this */
            getfield android.widget.Editor.mAllowUndo:Z
            ifne 2
         1: .line 431
            return
         2: .line 433
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray android.content.UndoOwner
            dup
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mUndoOwner:Landroid/content/UndoOwner;
            aastore
            astore 1 /* owners */
        start local 1 // android.content.UndoOwner[] owners
         3: .line 434
            aload 0 /* this */
            getfield android.widget.Editor.mUndoManager:Landroid/content/UndoManager;
            aload 1 /* owners */
            iconst_1
            invokevirtual android.content.UndoManager.redo:([Landroid/content/UndoOwner;I)I
            pop
         4: .line 435
            return
        end local 1 // android.content.UndoOwner[] owners
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/widget/Editor;
            3    5     1  owners  [Landroid/content/UndoOwner;

  void replace();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 438
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            ifnonnull 2
         1: .line 439
            aload 0 /* this */
            new android.widget.Editor$SuggestionsPopupWindow
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$SuggestionsPopupWindow.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
         2: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
         3: .line 442
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            invokevirtual android.widget.Editor$SuggestionsPopupWindow.show:()V
         4: .line 444
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            iadd
            iconst_2
            idiv
            istore 1 /* middle */
        start local 1 // int middle
         5: .line 445
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 1 /* middle */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         6: .line 446
            return
        end local 1 // int middle
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Landroid/widget/Editor;
            5    7     1  middle  I

  void onAttachedToWindow();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 449
            aload 0 /* this */
            getfield android.widget.Editor.mShowErrorAfterAttach:Z
            ifeq 3
         1: .line 450
            aload 0 /* this */
            invokevirtual android.widget.Editor.showError:()V
         2: .line 451
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mShowErrorAfterAttach:Z
         3: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 1 /* observer */
        start local 1 // android.view.ViewTreeObserver observer
         4: .line 455
            aload 1 /* observer */
            invokevirtual android.view.ViewTreeObserver.isAlive:()Z
            ifeq 11
         5: .line 458
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 7
         6: .line 459
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.view.ViewTreeObserver.addOnTouchModeChangeListener:(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
         7: .line 461
      StackMap locals: android.view.ViewTreeObserver
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 10
         8: .line 462
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.resetTouchOffsets:()V
         9: .line 463
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.view.ViewTreeObserver.addOnTouchModeChangeListener:(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
        10: .line 466
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mMagnifierOnDrawListener:Landroid/view/ViewTreeObserver$OnDrawListener;
            invokevirtual android.view.ViewTreeObserver.addOnDrawListener:(Landroid/view/ViewTreeObserver$OnDrawListener;)V
        11: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
        12: .line 471
            iconst_1
        13: .line 470
            invokevirtual android.widget.Editor.updateSpellCheckSpans:(IIZ)V
        14: .line 473
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifeq 16
        15: .line 474
            aload 0 /* this */
            invokevirtual android.widget.Editor.refreshTextActionMode:()V
        16: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
            aload 0 /* this */
            getfield android.widget.Editor.mCursorAnchorInfoNotifier:Landroid/widget/Editor$CursorAnchorInfoNotifier;
            iconst_1
            invokevirtual android.widget.Editor$PositionListener.addSubscriber:(Landroid/widget/Editor$TextViewPositionListener;Z)V
        17: .line 478
            aload 0 /* this */
            invokevirtual android.widget.Editor.resumeBlink:()V
        18: .line 479
            return
        end local 1 // android.view.ViewTreeObserver observer
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Landroid/widget/Editor;
            4   19     1  observer  Landroid/view/ViewTreeObserver;

  void onDetachedFromWindow();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 482
            aload 0 /* this */
            invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
            aload 0 /* this */
            getfield android.widget.Editor.mCursorAnchorInfoNotifier:Landroid/widget/Editor$CursorAnchorInfoNotifier;
            invokevirtual android.widget.Editor$PositionListener.removeSubscriber:(Landroid/widget/Editor$TextViewPositionListener;)V
         1: .line 484
            aload 0 /* this */
            getfield android.widget.Editor.mError:Ljava/lang/CharSequence;
            ifnull 3
         2: .line 485
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideError:()V
         3: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.suspendBlink:()V
         4: .line 490
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 6
         5: .line 491
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.onDetached:()V
         6: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 8
         7: .line 495
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.onDetached:()V
         8: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
            ifnull 10
         9: .line 499
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
        10: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            ifnull 12
        11: .line 504
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
        12: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowFloatingToolbar:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
        13: .line 509
            aload 0 /* this */
            invokevirtual android.widget.Editor.discardTextDisplayLists:()V
        14: .line 511
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            ifnull 17
        15: .line 512
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            invokevirtual android.widget.SpellChecker.closeSession:()V
        16: .line 515
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
        17: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 1 /* observer */
        start local 1 // android.view.ViewTreeObserver observer
        18: .line 520
            aload 1 /* observer */
            invokevirtual android.view.ViewTreeObserver.isAlive:()Z
            ifeq 20
        19: .line 521
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mMagnifierOnDrawListener:Landroid/view/ViewTreeObserver$OnDrawListener;
            invokevirtual android.view.ViewTreeObserver.removeOnDrawListener:(Landroid/view/ViewTreeObserver$OnDrawListener;)V
        end local 1 // android.view.ViewTreeObserver observer
        20: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
        21: .line 526
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
        22: .line 527
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Landroid/widget/Editor;
           18   20     1  observer  Landroid/view/ViewTreeObserver;

  private void discardTextDisplayLists();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 530
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            ifnull 11
         1: .line 531
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 10
         3: .line 532
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 1 /* i */
            aaload
            ifnull 5
         4: .line 533
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 1 /* i */
            aaload
            getfield android.widget.Editor$TextRenderNode.renderNode:Landroid/view/RenderNode;
            goto 6
      StackMap locals:
      StackMap stack:
         5: aconst_null
         6: .line 532
      StackMap locals:
      StackMap stack: android.view.RenderNode
            astore 2 /* displayList */
        start local 2 // android.view.RenderNode displayList
         7: .line 534
            aload 2 /* displayList */
            ifnull 9
            aload 2 /* displayList */
            invokevirtual android.view.RenderNode.isValid:()Z
            ifeq 9
         8: .line 535
            aload 2 /* displayList */
            invokevirtual android.view.RenderNode.discardDisplayList:()V
        end local 2 // android.view.RenderNode displayList
         9: .line 531
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 1 /* i */
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            arraylength
            if_icmplt 3
        end local 1 // int i
        11: .line 539
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Landroid/widget/Editor;
            2   11     1            i  I
            7    9     2  displayList  Landroid/view/RenderNode;

  private void showError();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 550
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tcom.android.internal.R.layout cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  public void setError(java.lang.CharSequence, android.graphics.drawable.Drawable);
    descriptor: (Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // java.lang.CharSequence error
        start local 2 // android.graphics.drawable.Drawable icon
         0: .line 571
            aload 0 /* this */
            aload 1 /* error */
            invokestatic android.text.TextUtils.stringOrSpannedString:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
            putfield android.widget.Editor.mError:Ljava/lang/CharSequence;
         1: .line 572
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mErrorWasChanged:Z
         2: .line 574
            aload 0 /* this */
            getfield android.widget.Editor.mError:Ljava/lang/CharSequence;
            ifnonnull 10
         3: .line 575
            aload 0 /* this */
            aconst_null
            invokevirtual android.widget.Editor.setErrorIcon:(Landroid/graphics/drawable/Drawable;)V
         4: .line 576
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            ifnull 8
         5: .line 577
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.isShowing:()Z
            ifeq 7
         6: .line 578
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.dismiss:()V
         7: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
         8: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mShowErrorAfterAttach:Z
         9: .line 584
            goto 13
        10: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* icon */
            invokevirtual android.widget.Editor.setErrorIcon:(Landroid/graphics/drawable/Drawable;)V
        11: .line 586
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isFocused:()Z
            ifeq 13
        12: .line 587
            aload 0 /* this */
            invokevirtual android.widget.Editor.showError:()V
        13: .line 590
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.graphics.drawable.Drawable icon
        end local 1 // java.lang.CharSequence error
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Landroid/widget/Editor;
            0   14     1  error  Ljava/lang/CharSequence;
            0   14     2   icon  Landroid/graphics/drawable/Drawable;
    MethodParameters:
       Name  Flags
      error  
      icon   

  private void setErrorIcon(android.graphics.drawable.Drawable);
    descriptor: (Landroid/graphics/drawable/Drawable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.drawable.Drawable icon
         0: .line 593
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            getfield android.widget.TextView.mDrawables:Landroid/widget/TextView$Drawables;
            astore 2 /* dr */
        start local 2 // android.widget.TextView$Drawables dr
         1: .line 594
            aload 2 /* dr */
            ifnonnull 3
         2: .line 595
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            new android.widget.TextView$Drawables
            dup
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            invokespecial android.widget.TextView$Drawables.<init>:(Landroid/content/Context;)V
            dup
            astore 2 /* dr */
            putfield android.widget.TextView.mDrawables:Landroid/widget/TextView$Drawables;
         3: .line 597
      StackMap locals: android.widget.TextView$Drawables
      StackMap stack:
            aload 2 /* dr */
            aload 1 /* icon */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView$Drawables.setErrorDrawable:(Landroid/graphics/drawable/Drawable;Landroid/widget/TextView;)V
         4: .line 599
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.resetResolvedDrawables:()V
         5: .line 600
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.invalidate:()V
         6: .line 601
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.requestLayout:()V
         7: .line 602
            return
        end local 2 // android.widget.TextView$Drawables dr
        end local 1 // android.graphics.drawable.Drawable icon
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/widget/Editor;
            0    8     1  icon  Landroid/graphics/drawable/Drawable;
            1    8     2    dr  Landroid/widget/TextView$Drawables;
    MethodParameters:
      Name  Flags
      icon  

  private void hideError();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 605
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            ifnull 3
         1: .line 606
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.isShowing:()Z
            ifeq 3
         2: .line 607
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.dismiss:()V
         3: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mShowErrorAfterAttach:Z
         4: .line 612
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;

  private int getErrorX();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 623
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getResources:()Landroid/content/res/Resources;
            invokevirtual android.content.res.Resources.getDisplayMetrics:()Landroid/util/DisplayMetrics;
            getfield android.util.DisplayMetrics.density:F
            fstore 1 /* scale */
        start local 1 // float scale
         1: .line 625
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            getfield android.widget.TextView.mDrawables:Landroid/widget/TextView$Drawables;
            astore 2 /* dr */
        start local 2 // android.widget.TextView$Drawables dr
         2: .line 627
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayoutDirection:()I
            istore 3 /* layoutDirection */
        start local 3 // int layoutDirection
         3: .line 630
            iload 3 /* layoutDirection */
            tableswitch { // 0 - 1
                    0: 4
                    1: 13
              default: 4
          }
         4: .line 633
      StackMap locals: float android.widget.TextView$Drawables int
      StackMap stack:
            aload 2 /* dr */
            ifnull 5
            aload 2 /* dr */
            getfield android.widget.TextView$Drawables.mDrawableSizeRight:I
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ineg
            iconst_2
            idiv
            ldc 25.0
            fload 1 /* scale */
            fmul
            ldc 0.5
            fadd
            f2i
            iadd
            istore 5 /* offset */
        start local 5 // int offset
         7: .line 634
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getWidth:()I
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.getWidth:()I
            isub
         8: .line 635
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getPaddingRight:()I
         9: .line 634
            isub
        10: .line 635
            iload 5 /* offset */
        11: .line 634
            iadd
            istore 4 /* errorX */
        start local 4 // int errorX
        12: .line 636
            goto 17
        end local 5 // int offset
        end local 4 // int errorX
        13: .line 638
      StackMap locals:
      StackMap stack:
            aload 2 /* dr */
            ifnull 14
            aload 2 /* dr */
            getfield android.widget.TextView$Drawables.mDrawableSizeLeft:I
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: iconst_2
            idiv
            ldc 25.0
            fload 1 /* scale */
            fmul
            ldc 0.5
            fadd
            f2i
            isub
            istore 5 /* offset */
        start local 5 // int offset
        16: .line 639
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getPaddingLeft:()I
            iload 5 /* offset */
            iadd
            istore 4 /* errorX */
        start local 4 // int errorX
        17: .line 642
      StackMap locals: int int
      StackMap stack:
            iload 4 /* errorX */
            ireturn
        end local 5 // int offset
        end local 4 // int errorX
        end local 3 // int layoutDirection
        end local 2 // android.widget.TextView$Drawables dr
        end local 1 // float scale
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Landroid/widget/Editor;
            1   18     1            scale  F
            2   18     2               dr  Landroid/widget/TextView$Drawables;
            3   18     3  layoutDirection  I
           12   13     4           errorX  I
           17   18     4           errorX  I
            7   13     5           offset  I
           16   18     5           offset  I

  private int getErrorY();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 654
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getCompoundPaddingTop:()I
            istore 1 /* compoundPaddingTop */
        start local 1 // int compoundPaddingTop
         1: .line 655
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getBottom:()I
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getTop:()I
            isub
         2: .line 656
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getCompoundPaddingBottom:()I
         3: .line 655
            isub
         4: .line 656
            iload 1 /* compoundPaddingTop */
         5: .line 655
            isub
            istore 2 /* vspace */
        start local 2 // int vspace
         6: .line 658
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            getfield android.widget.TextView.mDrawables:Landroid/widget/TextView$Drawables;
            astore 3 /* dr */
        start local 3 // android.widget.TextView$Drawables dr
         7: .line 660
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayoutDirection:()I
            istore 4 /* layoutDirection */
        start local 4 // int layoutDirection
         8: .line 662
            iload 4 /* layoutDirection */
            tableswitch { // 0 - 1
                    0: 9
                    1: 13
              default: 9
          }
         9: .line 665
      StackMap locals: android.widget.Editor int int android.widget.TextView$Drawables int
      StackMap stack:
            aload 3 /* dr */
            ifnull 10
            aload 3 /* dr */
            getfield android.widget.TextView$Drawables.mDrawableHeightRight:I
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 5 /* height */
        start local 5 // int height
        12: .line 666
            goto 16
        end local 5 // int height
        13: .line 668
      StackMap locals:
      StackMap stack:
            aload 3 /* dr */
            ifnull 14
            aload 3 /* dr */
            getfield android.widget.TextView$Drawables.mDrawableHeightLeft:I
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 5 /* height */
        start local 5 // int height
        16: .line 672
      StackMap locals: int
      StackMap stack:
            iload 1 /* compoundPaddingTop */
            iload 2 /* vspace */
            iload 5 /* height */
            isub
            iconst_2
            idiv
            iadd
            istore 6 /* icontop */
        start local 6 // int icontop
        17: .line 678
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getResources:()Landroid/content/res/Resources;
            invokevirtual android.content.res.Resources.getDisplayMetrics:()Landroid/util/DisplayMetrics;
            getfield android.util.DisplayMetrics.density:F
            fstore 7 /* scale */
        start local 7 // float scale
        18: .line 679
            iload 6 /* icontop */
            iload 5 /* height */
            iadd
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getHeight:()I
            isub
            fconst_2
            fload 7 /* scale */
            fmul
            ldc 0.5
            fadd
            f2i
            isub
            ireturn
        end local 7 // float scale
        end local 6 // int icontop
        end local 5 // int height
        end local 4 // int layoutDirection
        end local 3 // android.widget.TextView$Drawables dr
        end local 2 // int vspace
        end local 1 // int compoundPaddingTop
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0                this  Landroid/widget/Editor;
            1   19     1  compoundPaddingTop  I
            6   19     2              vspace  I
            7   19     3                  dr  Landroid/widget/TextView$Drawables;
            8   19     4     layoutDirection  I
           12   13     5              height  I
           16   19     5              height  I
           17   19     6             icontop  I
           18   19     7               scale  F

  void createInputContentTypeIfNeeded();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 683
            aload 0 /* this */
            getfield android.widget.Editor.mInputContentType:Landroid/widget/Editor$InputContentType;
            ifnonnull 2
         1: .line 684
            aload 0 /* this */
            new android.widget.Editor$InputContentType
            dup
            invokespecial android.widget.Editor$InputContentType.<init>:()V
            putfield android.widget.Editor.mInputContentType:Landroid/widget/Editor$InputContentType;
         2: .line 686
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  void createInputMethodStateIfNeeded();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 689
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            ifnonnull 2
         1: .line 690
            aload 0 /* this */
            new android.widget.Editor$InputMethodState
            dup
            invokespecial android.widget.Editor$InputMethodState.<init>:()V
            putfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
         2: .line 692
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private boolean isCursorVisible();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 696
            aload 0 /* this */
            getfield android.widget.Editor.mCursorVisible:Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/Editor;

  boolean shouldRenderCursor();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 700
            aload 0 /* this */
            invokevirtual android.widget.Editor.isCursorVisible:()Z
            ifne 2
         1: .line 701
            iconst_0
            ireturn
         2: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mRenderCursorRegardlessTiming:Z
            ifeq 4
         3: .line 704
            iconst_1
            ireturn
         4: .line 706
      StackMap locals:
      StackMap stack:
            invokestatic android.os.SystemClock.uptimeMillis:()J
            aload 0 /* this */
            getfield android.widget.Editor.mShowCursor:J
            lsub
            lstore 1 /* showCursorDelta */
        start local 1 // long showCursorDelta
         5: .line 707
            lload 1 /* showCursorDelta */
            ldc 1000
            lrem
            ldc 500
            lcmp
            ifge 6
            iconst_1
            ireturn
      StackMap locals: long
      StackMap stack:
         6: iconst_0
            ireturn
        end local 1 // long showCursorDelta
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Landroid/widget/Editor;
            5    7     1  showCursorDelta  J

  void prepareCursorControllers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 711
            iconst_0
            istore 1 /* windowSupportsHandles */
        start local 1 // boolean windowSupportsHandles
         1: .line 713
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getRootView:()Landroid/view/View;
            invokevirtual android.view.View.getLayoutParams:()Landroid/view/ViewGroup$LayoutParams;
            astore 2 /* params */
        start local 2 // android.view.ViewGroup$LayoutParams params
         2: .line 714
            aload 2 /* params */
            instanceof android.view.WindowManager$LayoutParams
            ifeq 9
         3: .line 715
            aload 2 /* params */
            checkcast android.view.WindowManager$LayoutParams
            astore 3 /* windowParams */
        start local 3 // android.view.WindowManager$LayoutParams windowParams
         4: .line 716
            aload 3 /* windowParams */
            getfield android.view.WindowManager$LayoutParams.type:I
            sipush 1000
            if_icmplt 7
         5: .line 717
            aload 3 /* windowParams */
            getfield android.view.WindowManager$LayoutParams.type:I
            sipush 1999
         6: .line 716
            if_icmpgt 7
            iconst_0
            goto 8
      StackMap locals: int android.view.ViewGroup$LayoutParams android.view.WindowManager$LayoutParams
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 1 /* windowSupportsHandles */
        end local 3 // android.view.WindowManager$LayoutParams windowParams
         9: .line 720
      StackMap locals:
      StackMap stack:
            iload 1 /* windowSupportsHandles */
            ifeq 10
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            ifnull 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 3 /* enabled */
        start local 3 // boolean enabled
        12: .line 721
            aload 0 /* this */
            iload 3 /* enabled */
            ifeq 13
            aload 0 /* this */
            invokevirtual android.widget.Editor.isCursorVisible:()Z
            ifeq 13
            iconst_1
            goto 14
      StackMap locals: android.widget.Editor int android.view.ViewGroup$LayoutParams int
      StackMap stack: android.widget.Editor
        13: iconst_0
      StackMap locals: android.widget.Editor int android.view.ViewGroup$LayoutParams int
      StackMap stack: android.widget.Editor int
        14: putfield android.widget.Editor.mInsertionControllerEnabled:Z
        15: .line 722
            aload 0 /* this */
            iload 3 /* enabled */
            ifeq 16
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.textCanBeSelected:()Z
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack: android.widget.Editor
        16: iconst_0
      StackMap locals: android.widget.Editor int android.view.ViewGroup$LayoutParams int
      StackMap stack: android.widget.Editor int
        17: putfield android.widget.Editor.mSelectionControllerEnabled:Z
        18: .line 724
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionControllerEnabled:Z
            ifne 23
        19: .line 725
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideInsertionPointCursorController:()V
        20: .line 726
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 23
        21: .line 727
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.onDetached:()V
        22: .line 728
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
        23: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionControllerEnabled:Z
            ifne 28
        24: .line 733
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
        25: .line 734
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 28
        26: .line 735
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.onDetached:()V
        27: .line 736
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
        28: .line 739
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean enabled
        end local 2 // android.view.ViewGroup$LayoutParams params
        end local 1 // boolean windowSupportsHandles
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   29     0                   this  Landroid/widget/Editor;
            1   29     1  windowSupportsHandles  Z
            2   29     2                 params  Landroid/view/ViewGroup$LayoutParams;
            4    9     3           windowParams  Landroid/view/WindowManager$LayoutParams;
           12   29     3                enabled  Z

  void hideInsertionPointCursorController();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 742
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 2
         1: .line 743
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.hide:()V
         2: .line 745
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  void hideCursorAndSpanControllers();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 751
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorControllers:()V
         1: .line 752
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideSpanControllers:()V
         2: .line 753
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private void hideSpanControllers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 756
            aload 0 /* this */
            getfield android.widget.Editor.mSpanController:Landroid/widget/Editor$SpanController;
            ifnull 2
         1: .line 757
            aload 0 /* this */
            getfield android.widget.Editor.mSpanController:Landroid/widget/Editor$SpanController;
            invokevirtual android.widget.Editor$SpanController.hide:()V
         2: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private void hideCursorControllers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 766
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            ifnull 3
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifne 2
         1: .line 767
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            invokevirtual android.widget.Editor$SuggestionsPopupWindow.isShowingUp:()Z
            ifne 3
         2: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            invokevirtual android.widget.Editor$SuggestionsPopupWindow.hide:()V
         3: .line 771
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideInsertionPointCursorController:()V
         4: .line 772
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;

  private void updateSpellCheckSpans(int, int, boolean);
    descriptor: (IIZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // int start
        start local 2 // int end
        start local 3 // boolean createSpellChecker
         0: .line 779
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 1 /* start */
            invokevirtual android.widget.TextView.removeAdjacentSuggestionSpans:(I)V
         1: .line 780
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 2 /* end */
            invokevirtual android.widget.TextView.removeAdjacentSuggestionSpans:(I)V
         2: .line 782
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifeq 8
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isSuggestionsEnabled:()Z
            ifeq 8
         3: .line 783
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifne 8
         4: .line 784
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            ifnonnull 6
            iload 3 /* createSpellChecker */
            ifeq 6
         5: .line 785
            aload 0 /* this */
            new android.widget.SpellChecker
            dup
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokespecial android.widget.SpellChecker.<init>:(Landroid/widget/TextView;)V
            putfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
         6: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            ifnull 8
         7: .line 788
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.widget.SpellChecker.spellCheck:(II)V
         8: .line 791
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean createSpellChecker
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Landroid/widget/Editor;
            0    9     1               start  I
            0    9     2                 end  I
            0    9     3  createSpellChecker  Z
    MethodParameters:
                    Name  Flags
      start               
      end                 
      createSpellChecker  

  void onScreenStateChanged(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int screenState
         0: .line 794
            iload 1 /* screenState */
            tableswitch { // 0 - 1
                    0: 3
                    1: 1
              default: 4
          }
         1: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.resumeBlink:()V
         2: .line 797
            goto 4
         3: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.suspendBlink:()V
         4: .line 802
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int screenState
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/widget/Editor;
            0    5     1  screenState  I
    MethodParameters:
             Name  Flags
      screenState  

  private void suspendBlink();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 805
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnull 2
         1: .line 806
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.Editor$Blink.cancel:()V
         2: .line 808
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private void resumeBlink();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 811
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnull 3
         1: .line 812
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.Editor$Blink.uncancel:()V
         2: .line 813
            aload 0 /* this */
            invokevirtual android.widget.Editor.makeBlink:()V
         3: .line 815
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/widget/Editor;

  void adjustInputType(boolean, boolean, boolean, boolean);
    descriptor: (ZZZZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.widget.Editor this
        start local 1 // boolean password
        start local 2 // boolean passwordInputType
        start local 3 // boolean webPasswordInputType
        start local 4 // boolean numberPasswordInputType
         0: .line 822
            aload 0 /* this */
            getfield android.widget.Editor.mInputType:I
            bipush 15
            iand
            iconst_1
            if_icmpne 10
         1: .line 823
            iload 1 /* password */
            ifne 2
            iload 2 /* passwordInputType */
            ifeq 5
         2: .line 824
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mInputType:I
            sipush -4081
            iand
         3: .line 825
            sipush 128
            ior
         4: .line 824
            putfield android.widget.Editor.mInputType:I
         5: .line 827
      StackMap locals:
      StackMap stack:
            iload 3 /* webPasswordInputType */
            ifeq 15
         6: .line 828
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mInputType:I
            sipush -4081
            iand
         7: .line 829
            sipush 224
            ior
         8: .line 828
            putfield android.widget.Editor.mInputType:I
         9: .line 831
            goto 15
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield android.widget.Editor.mInputType:I
            bipush 15
            iand
            iconst_2
            if_icmpne 15
        11: .line 832
            iload 4 /* numberPasswordInputType */
            ifeq 15
        12: .line 833
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mInputType:I
            sipush -4081
            iand
        13: .line 834
            bipush 16
            ior
        14: .line 833
            putfield android.widget.Editor.mInputType:I
        15: .line 837
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean numberPasswordInputType
        end local 3 // boolean webPasswordInputType
        end local 2 // boolean passwordInputType
        end local 1 // boolean password
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   16     0                     this  Landroid/widget/Editor;
            0   16     1                 password  Z
            0   16     2        passwordInputType  Z
            0   16     3     webPasswordInputType  Z
            0   16     4  numberPasswordInputType  Z
    MethodParameters:
                         Name  Flags
      password                 
      passwordInputType        
      webPasswordInputType     
      numberPasswordInputType  

  private void chooseSize(android.widget.PopupWindow, java.lang.CharSequence, android.widget.TextView);
    descriptor: (Landroid/widget/PopupWindow;Ljava/lang/CharSequence;Landroid/widget/TextView;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.widget.Editor this
         0: .line 845
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tcom.android.internal.R.dimen cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    MethodParameters:
      Name  Flags
      pop   
      text  
      tv    

  void setFrame();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 865
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            ifnull 6
         1: .line 866
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.getContentView:()Landroid/view/View;
            checkcast android.widget.TextView
            astore 1 /* tv */
        start local 1 // android.widget.TextView tv
         2: .line 867
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            aload 0 /* this */
            getfield android.widget.Editor.mError:Ljava/lang/CharSequence;
            aload 1 /* tv */
            invokevirtual android.widget.Editor.chooseSize:(Landroid/widget/PopupWindow;Ljava/lang/CharSequence;Landroid/widget/TextView;)V
         3: .line 868
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            invokevirtual android.widget.Editor.getErrorX:()I
            aload 0 /* this */
            invokevirtual android.widget.Editor.getErrorY:()I
         4: .line 869
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.getWidth:()I
            aload 0 /* this */
            getfield android.widget.Editor.mErrorPopup:Landroid/widget/Editor$ErrorPopup;
            invokevirtual android.widget.Editor$ErrorPopup.getHeight:()I
         5: .line 868
            invokevirtual android.widget.Editor$ErrorPopup.update:(Landroid/view/View;IIII)V
        end local 1 // android.widget.TextView tv
         6: .line 871
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/widget/Editor;
            2    6     1    tv  Landroid/widget/TextView;

  private int getWordStart(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int offset
         0: .line 876
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.prevBoundary:(I)I
            istore 2 /* retOffset */
        start local 2 // int retOffset
         1: .line 877
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 2 /* retOffset */
            invokevirtual android.text.method.WordIterator.isOnPunctuation:(I)Z
            ifeq 4
         2: .line 879
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.getPunctuationBeginning:(I)I
            istore 2 /* retOffset */
         3: .line 880
            goto 5
         4: .line 882
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.getPrevWordBeginningOnTwoWordsBoundary:(I)I
            istore 2 /* retOffset */
         5: .line 884
      StackMap locals:
      StackMap stack:
            iload 2 /* retOffset */
            iconst_m1
            if_icmpne 7
         6: .line 885
            iload 1 /* offset */
            ireturn
         7: .line 887
      StackMap locals:
      StackMap stack:
            iload 2 /* retOffset */
            ireturn
        end local 2 // int retOffset
        end local 1 // int offset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/widget/Editor;
            0    8     1     offset  I
            1    8     2  retOffset  I
    MethodParameters:
        Name  Flags
      offset  

  private int getWordEnd(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int offset
         0: .line 891
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.nextBoundary:(I)I
            istore 2 /* retOffset */
        start local 2 // int retOffset
         1: .line 892
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 2 /* retOffset */
            invokevirtual android.text.method.WordIterator.isAfterPunctuation:(I)Z
            ifeq 4
         2: .line 894
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.getPunctuationEnd:(I)I
            istore 2 /* retOffset */
         3: .line 895
            goto 5
         4: .line 897
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIteratorWithText:()Landroid/text/method/WordIterator;
            iload 1 /* offset */
            invokevirtual android.text.method.WordIterator.getNextWordEndOnTwoWordBoundary:(I)I
            istore 2 /* retOffset */
         5: .line 899
      StackMap locals:
      StackMap stack:
            iload 2 /* retOffset */
            iconst_m1
            if_icmpne 7
         6: .line 900
            iload 1 /* offset */
            ireturn
         7: .line 902
      StackMap locals:
      StackMap stack:
            iload 2 /* retOffset */
            ireturn
        end local 2 // int retOffset
        end local 1 // int offset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/widget/Editor;
            0    8     1     offset  I
            1    8     2  retOffset  I
    MethodParameters:
        Name  Flags
      offset  

  private boolean needsToSelectAllToSelectWordOrParagraph();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 906
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasPasswordTransformationMethod:()Z
            ifeq 2
         1: .line 910
            iconst_1
            ireturn
         2: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getInputType:()I
            istore 1 /* inputType */
        start local 1 // int inputType
         3: .line 914
            iload 1 /* inputType */
            bipush 15
            iand
            istore 2 /* klass */
        start local 2 // int klass
         4: .line 915
            iload 1 /* inputType */
            sipush 4080
            iand
            istore 3 /* variation */
        start local 3 // int variation
         5: .line 918
            iload 2 /* klass */
            iconst_2
            if_icmpeq 12
         6: .line 919
            iload 2 /* klass */
            iconst_3
            if_icmpeq 12
         7: .line 920
            iload 2 /* klass */
            iconst_4
            if_icmpeq 12
         8: .line 921
            iload 3 /* variation */
            bipush 16
            if_icmpeq 12
         9: .line 922
            iload 3 /* variation */
            bipush 32
            if_icmpeq 12
        10: .line 923
            iload 3 /* variation */
            sipush 208
            if_icmpeq 12
        11: .line 924
            iload 3 /* variation */
            sipush 176
            if_icmpne 13
        12: .line 925
      StackMap locals: int int int
      StackMap stack:
            iconst_1
            ireturn
        13: .line 927
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int variation
        end local 2 // int klass
        end local 1 // int inputType
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Landroid/widget/Editor;
            3   14     1  inputType  I
            4   14     2      klass  I
            5   14     3  variation  I

  boolean selectCurrentWord();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 935
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.canSelectText:()Z
            ifne 2
         1: .line 936
            iconst_0
            ireturn
         2: .line 939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.needsToSelectAllToSelectWordOrParagraph:()Z
            ifeq 4
         3: .line 940
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.selectAllText:()Z
            ireturn
         4: .line 943
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getLastTouchOffsets:()J
            lstore 1 /* lastTouchOffsets */
        start local 1 // long lastTouchOffsets
         5: .line 944
            lload 1 /* lastTouchOffsets */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 3 /* minOffset */
        start local 3 // int minOffset
         6: .line 945
            lload 1 /* lastTouchOffsets */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 4 /* maxOffset */
        start local 4 // int maxOffset
         7: .line 948
            iload 3 /* minOffset */
            iflt 8
            iload 3 /* minOffset */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 9
      StackMap locals: long int int
      StackMap stack:
         8: iconst_0
            ireturn
         9: .line 949
      StackMap locals:
      StackMap stack:
            iload 4 /* maxOffset */
            iflt 10
            iload 4 /* maxOffset */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        11: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            iload 3 /* minOffset */
            iload 4 /* maxOffset */
            ldc Landroid/text/style/URLSpan;
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.URLSpan[]
        12: .line 954
            astore 7 /* urlSpans */
        start local 7 // android.text.style.URLSpan[] urlSpans
        13: .line 956
            aload 7 /* urlSpans */
            arraylength
            iconst_1
            if_icmplt 18
        14: .line 957
            aload 7 /* urlSpans */
            iconst_0
            aaload
            astore 8 /* urlSpan */
        start local 8 // android.text.style.URLSpan urlSpan
        15: .line 958
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            aload 8 /* urlSpan */
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 5 /* selectionStart */
        start local 5 // int selectionStart
        16: .line 959
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            aload 8 /* urlSpan */
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            istore 6 /* selectionEnd */
        end local 8 // android.text.style.URLSpan urlSpan
        start local 6 // int selectionEnd
        17: .line 960
            goto 27
        end local 6 // int selectionEnd
        end local 5 // int selectionStart
        18: .line 963
      StackMap locals: android.widget.Editor long int int top top android.text.style.URLSpan[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getWordIterator:()Landroid/text/method/WordIterator;
            astore 8 /* wordIterator */
        start local 8 // android.text.method.WordIterator wordIterator
        19: .line 964
            aload 8 /* wordIterator */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            iload 3 /* minOffset */
            iload 4 /* maxOffset */
            invokevirtual android.text.method.WordIterator.setCharSequence:(Ljava/lang/CharSequence;II)V
        20: .line 966
            aload 8 /* wordIterator */
            iload 3 /* minOffset */
            invokevirtual android.text.method.WordIterator.getBeginning:(I)I
            istore 5 /* selectionStart */
        start local 5 // int selectionStart
        21: .line 967
            aload 8 /* wordIterator */
            iload 4 /* maxOffset */
            invokevirtual android.text.method.WordIterator.getEnd:(I)I
            istore 6 /* selectionEnd */
        start local 6 // int selectionEnd
        22: .line 969
            iload 5 /* selectionStart */
            iconst_m1
            if_icmpeq 24
            iload 6 /* selectionEnd */
            iconst_m1
            if_icmpeq 24
        23: .line 970
            iload 5 /* selectionStart */
            iload 6 /* selectionEnd */
            if_icmpne 27
        24: .line 972
      StackMap locals: android.widget.Editor long int int int int android.text.style.URLSpan[] android.text.method.WordIterator
      StackMap stack:
            aload 0 /* this */
            iload 3 /* minOffset */
            invokevirtual android.widget.Editor.getCharClusterRange:(I)J
            lstore 9 /* range */
        start local 9 // long range
        25: .line 973
            lload 9 /* range */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 5 /* selectionStart */
        26: .line 974
            lload 9 /* range */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 6 /* selectionEnd */
        end local 9 // long range
        end local 8 // android.text.method.WordIterator wordIterator
        27: .line 978
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 5 /* selectionStart */
            iload 6 /* selectionEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        28: .line 979
            iload 6 /* selectionEnd */
            iload 5 /* selectionStart */
            if_icmple 29
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        29: iconst_0
            ireturn
        end local 7 // android.text.style.URLSpan[] urlSpans
        end local 6 // int selectionEnd
        end local 5 // int selectionStart
        end local 4 // int maxOffset
        end local 3 // int minOffset
        end local 1 // long lastTouchOffsets
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   30     0              this  Landroid/widget/Editor;
            5   30     1  lastTouchOffsets  J
            6   30     3         minOffset  I
            7   30     4         maxOffset  I
           16   18     5    selectionStart  I
           21   30     5    selectionStart  I
           17   18     6      selectionEnd  I
           22   30     6      selectionEnd  I
           13   30     7          urlSpans  [Landroid/text/style/URLSpan;
           15   17     8           urlSpan  Landroid/text/style/URLSpan;
           19   27     8      wordIterator  Landroid/text/method/WordIterator;
           25   27     9             range  J

  private boolean selectCurrentParagraph();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 987
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.canSelectText:()Z
            ifne 2
         1: .line 988
            iconst_0
            ireturn
         2: .line 991
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.needsToSelectAllToSelectWordOrParagraph:()Z
            ifeq 4
         3: .line 992
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.selectAllText:()Z
            ireturn
         4: .line 995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getLastTouchOffsets:()J
            lstore 1 /* lastTouchOffsets */
        start local 1 // long lastTouchOffsets
         5: .line 996
            lload 1 /* lastTouchOffsets */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 3 /* minLastTouchOffset */
        start local 3 // int minLastTouchOffset
         6: .line 997
            lload 1 /* lastTouchOffsets */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 4 /* maxLastTouchOffset */
        start local 4 // int maxLastTouchOffset
         7: .line 999
            aload 0 /* this */
            iload 3 /* minLastTouchOffset */
            iload 4 /* maxLastTouchOffset */
            invokevirtual android.widget.Editor.getParagraphsRange:(II)J
            lstore 5 /* paragraphsRange */
        start local 5 // long paragraphsRange
         8: .line 1000
            lload 5 /* paragraphsRange */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 7 /* start */
        start local 7 // int start
         9: .line 1001
            lload 5 /* paragraphsRange */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 8 /* end */
        start local 8 // int end
        10: .line 1002
            iload 7 /* start */
            iload 8 /* end */
            if_icmpge 13
        11: .line 1003
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 7 /* start */
            iload 8 /* end */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        12: .line 1004
            iconst_1
            ireturn
        13: .line 1006
      StackMap locals: android.widget.Editor long int int long int int
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // int end
        end local 7 // int start
        end local 5 // long paragraphsRange
        end local 4 // int maxLastTouchOffset
        end local 3 // int minLastTouchOffset
        end local 1 // long lastTouchOffsets
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Landroid/widget/Editor;
            5   14     1    lastTouchOffsets  J
            6   14     3  minLastTouchOffset  I
            7   14     4  maxLastTouchOffset  I
            8   14     5     paragraphsRange  J
            9   14     7               start  I
           10   14     8                 end  I

  private long getParagraphsRange(int, int);
    descriptor: (II)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // int startOffset
        start local 2 // int endOffset
         0: .line 1013
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 3 /* layout */
        start local 3 // android.text.Layout layout
         1: .line 1014
            aload 3 /* layout */
            ifnonnull 3
         2: .line 1015
            iconst_m1
            iconst_m1
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
         3: .line 1017
      StackMap locals: android.text.Layout
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 4 /* text */
        start local 4 // java.lang.CharSequence text
         4: .line 1018
            aload 3 /* layout */
            iload 1 /* startOffset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 5 /* minLine */
        start local 5 // int minLine
         5: .line 1020
            goto 10
         6: .line 1021
      StackMap locals: java.lang.CharSequence int
      StackMap stack:
            aload 3 /* layout */
            iload 5 /* minLine */
            iconst_1
            isub
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 6 /* prevLineEndOffset */
        start local 6 // int prevLineEndOffset
         7: .line 1022
            aload 4 /* text */
            iload 6 /* prevLineEndOffset */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpne 9
         8: .line 1023
            goto 11
         9: .line 1025
      StackMap locals: int
      StackMap stack:
            iinc 5 /* minLine */ -1
        end local 6 // int prevLineEndOffset
        10: .line 1020
      StackMap locals:
      StackMap stack:
            iload 5 /* minLine */
            ifgt 6
        11: .line 1027
      StackMap locals:
      StackMap stack:
            aload 3 /* layout */
            iload 2 /* endOffset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 6 /* maxLine */
        start local 6 // int maxLine
        12: .line 1029
            goto 17
        13: .line 1030
      StackMap locals: int
      StackMap stack:
            aload 3 /* layout */
            iload 6 /* maxLine */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 7 /* lineEndOffset */
        start local 7 // int lineEndOffset
        14: .line 1031
            aload 4 /* text */
            iload 7 /* lineEndOffset */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpne 16
        15: .line 1032
            goto 18
        16: .line 1034
      StackMap locals: int
      StackMap stack:
            iinc 6 /* maxLine */ 1
        end local 7 // int lineEndOffset
        17: .line 1029
      StackMap locals:
      StackMap stack:
            iload 6 /* maxLine */
            aload 3 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmplt 13
        18: .line 1036
      StackMap locals:
      StackMap stack:
            aload 3 /* layout */
            iload 5 /* minLine */
            invokevirtual android.text.Layout.getLineStart:(I)I
            aload 3 /* layout */
            iload 6 /* maxLine */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 6 // int maxLine
        end local 5 // int minLine
        end local 4 // java.lang.CharSequence text
        end local 3 // android.text.Layout layout
        end local 2 // int endOffset
        end local 1 // int startOffset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Landroid/widget/Editor;
            0   19     1        startOffset  I
            0   19     2          endOffset  I
            1   19     3             layout  Landroid/text/Layout;
            4   19     4               text  Ljava/lang/CharSequence;
            5   19     5            minLine  I
            7   10     6  prevLineEndOffset  I
           12   19     6            maxLine  I
           14   17     7      lineEndOffset  I
    MethodParameters:
             Name  Flags
      startOffset  
      endOffset    

  void onLocaleChanged();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1042
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mWordIterator:Landroid/text/method/WordIterator;
         1: .line 1043
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mWordIteratorWithText:Landroid/text/method/WordIterator;
         2: .line 1044
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  public android.text.method.WordIterator getWordIterator();
    descriptor: ()Landroid/text/method/WordIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1047
            aload 0 /* this */
            getfield android.widget.Editor.mWordIterator:Landroid/text/method/WordIterator;
            ifnonnull 2
         1: .line 1048
            aload 0 /* this */
            new android.text.method.WordIterator
            dup
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getTextServicesLocale:()Ljava/util/Locale;
            invokespecial android.text.method.WordIterator.<init>:(Ljava/util/Locale;)V
            putfield android.widget.Editor.mWordIterator:Landroid/text/method/WordIterator;
         2: .line 1050
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mWordIterator:Landroid/text/method/WordIterator;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private android.text.method.WordIterator getWordIteratorWithText();
    descriptor: ()Landroid/text/method/WordIterator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1054
            aload 0 /* this */
            getfield android.widget.Editor.mWordIteratorWithText:Landroid/text/method/WordIterator;
            ifnonnull 3
         1: .line 1055
            aload 0 /* this */
            new android.text.method.WordIterator
            dup
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getTextServicesLocale:()Ljava/util/Locale;
            invokespecial android.text.method.WordIterator.<init>:(Ljava/util/Locale;)V
            putfield android.widget.Editor.mWordIteratorWithText:Landroid/text/method/WordIterator;
         2: .line 1056
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mUpdateWordIteratorText:Z
         3: .line 1058
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mUpdateWordIteratorText:Z
            ifeq 7
         4: .line 1063
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 1 /* text */
        start local 1 // java.lang.CharSequence text
         5: .line 1064
            aload 0 /* this */
            getfield android.widget.Editor.mWordIteratorWithText:Landroid/text/method/WordIterator;
            aload 1 /* text */
            iconst_0
            aload 1 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            invokevirtual android.text.method.WordIterator.setCharSequence:(Ljava/lang/CharSequence;II)V
         6: .line 1065
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mUpdateWordIteratorText:Z
        end local 1 // java.lang.CharSequence text
         7: .line 1067
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mWordIteratorWithText:Landroid/text/method/WordIterator;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/widget/Editor;
            5    7     1  text  Ljava/lang/CharSequence;

  private int getNextCursorOffset(int, boolean);
    descriptor: (IZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // int offset
        start local 2 // boolean findAfterGivenOffset
         0: .line 1071
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 3 /* layout */
        start local 3 // android.text.Layout layout
         1: .line 1072
            aload 3 /* layout */
            ifnonnull 2
            iload 1 /* offset */
            ireturn
         2: .line 1073
      StackMap locals: android.text.Layout
      StackMap stack:
            iload 2 /* findAfterGivenOffset */
            aload 3 /* layout */
            iload 1 /* offset */
            invokevirtual android.text.Layout.isRtlCharAt:(I)Z
            if_icmpne 4
         3: .line 1074
            aload 3 /* layout */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getOffsetToLeftOf:(I)I
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 3 /* layout */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getOffsetToRightOf:(I)I
         5: .line 1073
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 3 // android.text.Layout layout
        end local 2 // boolean findAfterGivenOffset
        end local 1 // int offset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Landroid/widget/Editor;
            0    6     1                offset  I
            0    6     2  findAfterGivenOffset  Z
            1    6     3                layout  Landroid/text/Layout;
    MethodParameters:
                      Name  Flags
      offset                
      findAfterGivenOffset  

  private long getCharClusterRange(int);
    descriptor: (I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int offset
         0: .line 1078
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            istore 2 /* textLength */
        start local 2 // int textLength
         1: .line 1079
            iload 1 /* offset */
            iload 2 /* textLength */
            if_icmpge 5
         2: .line 1080
            aload 0 /* this */
            iload 1 /* offset */
            iconst_1
            invokevirtual android.widget.Editor.getNextCursorOffset:(IZ)I
            istore 3 /* clusterEndOffset */
        start local 3 // int clusterEndOffset
         3: .line 1082
            aload 0 /* this */
            iload 3 /* clusterEndOffset */
            iconst_0
            invokevirtual android.widget.Editor.getNextCursorOffset:(IZ)I
            iload 3 /* clusterEndOffset */
         4: .line 1081
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 3 // int clusterEndOffset
         5: .line 1084
      StackMap locals: int
      StackMap stack:
            iload 1 /* offset */
            iconst_1
            isub
            iflt 10
         6: .line 1085
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            invokevirtual android.widget.Editor.getNextCursorOffset:(IZ)I
            istore 3 /* clusterStartOffset */
        start local 3 // int clusterStartOffset
         7: .line 1086
            iload 3 /* clusterStartOffset */
         8: .line 1087
            aload 0 /* this */
            iload 3 /* clusterStartOffset */
            iconst_1
            invokevirtual android.widget.Editor.getNextCursorOffset:(IZ)I
         9: .line 1086
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 3 // int clusterStartOffset
        10: .line 1089
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            iload 1 /* offset */
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 2 // int textLength
        end local 1 // int offset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0                this  Landroid/widget/Editor;
            0   11     1              offset  I
            1   11     2          textLength  I
            3    5     3    clusterEndOffset  I
            7   10     3  clusterStartOffset  I
    MethodParameters:
        Name  Flags
      offset  

  private boolean touchPositionIsInSelection();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1093
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 1 /* selectionStart */
        start local 1 // int selectionStart
         1: .line 1094
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 2 /* selectionEnd */
        start local 2 // int selectionEnd
         2: .line 1096
            iload 1 /* selectionStart */
            iload 2 /* selectionEnd */
            if_icmpne 4
         3: .line 1097
            iconst_0
            ireturn
         4: .line 1100
      StackMap locals: int int
      StackMap stack:
            iload 1 /* selectionStart */
            iload 2 /* selectionEnd */
            if_icmple 9
         5: .line 1101
            iload 1 /* selectionStart */
            istore 3 /* tmp */
        start local 3 // int tmp
         6: .line 1102
            iload 2 /* selectionEnd */
            istore 1 /* selectionStart */
         7: .line 1103
            iload 3 /* tmp */
            istore 2 /* selectionEnd */
         8: .line 1104
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 1 /* selectionStart */
            iload 2 /* selectionEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        end local 3 // int tmp
         9: .line 1107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            astore 3 /* selectionController */
        start local 3 // android.widget.Editor$SelectionModifierCursorController selectionController
        10: .line 1108
            aload 3 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.getMinTouchOffset:()I
            istore 4 /* minOffset */
        start local 4 // int minOffset
        11: .line 1109
            aload 3 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.getMaxTouchOffset:()I
            istore 5 /* maxOffset */
        start local 5 // int maxOffset
        12: .line 1111
            iload 4 /* minOffset */
            iload 1 /* selectionStart */
            if_icmplt 13
            iload 5 /* maxOffset */
            iload 2 /* selectionEnd */
            if_icmpge 13
            iconst_1
            ireturn
      StackMap locals: android.widget.Editor$SelectionModifierCursorController int int
      StackMap stack:
        13: iconst_0
            ireturn
        end local 5 // int maxOffset
        end local 4 // int minOffset
        end local 3 // android.widget.Editor$SelectionModifierCursorController selectionController
        end local 2 // int selectionEnd
        end local 1 // int selectionStart
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0                 this  Landroid/widget/Editor;
            1   14     1       selectionStart  I
            2   14     2         selectionEnd  I
            6    9     3                  tmp  I
           10   14     3  selectionController  Landroid/widget/Editor$SelectionModifierCursorController;
           11   14     4            minOffset  I
           12   14     5            maxOffset  I

  private android.widget.Editor$PositionListener getPositionListener();
    descriptor: ()Landroid/widget/Editor$PositionListener;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1115
            aload 0 /* this */
            getfield android.widget.Editor.mPositionListener:Landroid/widget/Editor$PositionListener;
            ifnonnull 2
         1: .line 1116
            aload 0 /* this */
            new android.widget.Editor$PositionListener
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$PositionListener.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mPositionListener:Landroid/widget/Editor$PositionListener;
         2: .line 1118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mPositionListener:Landroid/widget/Editor$PositionListener;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private boolean isOffsetVisible(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int offset
         0: .line 1127
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 2 /* layout */
        start local 2 // android.text.Layout layout
         1: .line 1128
            aload 2 /* layout */
            ifnonnull 2
            iconst_0
            ireturn
         2: .line 1130
      StackMap locals: android.text.Layout
      StackMap stack:
            aload 2 /* layout */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         3: .line 1131
            aload 2 /* layout */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            istore 4 /* lineBottom */
        start local 4 // int lineBottom
         4: .line 1132
            aload 2 /* layout */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            f2i
            istore 5 /* primaryHorizontal */
        start local 5 // int primaryHorizontal
         5: .line 1133
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
         6: .line 1134
            iload 5 /* primaryHorizontal */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.viewportToContentHorizontalOffset:()I
            iadd
            i2f
         7: .line 1135
            iload 4 /* lineBottom */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.viewportToContentVerticalOffset:()I
            iadd
            i2f
         8: .line 1133
            invokevirtual android.widget.TextView.isPositionVisible:(FF)Z
            ireturn
        end local 5 // int primaryHorizontal
        end local 4 // int lineBottom
        end local 3 // int line
        end local 2 // android.text.Layout layout
        end local 1 // int offset
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Landroid/widget/Editor;
            0    9     1             offset  I
            1    9     2             layout  Landroid/text/Layout;
            3    9     3               line  I
            4    9     4         lineBottom  I
            5    9     5  primaryHorizontal  I
    MethodParameters:
        Name  Flags
      offset  

  private boolean isPositionOnText(float, float);
    descriptor: (FF)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // float x
        start local 2 // float y
         0: .line 1142
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 3 /* layout */
        start local 3 // android.text.Layout layout
         1: .line 1143
            aload 3 /* layout */
            ifnonnull 2
            iconst_0
            ireturn
         2: .line 1145
      StackMap locals: android.text.Layout
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 2 /* y */
            invokevirtual android.widget.TextView.getLineAtCoordinate:(F)I
            istore 4 /* line */
        start local 4 // int line
         3: .line 1146
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 1 /* x */
            invokevirtual android.widget.TextView.convertToLocalHorizontalCoordinate:(F)F
            fstore 1 /* x */
         4: .line 1148
            fload 1 /* x */
            aload 3 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineLeft:(I)F
            fcmpg
            ifge 5
            iconst_0
            ireturn
         5: .line 1149
      StackMap locals: int
      StackMap stack:
            fload 1 /* x */
            aload 3 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineRight:(I)F
            fcmpl
            ifle 6
            iconst_0
            ireturn
         6: .line 1150
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // int line
        end local 3 // android.text.Layout layout
        end local 2 // float y
        end local 1 // float x
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Landroid/widget/Editor;
            0    7     1       x  F
            0    7     2       y  F
            1    7     3  layout  Landroid/text/Layout;
            3    7     4    line  I
    MethodParameters:
      Name  Flags
      x     
      y     

  private void startDragAndDrop();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1154
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
            invokevirtual android.widget.SelectionActionModeHelper.onSelectionDrag:()V
         1: .line 1157
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifeq 3
         2: .line 1158
            return
         3: .line 1160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 1 /* start */
        start local 1 // int start
         4: .line 1161
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 2 /* end */
        start local 2 // int end
         5: .line 1162
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.widget.TextView.getTransformedText:(II)Ljava/lang/CharSequence;
            astore 3 /* selectedText */
        start local 3 // java.lang.CharSequence selectedText
         6: .line 1163
            aconst_null
            aload 3 /* selectedText */
            invokestatic android.content.ClipData.newPlainText:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;
            astore 4 /* data */
        start local 4 // android.content.ClipData data
         7: .line 1164
            new android.widget.Editor$DragLocalState
            dup
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 1 /* start */
            iload 2 /* end */
            invokespecial android.widget.Editor$DragLocalState.<init>:(Landroid/widget/TextView;II)V
            astore 5 /* localState */
        start local 5 // android.widget.Editor$DragLocalState localState
         8: .line 1165
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 4 /* data */
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.widget.Editor.getTextThumbnailBuilder:(II)Landroid/view/View$DragShadowBuilder;
            aload 5 /* localState */
         9: .line 1166
            sipush 256
        10: .line 1165
            invokevirtual android.widget.TextView.startDragAndDrop:(Landroid/content/ClipData;Landroid/view/View$DragShadowBuilder;Ljava/lang/Object;I)Z
            pop
        11: .line 1167
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
        12: .line 1168
            aload 0 /* this */
            invokevirtual android.widget.Editor.hasSelectionController:()Z
            ifeq 14
        13: .line 1169
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.resetTouchOffsets:()V
        14: .line 1171
      StackMap locals: android.widget.Editor int int java.lang.CharSequence android.content.ClipData android.widget.Editor$DragLocalState
      StackMap stack:
            return
        end local 5 // android.widget.Editor$DragLocalState localState
        end local 4 // android.content.ClipData data
        end local 3 // java.lang.CharSequence selectedText
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Landroid/widget/Editor;
            4   15     1         start  I
            5   15     2           end  I
            6   15     3  selectedText  Ljava/lang/CharSequence;
            7   15     4          data  Landroid/content/ClipData;
            8   15     5    localState  Landroid/widget/Editor$DragLocalState;

  public boolean performLongClick(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Editor this
         0: .line 1185
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n\tMetricsEvent cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    MethodParameters:
         Name  Flags
      handled  

  float getLastUpPositionX();
    descriptor: ()F
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1222
            aload 0 /* this */
            getfield android.widget.Editor.mLastUpPositionX:F
            freturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  float getLastUpPositionY();
    descriptor: ()F
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1226
            aload 0 /* this */
            getfield android.widget.Editor.mLastUpPositionY:F
            freturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  private long getLastTouchOffsets();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1230
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            astore 1 /* selectionController */
        start local 1 // android.widget.Editor$SelectionModifierCursorController selectionController
         1: .line 1231
            aload 1 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.getMinTouchOffset:()I
            istore 2 /* minOffset */
        start local 2 // int minOffset
         2: .line 1232
            aload 1 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.getMaxTouchOffset:()I
            istore 3 /* maxOffset */
        start local 3 // int maxOffset
         3: .line 1233
            iload 2 /* minOffset */
            iload 3 /* maxOffset */
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 3 // int maxOffset
        end local 2 // int minOffset
        end local 1 // android.widget.Editor$SelectionModifierCursorController selectionController
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Landroid/widget/Editor;
            1    4     1  selectionController  Landroid/widget/Editor$SelectionModifierCursorController;
            2    4     2            minOffset  I
            3    4     3            maxOffset  I

  void onFocusChanged(boolean, int);
    descriptor: (ZI)V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // boolean focused
        start local 2 // int direction
         0: .line 1237
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.widget.Editor.mShowCursor:J
         1: .line 1238
            aload 0 /* this */
            invokevirtual android.widget.Editor.ensureEndedBatchEdit:()V
         2: .line 1240
            iload 1 /* focused */
            ifeq 33
         3: .line 1241
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 3 /* selStart */
        start local 3 // int selStart
         4: .line 1242
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 4 /* selEnd */
        start local 4 // int selEnd
         5: .line 1246
            aload 0 /* this */
            getfield android.widget.Editor.mSelectAllOnFocus:Z
            ifeq 8
            iload 3 /* selStart */
            ifne 8
         6: .line 1247
            iload 4 /* selEnd */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpne 8
         7: .line 1246
            iconst_1
            goto 9
      StackMap locals: int int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 5 /* isFocusHighlighted */
        start local 5 // boolean isFocusHighlighted
        10: .line 1249
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mFrozenWithFocus:Z
            ifeq 12
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifeq 12
        11: .line 1250
            iload 5 /* isFocusHighlighted */
            ifne 12
            iconst_1
            goto 13
      StackMap locals: android.widget.Editor int int int int int
      StackMap stack: android.widget.Editor
        12: iconst_0
        13: .line 1249
      StackMap locals: android.widget.Editor int int int int int
      StackMap stack: android.widget.Editor int
            putfield android.widget.Editor.mCreatedWithASelection:Z
        14: .line 1252
            aload 0 /* this */
            getfield android.widget.Editor.mFrozenWithFocus:Z
            ifeq 15
            iload 3 /* selStart */
            iflt 15
            iload 4 /* selEnd */
            ifge 27
        15: .line 1255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getLastTapPosition:()I
            istore 6 /* lastTapPosition */
        start local 6 // int lastTapPosition
        16: .line 1256
            iload 6 /* lastTapPosition */
            iflt 18
        17: .line 1257
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 6 /* lastTapPosition */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        18: .line 1261
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getMovementMethod:()Landroid/text/method/MovementMethod;
            astore 7 /* mMovement */
        start local 7 // android.text.method.MovementMethod mMovement
        19: .line 1262
            aload 7 /* mMovement */
            ifnull 21
        20: .line 1263
            aload 7 /* mMovement */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 2 /* direction */
            invokeinterface android.text.method.MovementMethod.onTakeFocus:(Landroid/widget/TextView;Landroid/text/Spannable;I)V
        21: .line 1271
      StackMap locals: android.text.method.MovementMethod
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifne 22
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionMoved:Z
            ifeq 24
        22: .line 1272
      StackMap locals:
      StackMap stack:
            iload 3 /* selStart */
            iflt 24
            iload 4 /* selEnd */
            iflt 24
        23: .line 1282
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 3 /* selStart */
            iload 4 /* selEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        24: .line 1285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectAllOnFocus:Z
            ifeq 26
        25: .line 1286
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.selectAllText:()Z
            pop
        26: .line 1289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mTouchFocusSelected:Z
        end local 7 // android.text.method.MovementMethod mMovement
        end local 6 // int lastTapPosition
        27: .line 1292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mFrozenWithFocus:Z
        28: .line 1293
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mSelectionMoved:Z
        29: .line 1295
            aload 0 /* this */
            getfield android.widget.Editor.mError:Ljava/lang/CharSequence;
            ifnull 31
        30: .line 1296
            aload 0 /* this */
            invokevirtual android.widget.Editor.showError:()V
        31: .line 1299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.makeBlink:()V
        end local 5 // boolean isFocusHighlighted
        end local 4 // int selEnd
        end local 3 // int selStart
        32: .line 1300
            goto 49
        33: .line 1301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mError:Ljava/lang/CharSequence;
            ifnull 35
        34: .line 1302
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideError:()V
        35: .line 1305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.onEndBatchEdit:()V
        36: .line 1307
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifeq 40
        37: .line 1308
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
        38: .line 1309
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
        39: .line 1310
            goto 46
        40: .line 1311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
        41: .line 1312
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTemporarilyDetached:()Z
            ifeq 44
        42: .line 1313
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
        43: .line 1314
            goto 45
        44: .line 1315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
        45: .line 1317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.downgradeEasyCorrectionSpans:()V
        46: .line 1320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 48
        47: .line 1321
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.resetTouchOffsets:()V
        48: .line 1324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.ensureNoSelectionIfNonSelectable:()V
        49: .line 1326
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int direction
        end local 1 // boolean focused
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   50     0                this  Landroid/widget/Editor;
            0   50     1             focused  Z
            0   50     2           direction  I
            4   32     3            selStart  I
            5   32     4              selEnd  I
           10   32     5  isFocusHighlighted  Z
           16   27     6     lastTapPosition  I
           19   27     7           mMovement  Landroid/text/method/MovementMethod;
    MethodParameters:
           Name  Flags
      focused    
      direction  

  private void ensureNoSelectionIfNonSelectable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1330
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.textCanBeSelected:()Z
            ifne 4
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifeq 4
         1: .line 1331
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
         2: .line 1332
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.length:()I
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.length:()I
         3: .line 1331
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         4: .line 1334
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;

  private void downgradeEasyCorrectionSpans();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1341
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 1 /* text */
        start local 1 // java.lang.CharSequence text
         1: .line 1342
            aload 1 /* text */
            instanceof android.text.Spannable
            ifeq 15
         2: .line 1343
            aload 1 /* text */
            checkcast android.text.Spannable
            astore 2 /* spannable */
        start local 2 // android.text.Spannable spannable
         3: .line 1344
            aload 2 /* spannable */
            iconst_0
         4: .line 1345
            aload 2 /* spannable */
            invokeinterface android.text.Spannable.length:()I
            ldc Landroid/text/style/SuggestionSpan;
         5: .line 1344
            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
         6: .line 1346
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 14
         8: .line 1347
      StackMap locals: android.widget.Editor java.lang.CharSequence android.text.Spannable android.text.style.SuggestionSpan[] int
      StackMap stack:
            aload 3 /* suggestionSpans */
            iload 4 /* i */
            aaload
            invokevirtual android.text.style.SuggestionSpan.getFlags:()I
            istore 5 /* flags */
        start local 5 // int flags
         9: .line 1348
            iload 5 /* flags */
            iconst_1
            iand
            ifeq 13
        10: .line 1349
            iload 5 /* flags */
            iconst_2
            iand
            ifne 13
        11: .line 1350
            iload 5 /* flags */
            bipush -2
            iand
            istore 5 /* flags */
        12: .line 1351
            aload 3 /* suggestionSpans */
            iload 4 /* i */
            aaload
            iload 5 /* flags */
            invokevirtual android.text.style.SuggestionSpan.setFlags:(I)V
        end local 5 // int flags
        13: .line 1346
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 3 /* suggestionSpans */
            arraylength
            if_icmplt 8
        end local 4 // int i
        end local 3 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 2 // android.text.Spannable spannable
        15: .line 1355
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.CharSequence text
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Landroid/widget/Editor;
            1   16     1             text  Ljava/lang/CharSequence;
            3   15     2        spannable  Landroid/text/Spannable;
            6   15     3  suggestionSpans  [Landroid/text/style/SuggestionSpan;
            7   15     4                i  I
            9   13     5            flags  I

  void sendOnTextChanged(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // int start
        start local 2 // int before
        start local 3 // int after
         0: .line 1358
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
            iload 1 /* start */
            iload 1 /* start */
            iload 2 /* before */
            iadd
            invokevirtual android.widget.SelectionActionModeHelper.onTextChanged:(II)V
         1: .line 1359
            aload 0 /* this */
            iload 1 /* start */
            iload 1 /* start */
            iload 3 /* after */
            iadd
            iconst_0
            invokevirtual android.widget.Editor.updateSpellCheckSpans:(IIZ)V
         2: .line 1362
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mUpdateWordIteratorText:Z
         3: .line 1367
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorControllers:()V
         4: .line 1369
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 6
         5: .line 1370
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.resetTouchOffsets:()V
         6: .line 1372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
         7: .line 1373
            return
        end local 3 // int after
        end local 2 // int before
        end local 1 // int start
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Landroid/widget/Editor;
            0    8     1   start  I
            0    8     2  before  I
            0    8     3   after  I
    MethodParameters:
        Name  Flags
      start   
      before  
      after   

  private int getLastTapPosition();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1377
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 6
         1: .line 1378
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.getMinTouchOffset:()I
            istore 1 /* lastTapPosition */
        start local 1 // int lastTapPosition
         2: .line 1379
            iload 1 /* lastTapPosition */
            iflt 6
         3: .line 1381
            iload 1 /* lastTapPosition */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 5
         4: .line 1382
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            istore 1 /* lastTapPosition */
         5: .line 1384
      StackMap locals: int
      StackMap stack:
            iload 1 /* lastTapPosition */
            ireturn
        end local 1 // int lastTapPosition
         6: .line 1388
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Landroid/widget/Editor;
            2    6     1  lastTapPosition  I

  void onWindowFocusChanged(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // boolean hasWindowFocus
         0: .line 1392
            iload 1 /* hasWindowFocus */
            ifeq 7
         1: .line 1393
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnull 4
         2: .line 1394
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.Editor$Blink.uncancel:()V
         3: .line 1395
            aload 0 /* this */
            invokevirtual android.widget.Editor.makeBlink:()V
         4: .line 1397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifeq 17
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifne 17
         5: .line 1398
            aload 0 /* this */
            invokevirtual android.widget.Editor.refreshTextActionMode:()V
         6: .line 1400
            goto 17
         7: .line 1401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnull 9
         8: .line 1402
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.Editor$Blink.cancel:()V
         9: .line 1404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mInputContentType:Landroid/widget/Editor$InputContentType;
            ifnull 11
        10: .line 1405
            aload 0 /* this */
            getfield android.widget.Editor.mInputContentType:Landroid/widget/Editor$InputContentType;
            iconst_0
            putfield android.widget.Editor$InputContentType.enterDown:Z
        11: .line 1408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
        12: .line 1409
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
        13: .line 1410
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            ifnull 15
        14: .line 1411
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            invokevirtual android.widget.Editor$SuggestionsPopupWindow.onParentLostFocus:()V
        15: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.ensureEndedBatchEdit:()V
        16: .line 1417
            aload 0 /* this */
            invokevirtual android.widget.Editor.ensureNoSelectionIfNonSelectable:()V
        17: .line 1419
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hasWindowFocus
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Landroid/widget/Editor;
            0   18     1  hasWindowFocus  Z
    MethodParameters:
                Name  Flags
      hasWindowFocus  

  private void updateTapState(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.MotionEvent event
         0: .line 1422
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            istore 2 /* action */
        start local 2 // int action
         1: .line 1423
            iload 2 /* action */
            ifne 13
         2: .line 1424
            aload 1 /* event */
            sipush 8194
            invokevirtual android.view.MotionEvent.isFromSource:(I)Z
            istore 3 /* isMouse */
        start local 3 // boolean isMouse
         3: .line 1426
            aload 0 /* this */
            getfield android.widget.Editor.mTapState:I
            iconst_1
            if_icmpeq 5
         4: .line 1427
            aload 0 /* this */
            getfield android.widget.Editor.mTapState:I
            iconst_2
            if_icmpne 12
            iload 3 /* isMouse */
            ifeq 12
         5: .line 1428
      StackMap locals: int int
      StackMap stack:
            invokestatic android.os.SystemClock.uptimeMillis:()J
            aload 0 /* this */
            getfield android.widget.Editor.mLastTouchUpTime:J
            lsub
         6: .line 1429
            invokestatic android.view.ViewConfiguration.getDoubleTapTimeout:()I
            i2l
            lcmp
            ifgt 12
         7: .line 1430
            aload 0 /* this */
            getfield android.widget.Editor.mTapState:I
            iconst_1
            if_icmpne 10
         8: .line 1431
            aload 0 /* this */
            iconst_2
            putfield android.widget.Editor.mTapState:I
         9: .line 1432
            goto 13
        10: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield android.widget.Editor.mTapState:I
        11: .line 1435
            goto 13
        12: .line 1436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mTapState:I
        end local 3 // boolean isMouse
        13: .line 1439
      StackMap locals:
      StackMap stack:
            iload 2 /* action */
            iconst_1
            if_icmpne 15
        14: .line 1440
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.widget.Editor.mLastTouchUpTime:J
        15: .line 1442
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int action
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Landroid/widget/Editor;
            0   16     1    event  Landroid/view/MotionEvent;
            1   16     2   action  I
            3   13     3  isMouse  Z
    MethodParameters:
       Name  Flags
      event  

  private boolean shouldFilterOutTouchEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.MotionEvent event
         0: .line 1445
            aload 1 /* event */
            sipush 8194
            invokevirtual android.view.MotionEvent.isFromSource:(I)Z
            ifne 2
         1: .line 1446
            iconst_0
            ireturn
         2: .line 1449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mLastButtonState:I
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getButtonState:()I
            ixor
            iconst_1
            iand
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
         4: .line 1448
      StackMap locals:
      StackMap stack: int
            istore 2 /* primaryButtonStateChanged */
        start local 2 // boolean primaryButtonStateChanged
         5: .line 1450
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            istore 3 /* action */
        start local 3 // int action
         6: .line 1451
            iload 3 /* action */
            ifeq 7
            iload 3 /* action */
            iconst_1
            if_icmpne 9
         7: .line 1452
      StackMap locals: int int
      StackMap stack:
            iload 2 /* primaryButtonStateChanged */
            ifne 9
         8: .line 1453
            iconst_1
            ireturn
         9: .line 1455
      StackMap locals:
      StackMap stack:
            iload 3 /* action */
            iconst_2
            if_icmpne 12
        10: .line 1456
            aload 1 /* event */
            iconst_1
            invokevirtual android.view.MotionEvent.isButtonPressed:(I)Z
            ifne 12
        11: .line 1457
            iconst_1
            ireturn
        12: .line 1459
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int action
        end local 2 // boolean primaryButtonStateChanged
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   13     0                       this  Landroid/widget/Editor;
            0   13     1                      event  Landroid/view/MotionEvent;
            5   13     2  primaryButtonStateChanged  Z
            6   13     3                     action  I
    MethodParameters:
       Name  Flags
      event  

  void onTouchEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.MotionEvent event
         0: .line 1463
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.widget.Editor.shouldFilterOutTouchEvent:(Landroid/view/MotionEvent;)Z
            istore 2 /* filterOutEvent */
        start local 2 // boolean filterOutEvent
         1: .line 1464
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getButtonState:()I
            putfield android.widget.Editor.mLastButtonState:I
         2: .line 1465
            iload 2 /* filterOutEvent */
            ifeq 6
         3: .line 1466
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            iconst_1
            if_icmpne 5
         4: .line 1467
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mDiscardNextActionUp:Z
         5: .line 1469
      StackMap locals: int
      StackMap stack:
            return
         6: .line 1471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.widget.Editor.updateTapState:(Landroid/view/MotionEvent;)V
         7: .line 1472
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.widget.Editor.updateFloatingToolbarVisibility:(Landroid/view/MotionEvent;)V
         8: .line 1474
            aload 0 /* this */
            invokevirtual android.widget.Editor.hasSelectionController:()Z
            ifeq 10
         9: .line 1475
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            aload 1 /* event */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.onTouchEvent:(Landroid/view/MotionEvent;)V
        10: .line 1478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
            ifnull 13
        11: .line 1479
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
        12: .line 1480
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
        13: .line 1483
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            iconst_1
            if_icmpne 16
        14: .line 1484
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getX:()F
            putfield android.widget.Editor.mLastUpPositionX:F
        15: .line 1485
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getY:()F
            putfield android.widget.Editor.mLastUpPositionY:F
        16: .line 1488
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            ifne 21
        17: .line 1489
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getX:()F
            putfield android.widget.Editor.mLastDownPositionX:F
        18: .line 1490
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getY:()F
            putfield android.widget.Editor.mLastDownPositionY:F
        19: .line 1494
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mTouchFocusSelected:Z
        20: .line 1495
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mIgnoreActionUpEvent:Z
        21: .line 1497
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean filterOutEvent
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Landroid/widget/Editor;
            0   22     1           event  Landroid/view/MotionEvent;
            1   22     2  filterOutEvent  Z
    MethodParameters:
       Name  Flags
      event  

  private void updateFloatingToolbarVisibility(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.MotionEvent event
         0: .line 1500
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 5
         1: .line 1501
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getActionMasked:()I
            tableswitch { // 1 - 3
                    1: 4
                    2: 2
                    3: 4
              default: 5
          }
         2: .line 1503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            invokevirtual android.widget.Editor.hideFloatingToolbar:(I)V
         3: .line 1504
            goto 5
         4: .line 1507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.showFloatingToolbar:()V
         5: .line 1510
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/widget/Editor;
            0    6     1  event  Landroid/view/MotionEvent;
    MethodParameters:
       Name  Flags
      event  

  void hideFloatingToolbar(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int duration
         0: .line 1513
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 3
         1: .line 1514
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowFloatingToolbar:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         2: .line 1515
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            iload 1 /* duration */
            i2l
            invokevirtual android.view.ActionMode.hide:(J)V
         3: .line 1517
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int duration
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/widget/Editor;
            0    4     1  duration  I
    MethodParameters:
          Name  Flags
      duration  

  private void showFloatingToolbar();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1520
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 4
         1: .line 1523
            invokestatic android.view.ViewConfiguration.getDoubleTapTimeout:()I
            istore 1 /* delay */
        start local 1 // int delay
         2: .line 1524
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowFloatingToolbar:Ljava/lang/Runnable;
            iload 1 /* delay */
            i2l
            invokevirtual android.widget.TextView.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
         3: .line 1529
            aload 0 /* this */
            invokevirtual android.widget.Editor.invalidateActionModeAsync:()V
        end local 1 // int delay
         4: .line 1531
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/widget/Editor;
            2    4     1  delay  I

  public void beginBatchEdit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1534
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mInBatchEditControllers:Z
         1: .line 1535
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            astore 1 /* ims */
        start local 1 // android.widget.Editor$InputMethodState ims
         2: .line 1536
            aload 1 /* ims */
            ifnull 16
         3: .line 1537
            aload 1 /* ims */
            dup
            getfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            iconst_1
            iadd
            dup_x1
            putfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            istore 2 /* nesting */
        start local 2 // int nesting
         4: .line 1538
            iload 2 /* nesting */
            iconst_1
            if_icmpne 16
         5: .line 1539
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mCursorChanged:Z
         6: .line 1540
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mChangedDelta:I
         7: .line 1541
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mContentChanged:Z
            ifeq 11
         8: .line 1544
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mChangedStart:I
         9: .line 1545
            aload 1 /* ims */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            putfield android.widget.Editor$InputMethodState.mChangedEnd:I
        10: .line 1546
            goto 14
        11: .line 1547
      StackMap locals: android.widget.Editor$InputMethodState int
      StackMap stack:
            aload 1 /* ims */
            iconst_m1
            putfield android.widget.Editor$InputMethodState.mChangedStart:I
        12: .line 1548
            aload 1 /* ims */
            iconst_m1
            putfield android.widget.Editor$InputMethodState.mChangedEnd:I
        13: .line 1549
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mContentChanged:Z
        14: .line 1551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.beginBatchEdit:()V
        15: .line 1552
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.onBeginBatchEdit:()V
        end local 2 // int nesting
        16: .line 1555
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.widget.Editor$InputMethodState ims
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Landroid/widget/Editor;
            2   17     1      ims  Landroid/widget/Editor$InputMethodState;
            4   16     2  nesting  I

  public void endBatchEdit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1558
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mInBatchEditControllers:Z
         1: .line 1559
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            astore 1 /* ims */
        start local 1 // android.widget.Editor$InputMethodState ims
         2: .line 1560
            aload 1 /* ims */
            ifnull 6
         3: .line 1561
            aload 1 /* ims */
            dup
            getfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            iconst_1
            isub
            dup_x1
            putfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            istore 2 /* nesting */
        start local 2 // int nesting
         4: .line 1562
            iload 2 /* nesting */
            ifne 6
         5: .line 1563
            aload 0 /* this */
            aload 1 /* ims */
            invokevirtual android.widget.Editor.finishBatchEdit:(Landroid/widget/Editor$InputMethodState;)V
        end local 2 // int nesting
         6: .line 1566
      StackMap locals: android.widget.Editor$InputMethodState
      StackMap stack:
            return
        end local 1 // android.widget.Editor$InputMethodState ims
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/widget/Editor;
            2    7     1      ims  Landroid/widget/Editor$InputMethodState;
            4    6     2  nesting  I

  void ensureEndedBatchEdit();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1569
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            astore 1 /* ims */
        start local 1 // android.widget.Editor$InputMethodState ims
         1: .line 1570
            aload 1 /* ims */
            ifnull 4
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            ifeq 4
         2: .line 1571
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
         3: .line 1572
            aload 0 /* this */
            aload 1 /* ims */
            invokevirtual android.widget.Editor.finishBatchEdit:(Landroid/widget/Editor$InputMethodState;)V
         4: .line 1574
      StackMap locals: android.widget.Editor$InputMethodState
      StackMap stack:
            return
        end local 1 // android.widget.Editor$InputMethodState ims
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;
            1    5     1   ims  Landroid/widget/Editor$InputMethodState;

  void finishBatchEdit(android.widget.Editor$InputMethodState);
    descriptor: (Landroid/widget/Editor$InputMethodState;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.widget.Editor$InputMethodState ims
         0: .line 1577
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.onEndBatchEdit:()V
         1: .line 1578
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.endBatchEdit:()V
         2: .line 1580
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mContentChanged:Z
            ifne 3
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mSelectionModeChanged:Z
            ifeq 6
         3: .line 1581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.updateAfterEdit:()V
         4: .line 1582
            aload 0 /* this */
            invokevirtual android.widget.Editor.reportExtractedText:()Z
            pop
         5: .line 1583
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mCursorChanged:Z
            ifeq 8
         7: .line 1585
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.invalidateCursor:()V
         8: .line 1589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.sendUpdateSelection:()V
         9: .line 1592
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 17
        10: .line 1593
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifeq 12
        11: .line 1594
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
        13: .line 1593
      StackMap locals:
      StackMap stack: android.widget.Editor$CursorController
            astore 2 /* cursorController */
        start local 2 // android.widget.Editor$CursorController cursorController
        14: .line 1595
            aload 2 /* cursorController */
            ifnull 17
            aload 2 /* cursorController */
            invokeinterface android.widget.Editor$CursorController.isActive:()Z
            ifne 17
        15: .line 1596
            aload 2 /* cursorController */
            invokeinterface android.widget.Editor$CursorController.isCursorBeingModified:()Z
            ifne 17
        16: .line 1597
            aload 2 /* cursorController */
            invokeinterface android.widget.Editor$CursorController.show:()V
        end local 2 // android.widget.Editor$CursorController cursorController
        17: .line 1600
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.widget.Editor$InputMethodState ims
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Landroid/widget/Editor;
            0   18     1               ims  Landroid/widget/Editor$InputMethodState;
           14   17     2  cursorController  Landroid/widget/Editor$CursorController;
    MethodParameters:
      Name  Flags
      ims   final

  boolean extractText(android.view.inputmethod.ExtractedTextRequest, android.view.inputmethod.ExtractedText);
    descriptor: (Landroid/view/inputmethod/ExtractedTextRequest;Landroid/view/inputmethod/ExtractedText;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // android.view.inputmethod.ExtractedTextRequest request
        start local 2 // android.view.inputmethod.ExtractedText outText
         0: .line 1606
            aload 0 /* this */
            aload 1 /* request */
            iconst_m1
            iconst_m1
         1: .line 1607
            iconst_m1
            aload 2 /* outText */
         2: .line 1606
            invokevirtual android.widget.Editor.extractTextInternal:(Landroid/view/inputmethod/ExtractedTextRequest;IIILandroid/view/inputmethod/ExtractedText;)Z
            ireturn
        end local 2 // android.view.inputmethod.ExtractedText outText
        end local 1 // android.view.inputmethod.ExtractedTextRequest request
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/widget/Editor;
            0    3     1  request  Landroid/view/inputmethod/ExtractedTextRequest;
            0    3     2  outText  Landroid/view/inputmethod/ExtractedText;
    MethodParameters:
         Name  Flags
      request  
      outText  

  private boolean extractTextInternal(android.view.inputmethod.ExtractedTextRequest, int, int, int, android.view.inputmethod.ExtractedText);
    descriptor: (Landroid/view/inputmethod/ExtractedTextRequest;IIILandroid/view/inputmethod/ExtractedText;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=6
        start local 0 // android.widget.Editor this
        start local 1 // android.view.inputmethod.ExtractedTextRequest request
        start local 2 // int partialStartOffset
        start local 3 // int partialEndOffset
        start local 4 // int delta
        start local 5 // android.view.inputmethod.ExtractedText outText
         0: .line 1613
            aload 1 /* request */
            ifnull 1
            aload 5 /* outText */
            ifnonnull 2
         1: .line 1614
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 6 /* content */
        start local 6 // java.lang.CharSequence content
         3: .line 1618
            aload 6 /* content */
            ifnonnull 5
         4: .line 1619
            iconst_0
            ireturn
         5: .line 1622
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            iload 2 /* partialStartOffset */
            bipush -2
            if_icmpeq 47
         6: .line 1623
            aload 6 /* content */
            invokeinterface java.lang.CharSequence.length:()I
            istore 7 /* N */
        start local 7 // int N
         7: .line 1624
            iload 2 /* partialStartOffset */
            ifge 12
         8: .line 1625
            aload 5 /* outText */
            aload 5 /* outText */
            iconst_m1
            dup_x1
            putfield android.view.inputmethod.ExtractedText.partialEndOffset:I
            putfield android.view.inputmethod.ExtractedText.partialStartOffset:I
         9: .line 1626
            iconst_0
            istore 2 /* partialStartOffset */
        10: .line 1627
            iload 7 /* N */
            istore 3 /* partialEndOffset */
        11: .line 1628
            goto 38
        12: .line 1631
      StackMap locals: int
      StackMap stack:
            iload 3 /* partialEndOffset */
            iload 4 /* delta */
            iadd
            istore 3 /* partialEndOffset */
        13: .line 1633
            aload 6 /* content */
            instanceof android.text.Spanned
            ifeq 26
        14: .line 1634
            aload 6 /* content */
            checkcast android.text.Spanned
            astore 8 /* spanned */
        start local 8 // android.text.Spanned spanned
        15: .line 1635
            aload 8 /* spanned */
            iload 2 /* partialStartOffset */
        16: .line 1636
            iload 3 /* partialEndOffset */
            ldc Landroid/text/ParcelableSpan;
        17: .line 1635
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            astore 9 /* spans */
        start local 9 // java.lang.Object[] spans
        18: .line 1637
            aload 9 /* spans */
            arraylength
            istore 10 /* i */
        start local 10 // int i
        19: .line 1638
            goto 25
        20: .line 1639
      StackMap locals: android.text.Spanned java.lang.Object[] int
      StackMap stack:
            iinc 10 /* i */ -1
        21: .line 1640
            aload 8 /* spanned */
            aload 9 /* spans */
            iload 10 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 11 /* j */
        start local 11 // int j
        22: .line 1641
            iload 11 /* j */
            iload 2 /* partialStartOffset */
            if_icmpge 23
            iload 11 /* j */
            istore 2 /* partialStartOffset */
        23: .line 1642
      StackMap locals: int
      StackMap stack:
            aload 8 /* spanned */
            aload 9 /* spans */
            iload 10 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            istore 11 /* j */
        24: .line 1643
            iload 11 /* j */
            iload 3 /* partialEndOffset */
            if_icmple 25
            iload 11 /* j */
            istore 3 /* partialEndOffset */
        end local 11 // int j
        25: .line 1638
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            ifgt 20
        end local 10 // int i
        end local 9 // java.lang.Object[] spans
        end local 8 // android.text.Spanned spanned
        26: .line 1646
      StackMap locals:
      StackMap stack:
            aload 5 /* outText */
            iload 2 /* partialStartOffset */
            putfield android.view.inputmethod.ExtractedText.partialStartOffset:I
        27: .line 1647
            aload 5 /* outText */
            iload 3 /* partialEndOffset */
            iload 4 /* delta */
            isub
            putfield android.view.inputmethod.ExtractedText.partialEndOffset:I
        28: .line 1649
            iload 2 /* partialStartOffset */
            iload 7 /* N */
            if_icmple 31
        29: .line 1650
            iload 7 /* N */
            istore 2 /* partialStartOffset */
        30: .line 1651
            goto 33
      StackMap locals:
      StackMap stack:
        31: iload 2 /* partialStartOffset */
            ifge 33
        32: .line 1652
            iconst_0
            istore 2 /* partialStartOffset */
        33: .line 1654
      StackMap locals:
      StackMap stack:
            iload 3 /* partialEndOffset */
            iload 7 /* N */
            if_icmple 36
        34: .line 1655
            iload 7 /* N */
            istore 3 /* partialEndOffset */
        35: .line 1656
            goto 38
      StackMap locals:
      StackMap stack:
        36: iload 3 /* partialEndOffset */
            ifge 38
        37: .line 1657
            iconst_0
            istore 3 /* partialEndOffset */
        38: .line 1660
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            getfield android.view.inputmethod.ExtractedTextRequest.flags:I
            iconst_1
            iand
            ifeq 43
        39: .line 1661
            aload 5 /* outText */
            aload 6 /* content */
            iload 2 /* partialStartOffset */
        40: .line 1662
            iload 3 /* partialEndOffset */
        41: .line 1661
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            putfield android.view.inputmethod.ExtractedText.text:Ljava/lang/CharSequence;
        42: .line 1663
            goto 50
        43: .line 1664
      StackMap locals:
      StackMap stack:
            aload 5 /* outText */
            aload 6 /* content */
            iload 2 /* partialStartOffset */
        44: .line 1665
            iload 3 /* partialEndOffset */
        45: .line 1664
            invokestatic android.text.TextUtils.substring:(Ljava/lang/CharSequence;II)Ljava/lang/String;
            putfield android.view.inputmethod.ExtractedText.text:Ljava/lang/CharSequence;
        end local 7 // int N
        46: .line 1667
            goto 50
        47: .line 1668
      StackMap locals:
      StackMap stack:
            aload 5 /* outText */
            iconst_0
            putfield android.view.inputmethod.ExtractedText.partialStartOffset:I
        48: .line 1669
            aload 5 /* outText */
            iconst_0
            putfield android.view.inputmethod.ExtractedText.partialEndOffset:I
        49: .line 1670
            aload 5 /* outText */
            ldc ""
            putfield android.view.inputmethod.ExtractedText.text:Ljava/lang/CharSequence;
        50: .line 1672
      StackMap locals:
      StackMap stack:
            aload 5 /* outText */
            iconst_0
            putfield android.view.inputmethod.ExtractedText.flags:I
        51: .line 1673
            aload 6 /* content */
            sipush 2048
            invokestatic android.text.method.MetaKeyKeyListener.getMetaState:(Ljava/lang/CharSequence;I)I
            ifeq 53
        52: .line 1674
            aload 5 /* outText */
            dup
            getfield android.view.inputmethod.ExtractedText.flags:I
            iconst_2
            ior
            putfield android.view.inputmethod.ExtractedText.flags:I
        53: .line 1676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isSingleLine:()Z
            ifeq 55
        54: .line 1677
            aload 5 /* outText */
            dup
            getfield android.view.inputmethod.ExtractedText.flags:I
            iconst_1
            ior
            putfield android.view.inputmethod.ExtractedText.flags:I
        55: .line 1679
      StackMap locals:
      StackMap stack:
            aload 5 /* outText */
            iconst_0
            putfield android.view.inputmethod.ExtractedText.startOffset:I
        56: .line 1680
            aload 5 /* outText */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            putfield android.view.inputmethod.ExtractedText.selectionStart:I
        57: .line 1681
            aload 5 /* outText */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            putfield android.view.inputmethod.ExtractedText.selectionEnd:I
        58: .line 1682
            aload 5 /* outText */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getHint:()Ljava/lang/CharSequence;
            putfield android.view.inputmethod.ExtractedText.hint:Ljava/lang/CharSequence;
        59: .line 1683
            iconst_1
            ireturn
        end local 6 // java.lang.CharSequence content
        end local 5 // android.view.inputmethod.ExtractedText outText
        end local 4 // int delta
        end local 3 // int partialEndOffset
        end local 2 // int partialStartOffset
        end local 1 // android.view.inputmethod.ExtractedTextRequest request
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   60     0                this  Landroid/widget/Editor;
            0   60     1             request  Landroid/view/inputmethod/ExtractedTextRequest;
            0   60     2  partialStartOffset  I
            0   60     3    partialEndOffset  I
            0   60     4               delta  I
            0   60     5             outText  Landroid/view/inputmethod/ExtractedText;
            3   60     6             content  Ljava/lang/CharSequence;
            7   46     7                   N  I
           15   26     8             spanned  Landroid/text/Spanned;
           18   26     9               spans  [Ljava/lang/Object;
           19   26    10                   i  I
           22   25    11                   j  I
    MethodParameters:
                    Name  Flags
      request             
      partialStartOffset  
      partialEndOffset    
      delta               
      outText             

  boolean reportExtractedText();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1687
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            astore 1 /* ims */
        start local 1 // android.widget.Editor$InputMethodState ims
         1: .line 1688
            aload 1 /* ims */
            ifnonnull 3
         2: .line 1689
            iconst_0
            ireturn
         3: .line 1691
      StackMap locals: android.widget.Editor$InputMethodState
      StackMap stack:
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mContentChanged:Z
            istore 2 /* wasContentChanged */
        start local 2 // boolean wasContentChanged
         4: .line 1692
            iload 2 /* wasContentChanged */
            ifne 6
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mSelectionModeChanged:Z
            ifne 6
         5: .line 1693
            iconst_0
            ireturn
         6: .line 1695
      StackMap locals: int
      StackMap stack:
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mContentChanged:Z
         7: .line 1696
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mSelectionModeChanged:Z
         8: .line 1697
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mExtractedTextRequest:Landroid/view/inputmethod/ExtractedTextRequest;
            astore 3 /* req */
        start local 3 // android.view.inputmethod.ExtractedTextRequest req
         9: .line 1698
            aload 3 /* req */
            ifnonnull 11
        10: .line 1699
            iconst_0
            ireturn
        11: .line 1701
      StackMap locals: android.view.inputmethod.ExtractedTextRequest
      StackMap stack:
            invokestatic android.view.inputmethod.InputMethodManager.peekInstance:()Landroid/view/inputmethod/InputMethodManager;
            astore 4 /* imm */
        start local 4 // android.view.inputmethod.InputMethodManager imm
        12: .line 1702
            aload 4 /* imm */
            ifnonnull 14
        13: .line 1703
            iconst_0
            ireturn
        14: .line 1711
      StackMap locals: android.view.inputmethod.InputMethodManager
      StackMap stack:
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mChangedStart:I
            ifge 16
            iload 2 /* wasContentChanged */
            ifne 16
        15: .line 1712
            aload 1 /* ims */
            bipush -2
            putfield android.widget.Editor$InputMethodState.mChangedStart:I
        16: .line 1714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* req */
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mChangedStart:I
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mChangedEnd:I
        17: .line 1715
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mChangedDelta:I
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mExtractedText:Landroid/view/inputmethod/ExtractedText;
        18: .line 1714
            invokevirtual android.widget.Editor.extractTextInternal:(Landroid/view/inputmethod/ExtractedTextRequest;IIILandroid/view/inputmethod/ExtractedText;)Z
        19: .line 1715
            ifeq 26
        20: .line 1724
            aload 4 /* imm */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 3 /* req */
            getfield android.view.inputmethod.ExtractedTextRequest.token:I
            aload 1 /* ims */
            getfield android.widget.Editor$InputMethodState.mExtractedText:Landroid/view/inputmethod/ExtractedText;
            invokevirtual android.view.inputmethod.InputMethodManager.updateExtractedText:(Landroid/view/View;ILandroid/view/inputmethod/ExtractedText;)V
        21: .line 1725
            aload 1 /* ims */
            iconst_m1
            putfield android.widget.Editor$InputMethodState.mChangedStart:I
        22: .line 1726
            aload 1 /* ims */
            iconst_m1
            putfield android.widget.Editor$InputMethodState.mChangedEnd:I
        23: .line 1727
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mChangedDelta:I
        24: .line 1728
            aload 1 /* ims */
            iconst_0
            putfield android.widget.Editor$InputMethodState.mContentChanged:Z
        25: .line 1729
            iconst_1
            ireturn
        26: .line 1731
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // android.view.inputmethod.InputMethodManager imm
        end local 3 // android.view.inputmethod.ExtractedTextRequest req
        end local 2 // boolean wasContentChanged
        end local 1 // android.widget.Editor$InputMethodState ims
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Landroid/widget/Editor;
            1   27     1                ims  Landroid/widget/Editor$InputMethodState;
            4   27     2  wasContentChanged  Z
            9   27     3                req  Landroid/view/inputmethod/ExtractedTextRequest;
           12   27     4                imm  Landroid/view/inputmethod/InputMethodManager;

  private void sendUpdateSelection();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1735
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            ifnull 14
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            getfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            ifgt 14
         1: .line 1736
            invokestatic android.view.inputmethod.InputMethodManager.peekInstance:()Landroid/view/inputmethod/InputMethodManager;
            astore 1 /* imm */
        start local 1 // android.view.inputmethod.InputMethodManager imm
         2: .line 1737
            aload 1 /* imm */
            ifnull 14
         3: .line 1738
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 2 /* selectionStart */
        start local 2 // int selectionStart
         4: .line 1739
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 3 /* selectionEnd */
        start local 3 // int selectionEnd
         5: .line 1740
            iconst_m1
            istore 4 /* candStart */
        start local 4 // int candStart
         6: .line 1741
            iconst_m1
            istore 5 /* candEnd */
        start local 5 // int candEnd
         7: .line 1742
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            instanceof android.text.Spannable
            ifeq 11
         8: .line 1743
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            astore 6 /* sp */
        start local 6 // android.text.Spannable sp
         9: .line 1744
            aload 6 /* sp */
            invokestatic com.android.internal.widget.EditableInputConnection.getComposingSpanStart:(Landroid/text/Spannable;)I
            istore 4 /* candStart */
        10: .line 1745
            aload 6 /* sp */
            invokestatic com.android.internal.widget.EditableInputConnection.getComposingSpanEnd:(Landroid/text/Spannable;)I
            istore 5 /* candEnd */
        end local 6 // android.text.Spannable sp
        11: .line 1749
      StackMap locals: android.widget.Editor android.view.inputmethod.InputMethodManager int int int int
      StackMap stack:
            aload 1 /* imm */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
        12: .line 1750
            iload 2 /* selectionStart */
            iload 3 /* selectionEnd */
            iload 4 /* candStart */
            iload 5 /* candEnd */
        13: .line 1749
            invokevirtual android.view.inputmethod.InputMethodManager.updateSelection:(Landroid/view/View;IIII)V
        end local 5 // int candEnd
        end local 4 // int candStart
        end local 3 // int selectionEnd
        end local 2 // int selectionStart
        end local 1 // android.view.inputmethod.InputMethodManager imm
        14: .line 1753
      StackMap locals: android.widget.Editor
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Landroid/widget/Editor;
            2   14     1             imm  Landroid/view/inputmethod/InputMethodManager;
            4   14     2  selectionStart  I
            5   14     3    selectionEnd  I
            6   14     4       candStart  I
            7   14     5         candEnd  I
            9   11     6              sp  Landroid/text/Spannable;

  void onDraw(android.graphics.Canvas, android.text.Layout, android.graphics.Path, android.graphics.Paint, int);
    descriptor: (Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // android.text.Layout layout
        start local 3 // android.graphics.Path highlight
        start local 4 // android.graphics.Paint highlightPaint
        start local 5 // int cursorOffsetVertical
         0: .line 1757
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 6 /* selectionStart */
        start local 6 // int selectionStart
         1: .line 1758
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 7 /* selectionEnd */
        start local 7 // int selectionEnd
         2: .line 1760
            aload 0 /* this */
            getfield android.widget.Editor.mInputMethodState:Landroid/widget/Editor$InputMethodState;
            astore 8 /* ims */
        start local 8 // android.widget.Editor$InputMethodState ims
         3: .line 1761
            aload 8 /* ims */
            ifnull 9
            aload 8 /* ims */
            getfield android.widget.Editor$InputMethodState.mBatchEditNesting:I
            ifne 9
         4: .line 1762
            invokestatic android.view.inputmethod.InputMethodManager.peekInstance:()Landroid/view/inputmethod/InputMethodManager;
            astore 9 /* imm */
        start local 9 // android.view.inputmethod.InputMethodManager imm
         5: .line 1763
            aload 9 /* imm */
            ifnull 9
         6: .line 1764
            aload 9 /* imm */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.view.inputmethod.InputMethodManager.isActive:(Landroid/view/View;)Z
            ifeq 9
         7: .line 1765
            aload 8 /* ims */
            getfield android.widget.Editor$InputMethodState.mContentChanged:Z
            ifne 8
            aload 8 /* ims */
            getfield android.widget.Editor$InputMethodState.mSelectionModeChanged:Z
            ifeq 9
         8: .line 1769
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int int int android.widget.Editor$InputMethodState android.view.inputmethod.InputMethodManager
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.reportExtractedText:()Z
            pop
        end local 9 // android.view.inputmethod.InputMethodManager imm
         9: .line 1775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
            ifnull 11
        10: .line 1776
            aload 0 /* this */
            getfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
            aload 1 /* canvas */
            iload 5 /* cursorOffsetVertical */
            invokevirtual android.widget.Editor$CorrectionHighlighter.draw:(Landroid/graphics/Canvas;I)V
        11: .line 1779
      StackMap locals:
      StackMap stack:
            aload 3 /* highlight */
            ifnull 14
            iload 6 /* selectionStart */
            iload 7 /* selectionEnd */
            if_icmpne 14
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            ifnull 14
        12: .line 1780
            aload 0 /* this */
            aload 1 /* canvas */
            iload 5 /* cursorOffsetVertical */
            invokevirtual android.widget.Editor.drawCursor:(Landroid/graphics/Canvas;I)V
        13: .line 1783
            aconst_null
            astore 3 /* highlight */
        14: .line 1786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
            ifnull 18
        15: .line 1787
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
            aload 1 /* canvas */
            invokevirtual android.widget.SelectionActionModeHelper.onDraw:(Landroid/graphics/Canvas;)V
        16: .line 1788
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
            invokevirtual android.widget.SelectionActionModeHelper.isDrawingHighlight:()Z
            ifeq 18
        17: .line 1789
            aconst_null
            astore 3 /* highlight */
        18: .line 1793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.canHaveDisplayList:()Z
            ifeq 23
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.isHardwareAccelerated:()Z
            ifeq 23
        19: .line 1794
            aload 0 /* this */
            aload 1 /* canvas */
            aload 2 /* layout */
            aload 3 /* highlight */
            aload 4 /* highlightPaint */
        20: .line 1795
            iload 5 /* cursorOffsetVertical */
        21: .line 1794
            invokevirtual android.widget.Editor.drawHardwareAccelerated:(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
        22: .line 1796
            goto 24
        23: .line 1797
      StackMap locals:
      StackMap stack:
            aload 2 /* layout */
            aload 1 /* canvas */
            aload 3 /* highlight */
            aload 4 /* highlightPaint */
            iload 5 /* cursorOffsetVertical */
            invokevirtual android.text.Layout.draw:(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
        24: .line 1799
      StackMap locals:
      StackMap stack:
            return
        end local 8 // android.widget.Editor$InputMethodState ims
        end local 7 // int selectionEnd
        end local 6 // int selectionStart
        end local 5 // int cursorOffsetVertical
        end local 4 // android.graphics.Paint highlightPaint
        end local 3 // android.graphics.Path highlight
        end local 2 // android.text.Layout layout
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   25     0                  this  Landroid/widget/Editor;
            0   25     1                canvas  Landroid/graphics/Canvas;
            0   25     2                layout  Landroid/text/Layout;
            0   25     3             highlight  Landroid/graphics/Path;
            0   25     4        highlightPaint  Landroid/graphics/Paint;
            0   25     5  cursorOffsetVertical  I
            1   25     6        selectionStart  I
            2   25     7          selectionEnd  I
            3   25     8                   ims  Landroid/widget/Editor$InputMethodState;
            5    9     9                   imm  Landroid/view/inputmethod/InputMethodManager;
    MethodParameters:
                      Name  Flags
      canvas                
      layout                
      highlight             
      highlightPaint        
      cursorOffsetVertical  

  private void drawHardwareAccelerated(android.graphics.Canvas, android.text.Layout, android.graphics.Path, android.graphics.Paint, int);
    descriptor: (Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=22, args_size=6
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // android.text.Layout layout
        start local 3 // android.graphics.Path highlight
        start local 4 // android.graphics.Paint highlightPaint
        start local 5 // int cursorOffsetVertical
         0: .line 1803
            aload 2 /* layout */
            aload 1 /* canvas */
            invokevirtual android.text.Layout.getLineRangeForDraw:(Landroid/graphics/Canvas;)J
            lstore 6 /* lineRange */
        start local 6 // long lineRange
         1: .line 1804
            lload 6 /* lineRange */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 8 /* firstLine */
        start local 8 // int firstLine
         2: .line 1805
            lload 6 /* lineRange */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 9 /* lastLine */
        start local 9 // int lastLine
         3: .line 1806
            iload 9 /* lastLine */
            ifge 4
            return
         4: .line 1808
      StackMap locals: long int int
      StackMap stack:
            aload 2 /* layout */
            aload 1 /* canvas */
            aload 3 /* highlight */
            aload 4 /* highlightPaint */
            iload 5 /* cursorOffsetVertical */
         5: .line 1809
            iload 8 /* firstLine */
            iload 9 /* lastLine */
         6: .line 1808
            invokevirtual android.text.Layout.drawBackground:(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
         7: .line 1811
            aload 2 /* layout */
            instanceof android.text.DynamicLayout
            ifeq 66
         8: .line 1812
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            ifnonnull 10
         9: .line 1813
            aload 0 /* this */
            ldc Landroid/widget/Editor$TextRenderNode;
            invokestatic com.android.internal.util.ArrayUtils.emptyArray:(Ljava/lang/Class;)[Ljava/lang/Object;
            checkcast android.widget.Editor$TextRenderNode[]
            putfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
        10: .line 1816
      StackMap locals:
      StackMap stack:
            aload 2 /* layout */
            checkcast android.text.DynamicLayout
            astore 10 /* dynamicLayout */
        start local 10 // android.text.DynamicLayout dynamicLayout
        11: .line 1817
            aload 10 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getBlockEndLines:()[I
            astore 11 /* blockEndLines */
        start local 11 // int[] blockEndLines
        12: .line 1818
            aload 10 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getBlockIndices:()[I
            astore 12 /* blockIndices */
        start local 12 // int[] blockIndices
        13: .line 1819
            aload 10 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getNumberOfBlocks:()I
            istore 13 /* numberOfBlocks */
        start local 13 // int numberOfBlocks
        14: .line 1820
            aload 10 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getIndexFirstChangedBlock:()I
            istore 14 /* indexFirstChangedBlock */
        start local 14 // int indexFirstChangedBlock
        15: .line 1822
            aload 10 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getBlocksAlwaysNeedToBeRedrawn:()Landroid/util/ArraySet;
            astore 15 /* blockSet */
        start local 15 // android.util.ArraySet blockSet
        16: .line 1823
            aload 15 /* blockSet */
            ifnull 25
        17: .line 1824
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        18: goto 24
        19: .line 1825
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int long int int android.text.DynamicLayout int[] int[] int int android.util.ArraySet int
      StackMap stack:
            aload 10 /* dynamicLayout */
            aload 15 /* blockSet */
            iload 16 /* i */
            invokevirtual android.util.ArraySet.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual android.text.DynamicLayout.getBlockIndex:(I)I
            istore 17 /* blockIndex */
        start local 17 // int blockIndex
        20: .line 1826
            iload 17 /* blockIndex */
            iconst_m1
            if_icmpeq 23
        21: .line 1827
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 17 /* blockIndex */
            aaload
            ifnull 23
        22: .line 1828
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 17 /* blockIndex */
            aaload
            iconst_1
            putfield android.widget.Editor$TextRenderNode.needsToBeShifted:Z
        end local 17 // int blockIndex
        23: .line 1824
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 16 /* i */
            aload 15 /* blockSet */
            invokevirtual android.util.ArraySet.size:()I
            if_icmplt 19
        end local 16 // int i
        25: .line 1833
      StackMap locals:
      StackMap stack:
            aload 11 /* blockEndLines */
            iconst_0
            iload 13 /* numberOfBlocks */
            iload 8 /* firstLine */
            invokestatic java.util.Arrays.binarySearch:([IIII)I
            istore 16 /* startBlock */
        start local 16 // int startBlock
        26: .line 1834
            iload 16 /* startBlock */
            ifge 28
        27: .line 1835
            iload 16 /* startBlock */
            iconst_1
            iadd
            ineg
            istore 16 /* startBlock */
        28: .line 1837
      StackMap locals: int
      StackMap stack:
            iload 14 /* indexFirstChangedBlock */
            iload 16 /* startBlock */
            invokestatic java.lang.Math.min:(II)I
            istore 16 /* startBlock */
        29: .line 1839
            iconst_0
            istore 17 /* startIndexToFindAvailableRenderNode */
        start local 17 // int startIndexToFindAvailableRenderNode
        30: .line 1840
            iload 13 /* numberOfBlocks */
            istore 18 /* lastIndex */
        start local 18 // int lastIndex
        31: .line 1842
            iload 16 /* startBlock */
            istore 19 /* i */
        start local 19 // int i
        32: goto 48
        33: .line 1843
      StackMap locals: int int int
      StackMap stack:
            aload 12 /* blockIndices */
            iload 19 /* i */
            iaload
            istore 20 /* blockIndex */
        start local 20 // int blockIndex
        34: .line 1844
            iload 19 /* i */
            iload 14 /* indexFirstChangedBlock */
            if_icmplt 38
        35: .line 1845
            iload 20 /* blockIndex */
            iconst_m1
            if_icmpeq 38
        36: .line 1846
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 20 /* blockIndex */
            aaload
            ifnull 38
        37: .line 1847
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 20 /* blockIndex */
            aaload
            iconst_1
            putfield android.widget.Editor$TextRenderNode.needsToBeShifted:Z
        38: .line 1849
      StackMap locals: int
      StackMap stack:
            aload 11 /* blockEndLines */
            iload 19 /* i */
            iaload
            iload 8 /* firstLine */
            if_icmpge 40
        39: .line 1852
            goto 47
        40: .line 1854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* canvas */
            aload 2 /* layout */
        41: .line 1855
            aload 3 /* highlight */
            aload 4 /* highlightPaint */
            iload 5 /* cursorOffsetVertical */
            aload 11 /* blockEndLines */
        42: .line 1856
            aload 12 /* blockIndices */
            iload 19 /* i */
            iload 13 /* numberOfBlocks */
            iload 17 /* startIndexToFindAvailableRenderNode */
        43: .line 1854
            invokevirtual android.widget.Editor.drawHardwareAcceleratedInner:(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
            istore 17 /* startIndexToFindAvailableRenderNode */
        44: .line 1857
            aload 11 /* blockEndLines */
            iload 19 /* i */
            iaload
            iload 9 /* lastLine */
            if_icmplt 47
        45: .line 1858
            iload 14 /* indexFirstChangedBlock */
            iload 19 /* i */
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            istore 18 /* lastIndex */
        46: .line 1859
            goto 49
        end local 20 // int blockIndex
        47: .line 1842
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 19 /* i */
            iload 13 /* numberOfBlocks */
            if_icmplt 33
        end local 19 // int i
        49: .line 1862
      StackMap locals:
      StackMap stack:
            aload 15 /* blockSet */
            ifnull 64
        50: .line 1863
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        51: goto 63
        52: .line 1864
      StackMap locals: int
      StackMap stack:
            aload 15 /* blockSet */
            iload 19 /* i */
            invokevirtual android.util.ArraySet.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 20 /* block */
        start local 20 // int block
        53: .line 1865
            aload 10 /* dynamicLayout */
            iload 20 /* block */
            invokevirtual android.text.DynamicLayout.getBlockIndex:(I)I
            istore 21 /* blockIndex */
        start local 21 // int blockIndex
        54: .line 1866
            iload 21 /* blockIndex */
            iconst_m1
            if_icmpeq 57
        55: .line 1867
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 21 /* blockIndex */
            aaload
            ifnull 57
        56: .line 1868
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 21 /* blockIndex */
            aaload
            getfield android.widget.Editor$TextRenderNode.needsToBeShifted:Z
            ifeq 62
        57: .line 1869
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* canvas */
        58: .line 1870
            aload 2 /* layout */
            aload 3 /* highlight */
            aload 4 /* highlightPaint */
            iload 5 /* cursorOffsetVertical */
        59: .line 1871
            aload 11 /* blockEndLines */
            aload 12 /* blockIndices */
            iload 20 /* block */
            iload 13 /* numberOfBlocks */
        60: .line 1872
            iload 17 /* startIndexToFindAvailableRenderNode */
        61: .line 1869
            invokevirtual android.widget.Editor.drawHardwareAcceleratedInner:(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
            istore 17 /* startIndexToFindAvailableRenderNode */
        end local 21 // int blockIndex
        end local 20 // int block
        62: .line 1863
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 19 /* i */
            aload 15 /* blockSet */
            invokevirtual android.util.ArraySet.size:()I
            if_icmplt 52
        end local 19 // int i
        64: .line 1877
      StackMap locals:
      StackMap stack:
            aload 10 /* dynamicLayout */
            iload 18 /* lastIndex */
            invokevirtual android.text.DynamicLayout.setIndexFirstChangedBlock:(I)V
        end local 18 // int lastIndex
        end local 17 // int startIndexToFindAvailableRenderNode
        end local 16 // int startBlock
        end local 15 // android.util.ArraySet blockSet
        end local 14 // int indexFirstChangedBlock
        end local 13 // int numberOfBlocks
        end local 12 // int[] blockIndices
        end local 11 // int[] blockEndLines
        end local 10 // android.text.DynamicLayout dynamicLayout
        65: .line 1878
            goto 67
        66: .line 1880
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int long int int
      StackMap stack:
            aload 2 /* layout */
            aload 1 /* canvas */
            iload 8 /* firstLine */
            iload 9 /* lastLine */
            invokevirtual android.text.Layout.drawText:(Landroid/graphics/Canvas;II)V
        67: .line 1882
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int lastLine
        end local 8 // int firstLine
        end local 6 // long lineRange
        end local 5 // int cursorOffsetVertical
        end local 4 // android.graphics.Paint highlightPaint
        end local 3 // android.graphics.Path highlight
        end local 2 // android.text.Layout layout
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0   68     0                                 this  Landroid/widget/Editor;
            0   68     1                               canvas  Landroid/graphics/Canvas;
            0   68     2                               layout  Landroid/text/Layout;
            0   68     3                            highlight  Landroid/graphics/Path;
            0   68     4                       highlightPaint  Landroid/graphics/Paint;
            0   68     5                 cursorOffsetVertical  I
            1   68     6                            lineRange  J
            2   68     8                            firstLine  I
            3   68     9                             lastLine  I
           11   65    10                        dynamicLayout  Landroid/text/DynamicLayout;
           12   65    11                        blockEndLines  [I
           13   65    12                         blockIndices  [I
           14   65    13                       numberOfBlocks  I
           15   65    14               indexFirstChangedBlock  I
           16   65    15                             blockSet  Landroid/util/ArraySet<Ljava/lang/Integer;>;
           18   25    16                                    i  I
           20   23    17                           blockIndex  I
           26   65    16                           startBlock  I
           30   65    17  startIndexToFindAvailableRenderNode  I
           31   65    18                            lastIndex  I
           32   49    19                                    i  I
           34   47    20                           blockIndex  I
           51   64    19                                    i  I
           53   62    20                                block  I
           54   62    21                           blockIndex  I
    MethodParameters:
                      Name  Flags
      canvas                
      layout                
      highlight             
      highlightPaint        
      cursorOffsetVertical  

  private int drawHardwareAcceleratedInner(android.graphics.Canvas, android.text.Layout, android.graphics.Path, android.graphics.Paint, int, int[], int[], int, int, int);
    descriptor: (Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=24, args_size=11
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // android.text.Layout layout
        start local 3 // android.graphics.Path highlight
        start local 4 // android.graphics.Paint highlightPaint
        start local 5 // int cursorOffsetVertical
        start local 6 // int[] blockEndLines
        start local 7 // int[] blockIndices
        start local 8 // int blockInfoIndex
        start local 9 // int numberOfBlocks
        start local 10 // int startIndexToFindAvailableRenderNode
         0: .line 1888
            aload 6 /* blockEndLines */
            iload 8 /* blockInfoIndex */
            iaload
            istore 11 /* blockEndLine */
        start local 11 // int blockEndLine
         1: .line 1889
            aload 7 /* blockIndices */
            iload 8 /* blockInfoIndex */
            iaload
            istore 12 /* blockIndex */
        start local 12 // int blockIndex
         2: .line 1891
            iload 12 /* blockIndex */
            iconst_m1
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 13 /* blockIsInvalid */
        start local 13 // boolean blockIsInvalid
         5: .line 1892
            iload 13 /* blockIsInvalid */
            ifeq 13
         6: .line 1893
            aload 0 /* this */
            aload 7 /* blockIndices */
            iload 9 /* numberOfBlocks */
         7: .line 1894
            iload 10 /* startIndexToFindAvailableRenderNode */
         8: .line 1893
            invokevirtual android.widget.Editor.getAvailableDisplayListIndex:([III)I
            istore 12 /* blockIndex */
         9: .line 1896
            aload 7 /* blockIndices */
            iload 8 /* blockInfoIndex */
            iload 12 /* blockIndex */
            iastore
        10: .line 1897
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            ifnull 12
        11: .line 1898
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            iconst_1
            putfield android.widget.Editor$TextRenderNode.isDirty:Z
        12: .line 1900
      StackMap locals: int
      StackMap stack:
            iload 12 /* blockIndex */
            iconst_1
            iadd
            istore 10 /* startIndexToFindAvailableRenderNode */
        13: .line 1903
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            ifnonnull 15
        14: .line 1904
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            new android.widget.Editor$TextRenderNode
            dup
            new java.lang.StringBuilder
            dup
            ldc "Text "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 12 /* blockIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial android.widget.Editor$TextRenderNode.<init>:(Ljava/lang/String;)V
            aastore
        15: .line 1907
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            invokevirtual android.widget.Editor$TextRenderNode.needsRecord:()Z
            istore 14 /* blockDisplayListIsInvalid */
        start local 14 // boolean blockDisplayListIsInvalid
        16: .line 1908
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            getfield android.widget.Editor$TextRenderNode.renderNode:Landroid/view/RenderNode;
            astore 15 /* blockDisplayList */
        start local 15 // android.view.RenderNode blockDisplayList
        17: .line 1909
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            getfield android.widget.Editor$TextRenderNode.needsToBeShifted:Z
            ifne 18
            iload 14 /* blockDisplayListIsInvalid */
            ifeq 53
        18: .line 1910
      StackMap locals: int android.view.RenderNode
      StackMap stack:
            iload 8 /* blockInfoIndex */
            ifne 20
        19: .line 1911
            iconst_0
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 6 /* blockEndLines */
            iload 8 /* blockInfoIndex */
            iconst_1
            isub
            iaload
            iconst_1
            iadd
        21: .line 1910
      StackMap locals:
      StackMap stack: int
            istore 16 /* blockBeginLine */
        start local 16 // int blockBeginLine
        22: .line 1912
            aload 2 /* layout */
            iload 16 /* blockBeginLine */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 17 /* top */
        start local 17 // int top
        23: .line 1913
            aload 2 /* layout */
            iload 11 /* blockEndLine */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            istore 18 /* bottom */
        start local 18 // int bottom
        24: .line 1914
            iconst_0
            istore 19 /* left */
        start local 19 // int left
        25: .line 1915
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getWidth:()I
            istore 20 /* right */
        start local 20 // int right
        26: .line 1916
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getHorizontallyScrolling:()Z
            ifeq 37
        27: .line 1917
            ldc 3.4028235E38
            fstore 21 /* min */
        start local 21 // float min
        28: .line 1918
            ldc 1.4E-45
            fstore 22 /* max */
        start local 22 // float max
        29: .line 1919
            iload 16 /* blockBeginLine */
            istore 23 /* line */
        start local 23 // int line
        30: goto 34
        31: .line 1920
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int int[] int[] int int int int int int int android.view.RenderNode int int int int int float float int
      StackMap stack:
            fload 21 /* min */
            aload 2 /* layout */
            iload 23 /* line */
            invokevirtual android.text.Layout.getLineLeft:(I)F
            invokestatic java.lang.Math.min:(FF)F
            fstore 21 /* min */
        32: .line 1921
            fload 22 /* max */
            aload 2 /* layout */
            iload 23 /* line */
            invokevirtual android.text.Layout.getLineRight:(I)F
            invokestatic java.lang.Math.max:(FF)F
            fstore 22 /* max */
        33: .line 1919
            iinc 23 /* line */ 1
      StackMap locals:
      StackMap stack:
        34: iload 23 /* line */
            iload 11 /* blockEndLine */
            if_icmple 31
        end local 23 // int line
        35: .line 1923
            fload 21 /* min */
            f2i
            istore 19 /* left */
        36: .line 1924
            fload 22 /* max */
            ldc 0.5
            fadd
            f2i
            istore 20 /* right */
        end local 22 // float max
        end local 21 // float min
        37: .line 1928
      StackMap locals:
      StackMap stack:
            iload 14 /* blockDisplayListIsInvalid */
            ifeq 51
        38: .line 1929
            aload 15 /* blockDisplayList */
        39: .line 1930
            iload 20 /* right */
            iload 19 /* left */
            isub
            iload 18 /* bottom */
            iload 17 /* top */
            isub
        40: .line 1929
            invokevirtual android.view.RenderNode.start:(II)Landroid/view/DisplayListCanvas;
            astore 21 /* displayListCanvas */
        start local 21 // android.view.DisplayListCanvas displayListCanvas
        41: .line 1934
            aload 21 /* displayListCanvas */
            iload 19 /* left */
            ineg
            i2f
            iload 17 /* top */
            ineg
            i2f
            invokevirtual android.view.DisplayListCanvas.translate:(FF)V
        42: .line 1935
            aload 2 /* layout */
            aload 21 /* displayListCanvas */
            iload 16 /* blockBeginLine */
            iload 11 /* blockEndLine */
            invokevirtual android.text.Layout.drawText:(Landroid/graphics/Canvas;II)V
        43: .line 1936
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            iconst_0
            putfield android.widget.Editor$TextRenderNode.isDirty:Z
        44: .line 1939
            goto 49
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int int[] int[] int int int int int int int android.view.RenderNode int int int int int android.view.DisplayListCanvas
      StackMap stack: java.lang.Throwable
        45: astore 22
        46: .line 1940
            aload 15 /* blockDisplayList */
            aload 21 /* displayListCanvas */
            invokevirtual android.view.RenderNode.end:(Landroid/view/DisplayListCanvas;)V
        47: .line 1942
            aload 15 /* blockDisplayList */
            iconst_0
            invokevirtual android.view.RenderNode.setClipToBounds:(Z)Z
            pop
        48: .line 1943
            aload 22
            athrow
        49: .line 1940
      StackMap locals:
      StackMap stack:
            aload 15 /* blockDisplayList */
            aload 21 /* displayListCanvas */
            invokevirtual android.view.RenderNode.end:(Landroid/view/DisplayListCanvas;)V
        50: .line 1942
            aload 15 /* blockDisplayList */
            iconst_0
            invokevirtual android.view.RenderNode.setClipToBounds:(Z)Z
            pop
        end local 21 // android.view.DisplayListCanvas displayListCanvas
        51: .line 1947
      StackMap locals:
      StackMap stack:
            aload 15 /* blockDisplayList */
            iload 19 /* left */
            iload 17 /* top */
            iload 20 /* right */
            iload 18 /* bottom */
            invokevirtual android.view.RenderNode.setLeftTopRightBottom:(IIII)Z
            pop
        52: .line 1948
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 12 /* blockIndex */
            aaload
            iconst_0
            putfield android.widget.Editor$TextRenderNode.needsToBeShifted:Z
        end local 20 // int right
        end local 19 // int left
        end local 18 // int bottom
        end local 17 // int top
        end local 16 // int blockBeginLine
        53: .line 1950
      StackMap locals: android.widget.Editor android.graphics.Canvas android.text.Layout android.graphics.Path android.graphics.Paint int int[] int[] int int int int int int int android.view.RenderNode
      StackMap stack:
            aload 1 /* canvas */
            checkcast android.view.DisplayListCanvas
            aload 15 /* blockDisplayList */
            invokevirtual android.view.DisplayListCanvas.drawRenderNode:(Landroid/view/RenderNode;)V
        54: .line 1951
            iload 10 /* startIndexToFindAvailableRenderNode */
            ireturn
        end local 15 // android.view.RenderNode blockDisplayList
        end local 14 // boolean blockDisplayListIsInvalid
        end local 13 // boolean blockIsInvalid
        end local 12 // int blockIndex
        end local 11 // int blockEndLine
        end local 10 // int startIndexToFindAvailableRenderNode
        end local 9 // int numberOfBlocks
        end local 8 // int blockInfoIndex
        end local 7 // int[] blockIndices
        end local 6 // int[] blockEndLines
        end local 5 // int cursorOffsetVertical
        end local 4 // android.graphics.Paint highlightPaint
        end local 3 // android.graphics.Path highlight
        end local 2 // android.text.Layout layout
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                                 Name  Signature
            0   55     0                                 this  Landroid/widget/Editor;
            0   55     1                               canvas  Landroid/graphics/Canvas;
            0   55     2                               layout  Landroid/text/Layout;
            0   55     3                            highlight  Landroid/graphics/Path;
            0   55     4                       highlightPaint  Landroid/graphics/Paint;
            0   55     5                 cursorOffsetVertical  I
            0   55     6                        blockEndLines  [I
            0   55     7                         blockIndices  [I
            0   55     8                       blockInfoIndex  I
            0   55     9                       numberOfBlocks  I
            0   55    10  startIndexToFindAvailableRenderNode  I
            1   55    11                         blockEndLine  I
            2   55    12                           blockIndex  I
            5   55    13                       blockIsInvalid  Z
           16   55    14            blockDisplayListIsInvalid  Z
           17   55    15                     blockDisplayList  Landroid/view/RenderNode;
           22   53    16                       blockBeginLine  I
           23   53    17                                  top  I
           24   53    18                               bottom  I
           25   53    19                                 left  I
           26   53    20                                right  I
           28   37    21                                  min  F
           29   37    22                                  max  F
           30   35    23                                 line  I
           41   51    21                    displayListCanvas  Landroid/view/DisplayListCanvas;
      Exception table:
        from    to  target  type
          41    45      45  any
    MethodParameters:
                                     Name  Flags
      canvas                               
      layout                               
      highlight                            
      highlightPaint                       
      cursorOffsetVertical                 
      blockEndLines                        
      blockIndices                         
      blockInfoIndex                       
      numberOfBlocks                       
      startIndexToFindAvailableRenderNode  

  private int getAvailableDisplayListIndex(int[], int, int);
    descriptor: ([III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // int[] blockIndices
        start local 2 // int numberOfBlocks
        start local 3 // int searchStartIndex
         0: .line 1956
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            arraylength
            istore 4 /* length */
        start local 4 // int length
         1: .line 1957
            iload 3 /* searchStartIndex */
            istore 5 /* i */
        start local 5 // int i
         2: goto 14
         3: .line 1958
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 6 /* blockIndexFound */
        start local 6 // boolean blockIndexFound
         4: .line 1959
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 10
         6: .line 1960
      StackMap locals: int int
      StackMap stack:
            aload 1 /* blockIndices */
            iload 7 /* j */
            iaload
            iload 5 /* i */
            if_icmpne 9
         7: .line 1961
            iconst_1
            istore 6 /* blockIndexFound */
         8: .line 1962
            goto 11
         9: .line 1959
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* j */
            iload 2 /* numberOfBlocks */
            if_icmplt 6
        end local 7 // int j
        11: .line 1965
      StackMap locals:
      StackMap stack:
            iload 6 /* blockIndexFound */
            ifeq 12
            goto 13
        12: .line 1966
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            ireturn
        end local 6 // boolean blockIndexFound
        13: .line 1957
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            iload 4 /* length */
            if_icmplt 3
        end local 5 // int i
        15: .line 1970
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 4 /* length */
            aconst_null
            invokestatic com.android.internal.util.GrowingArrayUtils.append:([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;
            checkcast android.widget.Editor$TextRenderNode[]
            putfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
        16: .line 1971
            iload 4 /* length */
            ireturn
        end local 4 // int length
        end local 3 // int searchStartIndex
        end local 2 // int numberOfBlocks
        end local 1 // int[] blockIndices
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Landroid/widget/Editor;
            0   17     1      blockIndices  [I
            0   17     2    numberOfBlocks  I
            0   17     3  searchStartIndex  I
            1   17     4            length  I
            2   15     5                 i  I
            4   13     6   blockIndexFound  Z
            5   11     7                 j  I
    MethodParameters:
                  Name  Flags
      blockIndices      
      numberOfBlocks    
      searchStartIndex  

  private void drawCursor(android.graphics.Canvas, int);
    descriptor: (Landroid/graphics/Canvas;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // int cursorOffsetVertical
         0: .line 1975
            iload 2 /* cursorOffsetVertical */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* translate */
        start local 3 // boolean translate
         3: .line 1976
            iload 3 /* translate */
            ifeq 4
            aload 1 /* canvas */
            fconst_0
            iload 2 /* cursorOffsetVertical */
            i2f
            invokevirtual android.graphics.Canvas.translate:(FF)V
         4: .line 1977
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            ifnull 6
         5: .line 1978
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            aload 1 /* canvas */
            invokevirtual android.graphics.drawable.Drawable.draw:(Landroid/graphics/Canvas;)V
         6: .line 1980
      StackMap locals:
      StackMap stack:
            iload 3 /* translate */
            ifeq 7
            aload 1 /* canvas */
            fconst_0
            iload 2 /* cursorOffsetVertical */
            ineg
            i2f
            invokevirtual android.graphics.Canvas.translate:(FF)V
         7: .line 1981
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean translate
        end local 2 // int cursorOffsetVertical
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Landroid/widget/Editor;
            0    8     1                canvas  Landroid/graphics/Canvas;
            0    8     2  cursorOffsetVertical  I
            3    8     3             translate  Z
    MethodParameters:
                      Name  Flags
      canvas                
      cursorOffsetVertical  

  void invalidateHandlesAndActionMode();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 1984
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnull 2
         1: .line 1985
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.widget.Editor$SelectionModifierCursorController.invalidateHandles:()V
         2: .line 1987
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 4
         3: .line 1988
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.invalidateHandle:()V
         4: .line 1990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 6
         5: .line 1991
            aload 0 /* this */
            invokevirtual android.widget.Editor.invalidateActionMode:()V
         6: .line 1993
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/widget/Editor;

  void invalidateTextDisplayList(android.text.Layout, int, int);
    descriptor: (Landroid/text/Layout;II)V
    flags: (0x0000) 
    Code:
      stack=2, locals=12, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // android.text.Layout layout
        start local 2 // int start
        start local 3 // int end
         0: .line 1999
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            ifnull 19
            aload 1 /* layout */
            instanceof android.text.DynamicLayout
            ifeq 19
         1: .line 2000
            aload 1 /* layout */
            iload 2 /* start */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* firstLine */
        start local 4 // int firstLine
         2: .line 2001
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 5 /* lastLine */
        start local 5 // int lastLine
         3: .line 2003
            aload 1 /* layout */
            checkcast android.text.DynamicLayout
            astore 6 /* dynamicLayout */
        start local 6 // android.text.DynamicLayout dynamicLayout
         4: .line 2004
            aload 6 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getBlockEndLines:()[I
            astore 7 /* blockEndLines */
        start local 7 // int[] blockEndLines
         5: .line 2005
            aload 6 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getBlockIndices:()[I
            astore 8 /* blockIndices */
        start local 8 // int[] blockIndices
         6: .line 2006
            aload 6 /* dynamicLayout */
            invokevirtual android.text.DynamicLayout.getNumberOfBlocks:()I
            istore 9 /* numberOfBlocks */
        start local 9 // int numberOfBlocks
         7: .line 2008
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         8: .line 2010
            goto 11
         9: .line 2011
      StackMap locals: android.widget.Editor android.text.Layout int int int int android.text.DynamicLayout int[] int[] int int
      StackMap stack:
            aload 7 /* blockEndLines */
            iload 10 /* i */
            iaload
            iload 4 /* firstLine */
            if_icmplt 10
            goto 18
        10: .line 2012
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        11: .line 2010
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            iload 9 /* numberOfBlocks */
            if_icmplt 9
        12: .line 2016
            goto 18
        13: .line 2017
      StackMap locals:
      StackMap stack:
            aload 8 /* blockIndices */
            iload 10 /* i */
            iaload
            istore 11 /* blockIndex */
        start local 11 // int blockIndex
        14: .line 2018
            iload 11 /* blockIndex */
            iconst_m1
            if_icmpeq 16
        15: .line 2019
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 11 /* blockIndex */
            aaload
            iconst_1
            putfield android.widget.Editor$TextRenderNode.isDirty:Z
        16: .line 2021
      StackMap locals: int
      StackMap stack:
            aload 7 /* blockEndLines */
            iload 10 /* i */
            iaload
            iload 5 /* lastLine */
            if_icmplt 17
            goto 19
        17: .line 2022
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        end local 11 // int blockIndex
        18: .line 2016
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            iload 9 /* numberOfBlocks */
            if_icmplt 13
        end local 10 // int i
        end local 9 // int numberOfBlocks
        end local 8 // int[] blockIndices
        end local 7 // int[] blockEndLines
        end local 6 // android.text.DynamicLayout dynamicLayout
        end local 5 // int lastLine
        end local 4 // int firstLine
        19: .line 2025
      StackMap locals: android.widget.Editor android.text.Layout int int
      StackMap stack:
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Landroid/widget/Editor;
            0   20     1          layout  Landroid/text/Layout;
            0   20     2           start  I
            0   20     3             end  I
            2   19     4       firstLine  I
            3   19     5        lastLine  I
            4   19     6   dynamicLayout  Landroid/text/DynamicLayout;
            5   19     7   blockEndLines  [I
            6   19     8    blockIndices  [I
            7   19     9  numberOfBlocks  I
            8   19    10               i  I
           14   18    11      blockIndex  I
    MethodParameters:
        Name  Flags
      layout  
      start   
      end     

  void invalidateTextDisplayList();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2028
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            ifnull 6
         1: .line 2029
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 2030
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 1 /* i */
            aaload
            ifnull 4
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            iload 1 /* i */
            aaload
            iconst_1
            putfield android.widget.Editor$TextRenderNode.isDirty:Z
         4: .line 2029
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* this */
            getfield android.widget.Editor.mTextRenderNodes:[Landroid/widget/Editor$TextRenderNode;
            arraylength
            if_icmplt 3
        end local 1 // int i
         6: .line 2033
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/widget/Editor;
            2    6     1     i  I

  void updateCursorPosition();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2036
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            getfield android.widget.TextView.mCursorDrawableRes:I
            ifne 3
         1: .line 2037
            aload 0 /* this */
            aconst_null
            putfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
         2: .line 2038
            return
         3: .line 2041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            astore 1 /* layout */
        start local 1 // android.text.Layout layout
         4: .line 2042
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 2 /* offset */
        start local 2 // int offset
         5: .line 2043
            aload 1 /* layout */
            iload 2 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         6: .line 2044
            aload 1 /* layout */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 4 /* top */
        start local 4 // int top
         7: .line 2045
            aload 1 /* layout */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineBottomWithoutSpacing:(I)I
            istore 5 /* bottom */
        start local 5 // int bottom
         8: .line 2047
            aload 1 /* layout */
            iload 3 /* line */
            invokevirtual android.text.Layout.shouldClampCursor:(I)Z
            istore 6 /* clamped */
        start local 6 // boolean clamped
         9: .line 2048
            aload 0 /* this */
            iload 4 /* top */
            iload 5 /* bottom */
            aload 1 /* layout */
            iload 2 /* offset */
            iload 6 /* clamped */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(IZ)F
            invokevirtual android.widget.Editor.updateCursorPosition:(IIF)V
        10: .line 2049
            return
        end local 6 // boolean clamped
        end local 5 // int bottom
        end local 4 // int top
        end local 3 // int line
        end local 2 // int offset
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Landroid/widget/Editor;
            4   11     1   layout  Landroid/text/Layout;
            5   11     2   offset  I
            6   11     3     line  I
            7   11     4      top  I
            8   11     5   bottom  I
            9   11     6  clamped  Z

  void refreshTextActionMode();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2052
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifeq 3
         1: .line 2053
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
         2: .line 2054
            return
         3: .line 2056
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            istore 1 /* hasSelection */
        start local 1 // boolean hasSelection
         4: .line 2057
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
            astore 2 /* selectionController */
        start local 2 // android.widget.Editor$SelectionModifierCursorController selectionController
         5: .line 2058
            aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
            astore 3 /* insertionController */
        start local 3 // android.widget.Editor$InsertionPointCursorController insertionController
         6: .line 2059
            aload 2 /* selectionController */
            ifnull 7
            aload 2 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.isCursorBeingModified:()Z
            ifne 8
         7: .line 2060
      StackMap locals: int android.widget.Editor$SelectionModifierCursorController android.widget.Editor$InsertionPointCursorController
      StackMap stack:
            aload 3 /* insertionController */
            ifnull 10
            aload 3 /* insertionController */
            invokevirtual android.widget.Editor$InsertionPointCursorController.isCursorBeingModified:()Z
            ifeq 10
         8: .line 2062
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
         9: .line 2063
            return
        10: .line 2065
      StackMap locals:
      StackMap stack:
            iload 1 /* hasSelection */
            ifeq 22
        11: .line 2066
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideInsertionPointCursorController:()V
        12: .line 2067
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnonnull 16
        13: .line 2068
            aload 0 /* this */
            getfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
            ifeq 27
        14: .line 2071
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.Editor.startSelectionActionModeAsync:(Z)V
        15: .line 2073
            goto 27
      StackMap locals:
      StackMap stack:
        16: aload 2 /* selectionController */
            ifnull 17
            aload 2 /* selectionController */
            invokevirtual android.widget.Editor$SelectionModifierCursorController.isActive:()Z
            ifne 20
        17: .line 2075
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
        18: .line 2076
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.Editor.startSelectionActionModeAsync:(Z)V
        19: .line 2077
            goto 27
        20: .line 2078
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            invokevirtual android.view.ActionMode.invalidateContentRect:()V
        21: .line 2080
            goto 27
        22: .line 2083
      StackMap locals:
      StackMap stack:
            aload 3 /* insertionController */
            ifnull 23
            aload 3 /* insertionController */
            invokevirtual android.widget.Editor$InsertionPointCursorController.isActive:()Z
            ifne 25
        23: .line 2084
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
        24: .line 2085
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 27
        26: .line 2086
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            invokevirtual android.view.ActionMode.invalidateContentRect:()V
        27: .line 2089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
        28: .line 2090
            return
        end local 3 // android.widget.Editor$InsertionPointCursorController insertionController
        end local 2 // android.widget.Editor$SelectionModifierCursorController selectionController
        end local 1 // boolean hasSelection
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   29     0                 this  Landroid/widget/Editor;
            4   29     1         hasSelection  Z
            5   29     2  selectionController  Landroid/widget/Editor$SelectionModifierCursorController;
            6   29     3  insertionController  Landroid/widget/Editor$InsertionPointCursorController;

  void startInsertionActionMode();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2096
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            ifnull 2
         1: .line 2097
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         2: .line 2099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifeq 4
         3: .line 2100
            return
         4: .line 2102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
         5: .line 2105
            new android.widget.Editor$TextActionModeCallback
            dup
            aload 0 /* this */
            iconst_1
            invokespecial android.widget.Editor$TextActionModeCallback.<init>:(Landroid/widget/Editor;I)V
         6: .line 2104
            astore 1 /* actionModeCallback */
        start local 1 // android.view.ActionMode$Callback actionModeCallback
         7: .line 2106
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
         8: .line 2107
            aload 1 /* actionModeCallback */
            iconst_1
         9: .line 2106
            invokevirtual android.widget.TextView.startActionMode:(Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
            putfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
        10: .line 2108
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 12
            aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
            ifnull 12
        11: .line 2109
            aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.show:()V
        12: .line 2111
      StackMap locals: android.view.ActionMode$Callback
      StackMap stack:
            return
        end local 1 // android.view.ActionMode$Callback actionModeCallback
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Landroid/widget/Editor;
            7   13     1  actionModeCallback  Landroid/view/ActionMode$Callback;

  android.widget.TextView getTextView();
    descriptor: ()Landroid/widget/TextView;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2115
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  android.view.ActionMode getTextActionMode();
    descriptor: ()Landroid/view/ActionMode;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2120
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  void setRestartActionModeOnNextRefresh(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // boolean value
         0: .line 2124
            aload 0 /* this */
            iload 1 /* value */
            putfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
         1: .line 2125
            return
        end local 1 // boolean value
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/widget/Editor;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  void startSelectionActionModeAsync(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // boolean adjustSelection
         0: .line 2131
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
            iload 1 /* adjustSelection */
            invokevirtual android.widget.SelectionActionModeHelper.startSelectionActionModeAsync:(Z)V
         1: .line 2132
            return
        end local 1 // boolean adjustSelection
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Landroid/widget/Editor;
            0    2     1  adjustSelection  Z
    MethodParameters:
                 Name  Flags
      adjustSelection  

  void startLinkActionModeAsync(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // int start
        start local 2 // int end
         0: .line 2135
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            instanceof android.text.Spannable
            ifne 2
         1: .line 2136
            return
         2: .line 2138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
         3: .line 2139
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mRequestingLinkActionMode:Z
         4: .line 2140
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.widget.SelectionActionModeHelper.startLinkActionModeAsync:(II)V
         5: .line 2141
            return
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/widget/Editor;
            0    6     1  start  I
            0    6     2    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  void invalidateActionModeAsync();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2147
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
            invokevirtual android.widget.SelectionActionModeHelper.invalidateActionModeAsync:()V
         1: .line 2148
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/Editor;

  private void invalidateActionMode();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2154
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 2
         1: .line 2155
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            invokevirtual android.view.ActionMode.invalidate:()V
         2: .line 2157
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private android.widget.SelectionActionModeHelper getSelectionActionModeHelper();
    descriptor: ()Landroid/widget/SelectionActionModeHelper;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2160
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
            ifnonnull 2
         1: .line 2161
            aload 0 /* this */
            new android.widget.SelectionActionModeHelper
            dup
            aload 0 /* this */
            invokespecial android.widget.SelectionActionModeHelper.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
         2: .line 2163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionActionModeHelper:Landroid/widget/SelectionActionModeHelper;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private boolean selectCurrentWordAndStartDrag();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2173
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            ifnull 2
         1: .line 2174
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         2: .line 2176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifeq 4
         3: .line 2177
            iconst_0
            ireturn
         4: .line 2179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.checkField:()Z
            ifne 6
         5: .line 2180
            iconst_0
            ireturn
         6: .line 2182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifne 8
            aload 0 /* this */
            invokevirtual android.widget.Editor.selectCurrentWord:()Z
            ifne 8
         7: .line 2184
            iconst_0
            ireturn
         8: .line 2186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionModeWithPreservingSelection:()V
         9: .line 2187
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionController:()Landroid/widget/Editor$SelectionModifierCursorController;
        10: .line 2188
            iconst_2
        11: .line 2187
            invokevirtual android.widget.Editor$SelectionModifierCursorController.enterDrag:(I)V
        12: .line 2189
            iconst_1
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Landroid/widget/Editor;

  boolean checkField();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2198
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.canSelectText:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.requestFocus:()Z
            ifne 5
         1: .line 2199
      StackMap locals:
      StackMap stack:
            ldc "TextView"
         2: .line 2200
            ldc "TextView does not support text selection. Selection cancelled."
         3: .line 2199
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 2201
            iconst_0
            ireturn
         5: .line 2203
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/Editor;

  boolean startActionModeInternal(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // int actionMode
         0: .line 2207
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifeq 2
         1: .line 2208
            iconst_0
            ireturn
         2: .line 2210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 5
         3: .line 2212
            aload 0 /* this */
            invokevirtual android.widget.Editor.invalidateActionMode:()V
         4: .line 2213
            iconst_0
            ireturn
         5: .line 2216
      StackMap locals:
      StackMap stack:
            iload 1 /* actionMode */
            iconst_2
            if_icmpeq 8
         6: .line 2217
            aload 0 /* this */
            invokevirtual android.widget.Editor.checkField:()Z
            ifeq 7
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.hasSelection:()Z
            ifne 8
         7: .line 2218
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 2221
      StackMap locals:
      StackMap stack:
            new android.widget.Editor$TextActionModeCallback
            dup
            aload 0 /* this */
            iload 1 /* actionMode */
            invokespecial android.widget.Editor$TextActionModeCallback.<init>:(Landroid/widget/Editor;I)V
            astore 2 /* actionModeCallback */
        start local 2 // android.view.ActionMode$Callback actionModeCallback
         9: .line 2222
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 2 /* actionModeCallback */
            iconst_1
            invokevirtual android.widget.TextView.startActionMode:(Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
            putfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
        10: .line 2224
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifne 11
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextSelectable:()Z
            ifne 11
            iconst_0
            goto 12
      StackMap locals: android.view.ActionMode$Callback
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 3 /* selectableText */
        start local 3 // boolean selectableText
        13: .line 2225
            iload 1 /* actionMode */
            iconst_2
            if_icmpne 18
            iload 3 /* selectableText */
            ifne 18
        14: .line 2226
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            instanceof com.android.internal.view.FloatingActionMode
            ifeq 18
        15: .line 2229
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            checkcast com.android.internal.view.FloatingActionMode
            iconst_1
        16: .line 2230
            aload 0 /* this */
            invokedynamic onDismiss(Landroid/widget/Editor;)Landroid/widget/PopupWindow$OnDismissListener;
              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/Editor.lambda$0()V (7)
                  ()V
        17: .line 2229
            invokevirtual com.android.internal.view.FloatingActionMode.setOutsideTouchable:(ZLandroid/widget/PopupWindow$OnDismissListener;)V
        18: .line 2233
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 4 /* selectionStarted */
        start local 4 // boolean selectionStarted
        21: .line 2234
            iload 4 /* selectionStarted */
            ifeq 27
        22: .line 2235
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextEditable:()Z
            ifeq 27
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isTextSelectable:()Z
            ifne 27
        23: .line 2236
            aload 0 /* this */
            getfield android.widget.Editor.mShowSoftInputOnFocus:Z
            ifeq 27
        24: .line 2238
            invokestatic android.view.inputmethod.InputMethodManager.peekInstance:()Landroid/view/inputmethod/InputMethodManager;
            astore 5 /* imm */
        start local 5 // android.view.inputmethod.InputMethodManager imm
        25: .line 2239
            aload 5 /* imm */
            ifnull 27
        26: .line 2240
            aload 5 /* imm */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iconst_0
            aconst_null
            invokevirtual android.view.inputmethod.InputMethodManager.showSoftInput:(Landroid/view/View;ILandroid/os/ResultReceiver;)Z
            pop
        end local 5 // android.view.inputmethod.InputMethodManager imm
        27: .line 2243
      StackMap locals: int
      StackMap stack:
            iload 4 /* selectionStarted */
            ireturn
        end local 4 // boolean selectionStarted
        end local 3 // boolean selectableText
        end local 2 // android.view.ActionMode$Callback actionModeCallback
        end local 1 // int actionMode
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   28     0                this  Landroid/widget/Editor;
            0   28     1          actionMode  I
            9   28     2  actionModeCallback  Landroid/view/ActionMode$Callback;
           13   28     3      selectableText  Z
           21   28     4    selectionStarted  Z
           25   27     5                 imm  Landroid/view/inputmethod/InputMethodManager;
    RuntimeInvisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        android.widget.Editor$TextActionMode()
    RuntimeInvisibleParameterAnnotations: 
      0:
        android.widget.Editor$TextActionMode()
    MethodParameters:
            Name  Flags
      actionMode  

  private boolean extractedTextModeWillBeStarted();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2247
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isInExtractedMode:()Z
            ifne 4
         1: .line 2248
            invokestatic android.view.inputmethod.InputMethodManager.peekInstance:()Landroid/view/inputmethod/InputMethodManager;
            astore 1 /* imm */
        start local 1 // android.view.inputmethod.InputMethodManager imm
         2: .line 2249
            aload 1 /* imm */
            ifnull 3
            aload 1 /* imm */
            invokevirtual android.view.inputmethod.InputMethodManager.isFullscreenMode:()Z
            ifeq 3
            iconst_1
            ireturn
      StackMap locals: android.view.inputmethod.InputMethodManager
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // android.view.inputmethod.InputMethodManager imm
         4: .line 2251
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;
            2    4     1   imm  Landroid/view/inputmethod/InputMethodManager;

  private boolean shouldOfferToShowSuggestions();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2260
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 1 /* text */
        start local 1 // java.lang.CharSequence text
         1: .line 2261
            aload 1 /* text */
            instanceof android.text.Spannable
            ifne 2
            iconst_0
            ireturn
         2: .line 2263
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 1 /* text */
            checkcast android.text.Spannable
            astore 2 /* spannable */
        start local 2 // android.text.Spannable spannable
         3: .line 2264
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 3 /* selectionStart */
        start local 3 // int selectionStart
         4: .line 2265
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 4 /* selectionEnd */
        start local 4 // int selectionEnd
         5: .line 2266
            aload 2 /* spannable */
            iload 3 /* selectionStart */
            iload 4 /* selectionEnd */
         6: .line 2267
            ldc Landroid/text/style/SuggestionSpan;
         7: .line 2266
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 5 /* suggestionSpans */
        start local 5 // android.text.style.SuggestionSpan[] suggestionSpans
         8: .line 2268
            aload 5 /* suggestionSpans */
            arraylength
            ifne 10
         9: .line 2269
            iconst_0
            ireturn
        10: .line 2271
      StackMap locals: android.widget.Editor java.lang.CharSequence android.text.Spannable int int android.text.style.SuggestionSpan[]
      StackMap stack:
            iload 3 /* selectionStart */
            iload 4 /* selectionEnd */
            if_icmpne 18
        11: .line 2273
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: goto 16
        13: .line 2274
      StackMap locals: int
      StackMap stack:
            aload 5 /* suggestionSpans */
            iload 6 /* i */
            aaload
            invokevirtual android.text.style.SuggestionSpan.getSuggestions:()[Ljava/lang/String;
            arraylength
            ifle 15
        14: .line 2275
            iconst_1
            ireturn
        15: .line 2273
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            aload 5 /* suggestionSpans */
            arraylength
            if_icmplt 13
        end local 6 // int i
        17: .line 2278
            iconst_0
            ireturn
        18: .line 2280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            istore 6 /* minSpanStart */
        start local 6 // int minSpanStart
        19: .line 2281
            iconst_0
            istore 7 /* maxSpanEnd */
        start local 7 // int maxSpanEnd
        20: .line 2282
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            istore 8 /* unionOfSpansCoveringSelectionStartStart */
        start local 8 // int unionOfSpansCoveringSelectionStartStart
        21: .line 2283
            iconst_0
            istore 9 /* unionOfSpansCoveringSelectionStartEnd */
        start local 9 // int unionOfSpansCoveringSelectionStartEnd
        22: .line 2284
            iconst_0
            istore 10 /* hasValidSuggestions */
        start local 10 // boolean hasValidSuggestions
        23: .line 2285
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        24: goto 40
        25: .line 2286
      StackMap locals: android.widget.Editor java.lang.CharSequence android.text.Spannable int int android.text.style.SuggestionSpan[] int int int int int int
      StackMap stack:
            aload 2 /* spannable */
            aload 5 /* suggestionSpans */
            iload 11 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            istore 12 /* spanStart */
        start local 12 // int spanStart
        26: .line 2287
            aload 2 /* spannable */
            aload 5 /* suggestionSpans */
            iload 11 /* i */
            aaload
            invokeinterface android.text.Spannable.getSpanEnd:(Ljava/lang/Object;)I
            istore 13 /* spanEnd */
        start local 13 // int spanEnd
        27: .line 2288
            iload 6 /* minSpanStart */
            iload 12 /* spanStart */
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* minSpanStart */
        28: .line 2289
            iload 7 /* maxSpanEnd */
            iload 13 /* spanEnd */
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* maxSpanEnd */
        29: .line 2290
            iload 3 /* selectionStart */
            iload 12 /* spanStart */
            if_icmplt 39
            iload 3 /* selectionStart */
            iload 13 /* spanEnd */
            if_icmple 31
        30: .line 2292
            goto 39
        31: .line 2295
      StackMap locals: int int
      StackMap stack:
            iload 10 /* hasValidSuggestions */
            ifne 33
            aload 5 /* suggestionSpans */
            iload 11 /* i */
            aaload
            invokevirtual android.text.style.SuggestionSpan.getSuggestions:()[Ljava/lang/String;
            arraylength
        32: .line 2294
            ifgt 33
            iconst_0
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_1
      StackMap locals:
      StackMap stack: int
        34: istore 10 /* hasValidSuggestions */
        35: .line 2297
            iload 8 /* unionOfSpansCoveringSelectionStartStart */
            iload 12 /* spanStart */
            invokestatic java.lang.Math.min:(II)I
        36: .line 2296
            istore 8 /* unionOfSpansCoveringSelectionStartStart */
        37: .line 2299
            iload 9 /* unionOfSpansCoveringSelectionStartEnd */
            iload 13 /* spanEnd */
            invokestatic java.lang.Math.max:(II)I
        38: .line 2298
            istore 9 /* unionOfSpansCoveringSelectionStartEnd */
        end local 13 // int spanEnd
        end local 12 // int spanStart
        39: .line 2285
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 11 /* i */
            aload 5 /* suggestionSpans */
            arraylength
            if_icmplt 25
        end local 11 // int i
        41: .line 2301
            iload 10 /* hasValidSuggestions */
            ifne 43
        42: .line 2302
            iconst_0
            ireturn
        43: .line 2304
      StackMap locals:
      StackMap stack:
            iload 8 /* unionOfSpansCoveringSelectionStartStart */
            iload 9 /* unionOfSpansCoveringSelectionStartEnd */
            if_icmplt 45
        44: .line 2306
            iconst_0
            ireturn
        45: .line 2308
      StackMap locals:
      StackMap stack:
            iload 6 /* minSpanStart */
            iload 8 /* unionOfSpansCoveringSelectionStartStart */
            if_icmplt 47
        46: .line 2309
            iload 7 /* maxSpanEnd */
            iload 9 /* unionOfSpansCoveringSelectionStartEnd */
            if_icmple 48
        47: .line 2312
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        48: .line 2314
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 10 // boolean hasValidSuggestions
        end local 9 // int unionOfSpansCoveringSelectionStartEnd
        end local 8 // int unionOfSpansCoveringSelectionStartStart
        end local 7 // int maxSpanEnd
        end local 6 // int minSpanStart
        end local 5 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 4 // int selectionEnd
        end local 3 // int selectionStart
        end local 2 // android.text.Spannable spannable
        end local 1 // java.lang.CharSequence text
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                                     Name  Signature
            0   49     0                                     this  Landroid/widget/Editor;
            1   49     1                                     text  Ljava/lang/CharSequence;
            3   49     2                                spannable  Landroid/text/Spannable;
            4   49     3                           selectionStart  I
            5   49     4                             selectionEnd  I
            8   49     5                          suggestionSpans  [Landroid/text/style/SuggestionSpan;
           12   17     6                                        i  I
           19   49     6                             minSpanStart  I
           20   49     7                               maxSpanEnd  I
           21   49     8  unionOfSpansCoveringSelectionStartStart  I
           22   49     9    unionOfSpansCoveringSelectionStartEnd  I
           23   49    10                      hasValidSuggestions  Z
           24   41    11                                        i  I
           26   39    12                                spanStart  I
           27   39    13                                  spanEnd  I

  private boolean isCursorInsideEasyCorrectionSpan();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2322
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            astore 1 /* spannable */
        start local 1 // android.text.Spannable spannable
         1: .line 2323
            aload 1 /* spannable */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
         2: .line 2324
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            ldc Landroid/text/style/SuggestionSpan;
         3: .line 2323
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 2 /* suggestionSpans */
        start local 2 // android.text.style.SuggestionSpan[] suggestionSpans
         4: .line 2325
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 9
         6: .line 2326
      StackMap locals: android.text.Spannable android.text.style.SuggestionSpan[] int
      StackMap stack:
            aload 2 /* suggestionSpans */
            iload 3 /* i */
            aaload
            invokevirtual android.text.style.SuggestionSpan.getFlags:()I
            iconst_1
            iand
            ifeq 8
         7: .line 2327
            iconst_1
            ireturn
         8: .line 2325
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 2 /* suggestionSpans */
            arraylength
            if_icmplt 6
        end local 3 // int i
        10: .line 2330
            iconst_0
            ireturn
        end local 2 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 1 // android.text.Spannable spannable
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Landroid/widget/Editor;
            1   11     1        spannable  Landroid/text/Spannable;
            4   11     2  suggestionSpans  [Landroid/text/style/SuggestionSpan;
            5   10     3                i  I

  void onTouchUpEvent(android.view.MotionEvent);
    descriptor: (Landroid/view/MotionEvent;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.MotionEvent event
         0: .line 2334
            aload 0 /* this */
            invokevirtual android.widget.Editor.getSelectionActionModeHelper:()Landroid/widget/SelectionActionModeHelper;
         1: .line 2335
            aload 0 /* this */
            invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getX:()F
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getY:()F
            invokevirtual android.widget.TextView.getOffsetForPosition:(FF)I
         2: .line 2334
            invokevirtual android.widget.SelectionActionModeHelper.resetSelection:(I)Z
         3: .line 2335
            ifeq 5
         4: .line 2336
            return
         5: .line 2339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectAllOnFocus:Z
            ifeq 6
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.didTouchFocusSelect:()Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 2 /* selectAllGotFocus */
        start local 2 // boolean selectAllGotFocus
         8: .line 2340
            aload 0 /* this */
            invokevirtual android.widget.Editor.hideCursorAndSpanControllers:()V
         9: .line 2341
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
        10: .line 2342
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            astore 3 /* text */
        start local 3 // java.lang.CharSequence text
        11: .line 2343
            iload 2 /* selectAllGotFocus */
            ifne 34
            aload 3 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            ifle 34
        12: .line 2345
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getX:()F
            aload 1 /* event */
            invokevirtual android.view.MotionEvent.getY:()F
            invokevirtual android.widget.TextView.getOffsetForPosition:(FF)I
            istore 4 /* offset */
        start local 4 // int offset
        13: .line 2347
            aload 0 /* this */
            getfield android.widget.Editor.mRequestingLinkActionMode:Z
            ifeq 14
            iconst_0
            goto 15
      StackMap locals: int java.lang.CharSequence int
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 5 /* shouldInsertCursor */
        start local 5 // boolean shouldInsertCursor
        16: .line 2348
            iload 5 /* shouldInsertCursor */
            ifeq 20
        17: .line 2349
            aload 3 /* text */
            checkcast android.text.Spannable
            iload 4 /* offset */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        18: .line 2350
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            ifnull 20
        19: .line 2352
            aload 0 /* this */
            getfield android.widget.Editor.mSpellChecker:Landroid/widget/SpellChecker;
            invokevirtual android.widget.SpellChecker.onSelectionChanged:()V
        20: .line 2356
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.extractedTextModeWillBeStarted:()Z
            ifne 34
        21: .line 2357
            aload 0 /* this */
            invokevirtual android.widget.Editor.isCursorInsideEasyCorrectionSpan:()Z
            ifeq 29
        22: .line 2359
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            ifnull 24
        23: .line 2360
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionActionModeRunnable:Ljava/lang/Runnable;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
        24: .line 2363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic run(Landroid/widget/Editor;)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/Editor.replace()V (5)
                  ()V
            putfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
        25: .line 2366
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mShowSuggestionRunnable:Ljava/lang/Runnable;
        26: .line 2367
            invokestatic android.view.ViewConfiguration.getDoubleTapTimeout:()I
            i2l
        27: .line 2366
            invokevirtual android.widget.TextView.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
        28: .line 2368
            goto 34
      StackMap locals:
      StackMap stack:
        29: aload 0 /* this */
            invokevirtual android.widget.Editor.hasInsertionController:()Z
            ifeq 34
        30: .line 2369
            iload 5 /* shouldInsertCursor */
            ifeq 33
        31: .line 2370
            aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.show:()V
        32: .line 2371
            goto 34
        33: .line 2372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor.getInsertionController:()Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.widget.Editor$InsertionPointCursorController.hide:()V
        end local 5 // boolean shouldInsertCursor
        end local 4 // int offset
        34: .line 2377
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.CharSequence text
        end local 2 // boolean selectAllGotFocus
        end local 1 // android.view.MotionEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   35     0                this  Landroid/widget/Editor;
            0   35     1               event  Landroid/view/MotionEvent;
            8   35     2   selectAllGotFocus  Z
           11   35     3                text  Ljava/lang/CharSequence;
           13   34     4              offset  I
           16   34     5  shouldInsertCursor  Z
    MethodParameters:
       Name  Flags
      event  

  protected void stopTextActionMode();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2380
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 2
         1: .line 2382
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            invokevirtual android.view.ActionMode.finish:()V
         2: .line 2384
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;

  private void stopTextActionModeWithPreservingSelection();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2387
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 2
         1: .line 2388
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mRestartActionModeOnNextRefresh:Z
         2: .line 2390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.widget.Editor.mPreserveSelection:Z
         3: .line 2391
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
         4: .line 2392
            aload 0 /* this */
            iconst_0
            putfield android.widget.Editor.mPreserveSelection:Z
         5: .line 2393
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/widget/Editor;

  boolean hasInsertionController();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2399
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionControllerEnabled:Z
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  boolean hasSelectionController();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2406
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionControllerEnabled:Z
            ireturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;

  private android.widget.Editor$InsertionPointCursorController getInsertionController();
    descriptor: ()Landroid/widget/Editor$InsertionPointCursorController;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2410
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionControllerEnabled:Z
            ifne 2
         1: .line 2411
            aconst_null
            areturn
         2: .line 2414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            ifnonnull 6
         3: .line 2415
            aload 0 /* this */
            new android.widget.Editor$InsertionPointCursorController
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$InsertionPointCursorController.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
         4: .line 2417
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 1 /* observer */
        start local 1 // android.view.ViewTreeObserver observer
         5: .line 2418
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            invokevirtual android.view.ViewTreeObserver.addOnTouchModeChangeListener:(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
        end local 1 // android.view.ViewTreeObserver observer
         6: .line 2421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mInsertionPointCursorController:Landroid/widget/Editor$InsertionPointCursorController;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/widget/Editor;
            5    6     1  observer  Landroid/view/ViewTreeObserver;

  android.widget.Editor$SelectionModifierCursorController getSelectionController();
    descriptor: ()Landroid/widget/Editor$SelectionModifierCursorController;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2426
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionControllerEnabled:Z
            ifne 2
         1: .line 2427
            aconst_null
            areturn
         2: .line 2430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            ifnonnull 6
         3: .line 2431
            aload 0 /* this */
            new android.widget.Editor$SelectionModifierCursorController
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$SelectionModifierCursorController.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
         4: .line 2433
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 1 /* observer */
        start local 1 // android.view.ViewTreeObserver observer
         5: .line 2434
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            invokevirtual android.view.ViewTreeObserver.addOnTouchModeChangeListener:(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
        end local 1 // android.view.ViewTreeObserver observer
         6: .line 2437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSelectionModifierCursorController:Landroid/widget/Editor$SelectionModifierCursorController;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/widget/Editor;
            5    6     1  observer  Landroid/view/ViewTreeObserver;

  public android.graphics.drawable.Drawable getCursorDrawable();
    descriptor: ()Landroid/graphics/drawable/Drawable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2443
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()

  private void updateCursorPosition(int, int, float);
    descriptor: (IIF)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // int top
        start local 2 // int bottom
        start local 3 // float horizontal
         0: .line 2447
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            ifnonnull 4
         1: .line 2448
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
         2: .line 2449
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            getfield android.widget.TextView.mCursorDrawableRes:I
         3: .line 2448
            invokevirtual android.content.Context.getDrawable:(I)Landroid/graphics/drawable/Drawable;
            putfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
         4: .line 2451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            fload 3 /* horizontal */
            invokevirtual android.widget.Editor.clampHorizontalPosition:(Landroid/graphics/drawable/Drawable;F)I
            istore 4 /* left */
        start local 4 // int left
         5: .line 2452
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            invokevirtual android.graphics.drawable.Drawable.getIntrinsicWidth:()I
            istore 5 /* width */
        start local 5 // int width
         6: .line 2453
            aload 0 /* this */
            getfield android.widget.Editor.mDrawableForCursor:Landroid/graphics/drawable/Drawable;
            iload 4 /* left */
            iload 1 /* top */
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            isub
            iload 4 /* left */
            iload 5 /* width */
            iadd
         7: .line 2454
            iload 2 /* bottom */
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.bottom:I
            iadd
         8: .line 2453
            invokevirtual android.graphics.drawable.Drawable.setBounds:(IIII)V
         9: .line 2455
            return
        end local 5 // int width
        end local 4 // int left
        end local 3 // float horizontal
        end local 2 // int bottom
        end local 1 // int top
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Landroid/widget/Editor;
            0   10     1         top  I
            0   10     2      bottom  I
            0   10     3  horizontal  F
            5   10     4        left  I
            6   10     5       width  I
    MethodParameters:
            Name  Flags
      top         
      bottom      
      horizontal  

  private int clampHorizontalPosition(android.graphics.drawable.Drawable, float);
    descriptor: (Landroid/graphics/drawable/Drawable;F)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // android.graphics.drawable.Drawable drawable
        start local 2 // float horizontal
         0: .line 2469
            ldc 0.5
            fload 2 /* horizontal */
            ldc 0.5
            fsub
            invokestatic java.lang.Math.max:(FF)F
            fstore 2 /* horizontal */
         1: .line 2470
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            ifnonnull 2
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
         2: .line 2472
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* drawableWidth */
        start local 3 // int drawableWidth
         3: .line 2473
            aload 1 /* drawable */
            ifnull 7
         4: .line 2474
            aload 1 /* drawable */
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.drawable.Drawable.getPadding:(Landroid/graphics/Rect;)Z
            pop
         5: .line 2475
            aload 1 /* drawable */
            invokevirtual android.graphics.drawable.Drawable.getIntrinsicWidth:()I
            istore 3 /* drawableWidth */
         6: .line 2476
            goto 8
         7: .line 2477
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.setEmpty:()V
         8: .line 2480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getScrollX:()I
            istore 4 /* scrollX */
        start local 4 // int scrollX
         9: .line 2481
            fload 2 /* horizontal */
            iload 4 /* scrollX */
            i2f
            fsub
            fstore 5 /* horizontalDiff */
        start local 5 // float horizontalDiff
        10: .line 2482
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getWidth:()I
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getCompoundPaddingLeft:()I
            isub
        11: .line 2483
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getCompoundPaddingRight:()I
        12: .line 2482
            isub
            istore 6 /* viewClippedWidth */
        start local 6 // int viewClippedWidth
        13: .line 2486
            fload 5 /* horizontalDiff */
            iload 6 /* viewClippedWidth */
            i2f
            fconst_1
            fsub
            fcmpl
            iflt 16
        14: .line 2488
            iload 6 /* viewClippedWidth */
            iload 4 /* scrollX */
            iadd
            iload 3 /* drawableWidth */
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.right:I
            isub
            isub
            istore 7 /* left */
        start local 7 // int left
        15: .line 2489
            goto 23
        end local 7 // int left
      StackMap locals: int float int
      StackMap stack:
        16: fload 5 /* horizontalDiff */
            invokestatic java.lang.Math.abs:(F)F
            fconst_1
            fcmpg
            ifle 20
        17: .line 2490
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 22
        18: .line 2491
            ldc 1048576
            iload 4 /* scrollX */
            isub
            i2f
            iload 6 /* viewClippedWidth */
            i2f
            fconst_1
            fadd
            fcmpg
            ifgt 22
        19: .line 2492
            fload 2 /* horizontal */
            fconst_1
            fcmpg
            ifgt 22
        20: .line 2494
      StackMap locals:
      StackMap stack:
            iload 4 /* scrollX */
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            isub
            istore 7 /* left */
        start local 7 // int left
        21: .line 2495
            goto 23
        end local 7 // int left
        22: .line 2496
      StackMap locals:
      StackMap stack:
            fload 2 /* horizontal */
            f2i
            aload 0 /* this */
            getfield android.widget.Editor.mTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            isub
            istore 7 /* left */
        start local 7 // int left
        23: .line 2498
      StackMap locals: int
      StackMap stack:
            iload 7 /* left */
            ireturn
        end local 7 // int left
        end local 6 // int viewClippedWidth
        end local 5 // float horizontalDiff
        end local 4 // int scrollX
        end local 3 // int drawableWidth
        end local 2 // float horizontal
        end local 1 // android.graphics.drawable.Drawable drawable
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Landroid/widget/Editor;
            0   24     1          drawable  Landroid/graphics/drawable/Drawable;
            0   24     2        horizontal  F
            3   24     3     drawableWidth  I
            9   24     4           scrollX  I
           10   24     5    horizontalDiff  F
           13   24     6  viewClippedWidth  I
           15   16     7              left  I
           21   22     7              left  I
           23   24     7              left  I
    MethodParameters:
            Name  Flags
      drawable    final
      horizontal  

  public void onCommitCorrection(android.view.inputmethod.CorrectionInfo);
    descriptor: (Landroid/view/inputmethod/CorrectionInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.inputmethod.CorrectionInfo info
         0: .line 2510
            aload 0 /* this */
            getfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
            ifnonnull 3
         1: .line 2511
            aload 0 /* this */
            new android.widget.Editor$CorrectionHighlighter
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$CorrectionHighlighter.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
         2: .line 2512
            goto 4
         3: .line 2513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
            iconst_0
            invokevirtual android.widget.Editor$CorrectionHighlighter.invalidate:(Z)V
         4: .line 2516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mCorrectionHighlighter:Landroid/widget/Editor$CorrectionHighlighter;
            aload 1 /* info */
            invokevirtual android.widget.Editor$CorrectionHighlighter.highlight:(Landroid/view/inputmethod/CorrectionInfo;)V
         5: .line 2517
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.freezeLastEdit:()V
         6: .line 2518
            return
        end local 1 // android.view.inputmethod.CorrectionInfo info
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/widget/Editor;
            0    7     1  info  Landroid/view/inputmethod/CorrectionInfo;
    MethodParameters:
      Name  Flags
      info  

  void onScrollChanged();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2521
            aload 0 /* this */
            getfield android.widget.Editor.mPositionListener:Landroid/widget/Editor$PositionListener;
            ifnull 2
         1: .line 2522
            aload 0 /* this */
            getfield android.widget.Editor.mPositionListener:Landroid/widget/Editor$PositionListener;
            invokevirtual android.widget.Editor$PositionListener.onScrollChanged:()V
         2: .line 2524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            ifnull 4
         3: .line 2525
            aload 0 /* this */
            getfield android.widget.Editor.mTextActionMode:Landroid/view/ActionMode;
            invokevirtual android.view.ActionMode.invalidateContentRect:()V
         4: .line 2527
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor;

  private boolean shouldBlink();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2533
            aload 0 /* this */
            invokevirtual android.widget.Editor.isCursorVisible:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.isFocused:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 2535
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionStart:()I
            istore 1 /* start */
        start local 1 // int start
         3: .line 2536
            iload 1 /* start */
            ifge 4
            iconst_0
            ireturn
         4: .line 2538
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getSelectionEnd:()I
            istore 2 /* end */
        start local 2 // int end
         5: .line 2539
            iload 2 /* end */
            ifge 6
            iconst_0
            ireturn
         6: .line 2541
      StackMap locals: int
      StackMap stack:
            iload 1 /* start */
            iload 2 /* end */
            if_icmpne 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Landroid/widget/Editor;
            3    8     1  start  I
            5    8     2    end  I

  void makeBlink();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2545
            aload 0 /* this */
            invokevirtual android.widget.Editor.shouldBlink:()Z
            ifeq 6
         1: .line 2546
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.widget.Editor.mShowCursor:J
         2: .line 2547
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnonnull 3
            aload 0 /* this */
            new android.widget.Editor$Blink
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$Blink.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
         3: .line 2548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         4: .line 2549
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ldc 500
            invokevirtual android.widget.TextView.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
         5: .line 2550
            goto 7
         6: .line 2551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            ifnull 7
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mBlink:Landroid/widget/Editor$Blink;
            invokevirtual android.widget.TextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         7: .line 2553
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/widget/Editor;

  private android.view.View$DragShadowBuilder getTextThumbnailBuilder(int, int);
    descriptor: (II)Landroid/view/View$DragShadowBuilder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.widget.Editor this
         0: .line 2588
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.layout cannot be resolved to a variable\n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    MethodParameters:
       Name  Flags
      start  
      end    

  void onDrop(android.view.DragEvent);
    descriptor: (Landroid/view/DragEvent;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=17, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.view.DragEvent event
         0: .line 2628
            new android.text.SpannableStringBuilder
            dup
            invokespecial android.text.SpannableStringBuilder.<init>:()V
            astore 2 /* content */
        start local 2 // android.text.SpannableStringBuilder content
         1: .line 2630
            aload 1 /* event */
            invokestatic android.view.DragAndDropPermissions.obtain:(Landroid/view/DragEvent;)Landroid/view/DragAndDropPermissions;
            astore 3 /* permissions */
        start local 3 // android.view.DragAndDropPermissions permissions
         2: .line 2631
            aload 3 /* permissions */
            ifnull 4
         3: .line 2632
            aload 3 /* permissions */
            invokevirtual android.view.DragAndDropPermissions.takeTransient:()Z
            pop
         4: .line 2636
      StackMap locals: android.text.SpannableStringBuilder android.view.DragAndDropPermissions
      StackMap stack:
            aload 1 /* event */
            invokevirtual android.view.DragEvent.getClipData:()Landroid/content/ClipData;
            astore 4 /* clipData */
        start local 4 // android.content.ClipData clipData
         5: .line 2637
            aload 4 /* clipData */
            invokevirtual android.content.ClipData.getItemCount:()I
            istore 5 /* itemCount */
        start local 5 // int itemCount
         6: .line 2638
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 11
         8: .line 2639
      StackMap locals: android.content.ClipData int int
      StackMap stack:
            aload 4 /* clipData */
            iload 6 /* i */
            invokevirtual android.content.ClipData.getItemAt:(I)Landroid/content/ClipData$Item;
            astore 7 /* item */
        start local 7 // android.content.ClipData$Item item
         9: .line 2640
            aload 2 /* content */
            aload 7 /* item */
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            invokevirtual android.content.ClipData$Item.coerceToStyledText:(Landroid/content/Context;)Ljava/lang/CharSequence;
            invokevirtual android.text.SpannableStringBuilder.append:(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
            pop
        end local 7 // android.content.ClipData$Item item
        10: .line 2638
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iload 5 /* itemCount */
            if_icmplt 8
        end local 6 // int i
        end local 5 // int itemCount
        end local 4 // android.content.ClipData clipData
        12: .line 2642
            goto 17
      StackMap locals: android.widget.Editor android.view.DragEvent android.text.SpannableStringBuilder android.view.DragAndDropPermissions
      StackMap stack: java.lang.Throwable
        13: astore 8
        14: .line 2643
            aload 3 /* permissions */
            ifnull 16
        15: .line 2644
            aload 3 /* permissions */
            invokevirtual android.view.DragAndDropPermissions.release:()V
        16: .line 2646
      StackMap locals: android.widget.Editor android.view.DragEvent android.text.SpannableStringBuilder android.view.DragAndDropPermissions top top top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        17: .line 2643
      StackMap locals: android.widget.Editor android.view.DragEvent android.text.SpannableStringBuilder android.view.DragAndDropPermissions
      StackMap stack:
            aload 3 /* permissions */
            ifnull 19
        18: .line 2644
            aload 3 /* permissions */
            invokevirtual android.view.DragAndDropPermissions.release:()V
        19: .line 2648
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.beginBatchEdit:()V
        20: .line 2649
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.freezeLastEdit:()V
        21: .line 2651
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 1 /* event */
            invokevirtual android.view.DragEvent.getX:()F
            aload 1 /* event */
            invokevirtual android.view.DragEvent.getY:()F
            invokevirtual android.widget.TextView.getOffsetForPosition:(FF)I
            istore 4 /* offset */
        start local 4 // int offset
        22: .line 2652
            aload 1 /* event */
            invokevirtual android.view.DragEvent.getLocalState:()Ljava/lang/Object;
            astore 5 /* localState */
        start local 5 // java.lang.Object localState
        23: .line 2653
            aconst_null
            astore 6 /* dragLocalState */
        start local 6 // android.widget.Editor$DragLocalState dragLocalState
        24: .line 2654
            aload 5 /* localState */
            instanceof android.widget.Editor$DragLocalState
            ifeq 26
        25: .line 2655
            aload 5 /* localState */
            checkcast android.widget.Editor$DragLocalState
            astore 6 /* dragLocalState */
        26: .line 2657
      StackMap locals: int java.lang.Object android.widget.Editor$DragLocalState
      StackMap stack:
            aload 6 /* dragLocalState */
            ifnull 29
        27: .line 2658
            aload 6 /* dragLocalState */
            getfield android.widget.Editor$DragLocalState.sourceTextView:Landroid/widget/TextView;
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            if_acmpne 29
        28: .line 2657
            iconst_1
            goto 30
      StackMap locals:
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: istore 7 /* dragDropIntoItself */
        start local 7 // boolean dragDropIntoItself
        31: .line 2660
            iload 7 /* dragDropIntoItself */
            ifeq 36
        32: .line 2661
            iload 4 /* offset */
            aload 6 /* dragLocalState */
            getfield android.widget.Editor$DragLocalState.start:I
            if_icmplt 36
            iload 4 /* offset */
            aload 6 /* dragLocalState */
            getfield android.widget.Editor$DragLocalState.end:I
            if_icmpge 36
        33: .line 2698
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.endBatchEdit:()V
        34: .line 2699
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.freezeLastEdit:()V
        35: .line 2663
            return
        36: .line 2667
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            istore 8 /* originalLength */
        start local 8 // int originalLength
        37: .line 2668
            iload 4 /* offset */
            istore 9 /* min */
        start local 9 // int min
        38: .line 2669
            iload 4 /* offset */
            istore 10 /* max */
        start local 10 // int max
        39: .line 2671
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Spannable
            iload 10 /* max */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        40: .line 2672
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 9 /* min */
            iload 10 /* max */
            aload 2 /* content */
            invokevirtual android.widget.TextView.replaceText_internal:(IILjava/lang/CharSequence;)V
        41: .line 2674
            iload 7 /* dragDropIntoItself */
            ifeq 60
        42: .line 2675
            aload 6 /* dragLocalState */
            getfield android.widget.Editor$DragLocalState.start:I
            istore 11 /* dragSourceStart */
        start local 11 // int dragSourceStart
        43: .line 2676
            aload 6 /* dragLocalState */
            getfield android.widget.Editor$DragLocalState.end:I
            istore 12 /* dragSourceEnd */
        start local 12 // int dragSourceEnd
        44: .line 2677
            iload 10 /* max */
            iload 11 /* dragSourceStart */
            if_icmpgt 48
        45: .line 2679
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            iload 8 /* originalLength */
            isub
            istore 13 /* shift */
        start local 13 // int shift
        46: .line 2680
            iload 11 /* dragSourceStart */
            iload 13 /* shift */
            iadd
            istore 11 /* dragSourceStart */
        47: .line 2681
            iload 12 /* dragSourceEnd */
            iload 13 /* shift */
            iadd
            istore 12 /* dragSourceEnd */
        end local 13 // int shift
        48: .line 2685
      StackMap locals: android.widget.Editor android.view.DragEvent android.text.SpannableStringBuilder android.view.DragAndDropPermissions int java.lang.Object android.widget.Editor$DragLocalState int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 11 /* dragSourceStart */
            iload 12 /* dragSourceEnd */
            invokevirtual android.widget.TextView.deleteText_internal:(II)V
        49: .line 2688
            iconst_0
            iload 11 /* dragSourceStart */
            iconst_1
            isub
            invokestatic java.lang.Math.max:(II)I
            istore 13 /* prevCharIdx */
        start local 13 // int prevCharIdx
        50: .line 2689
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            iload 11 /* dragSourceStart */
            iconst_1
            iadd
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* nextCharIdx */
        start local 14 // int nextCharIdx
        51: .line 2690
            iload 14 /* nextCharIdx */
            iload 13 /* prevCharIdx */
            iconst_1
            iadd
            if_icmple 60
        52: .line 2691
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 13 /* prevCharIdx */
            iload 14 /* nextCharIdx */
            invokevirtual android.widget.TextView.getTransformedText:(II)Ljava/lang/CharSequence;
            astore 15 /* t */
        start local 15 // java.lang.CharSequence t
        53: .line 2692
            aload 15 /* t */
            iconst_0
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.isSpaceChar:(C)Z
            ifeq 60
            aload 15 /* t */
            iconst_1
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.isSpaceChar:(C)Z
            ifeq 60
        54: .line 2693
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 13 /* prevCharIdx */
            iload 13 /* prevCharIdx */
            iconst_1
            iadd
            invokevirtual android.widget.TextView.deleteText_internal:(II)V
        end local 15 // java.lang.CharSequence t
        end local 14 // int nextCharIdx
        end local 13 // int prevCharIdx
        end local 12 // int dragSourceEnd
        end local 11 // int dragSourceStart
        end local 10 // int max
        end local 9 // int min
        end local 8 // int originalLength
        end local 7 // boolean dragDropIntoItself
        end local 6 // android.widget.Editor$DragLocalState dragLocalState
        end local 5 // java.lang.Object localState
        end local 4 // int offset
        55: .line 2697
            goto 60
      StackMap locals: android.widget.Editor android.view.DragEvent android.text.SpannableStringBuilder android.view.DragAndDropPermissions
      StackMap stack: java.lang.Throwable
        56: astore 16
        57: .line 2698
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.endBatchEdit:()V
        58: .line 2699
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.freezeLastEdit:()V
        59: .line 2700
            aload 16
            athrow
        60: .line 2698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.endBatchEdit:()V
        61: .line 2699
            aload 0 /* this */
            getfield android.widget.Editor.mUndoInputFilter:Landroid/widget/Editor$UndoInputFilter;
            invokevirtual android.widget.Editor$UndoInputFilter.freezeLastEdit:()V
        62: .line 2701
            return
        end local 3 // android.view.DragAndDropPermissions permissions
        end local 2 // android.text.SpannableStringBuilder content
        end local 1 // android.view.DragEvent event
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   63     0                this  Landroid/widget/Editor;
            0   63     1               event  Landroid/view/DragEvent;
            1   63     2             content  Landroid/text/SpannableStringBuilder;
            2   63     3         permissions  Landroid/view/DragAndDropPermissions;
            5   12     4            clipData  Landroid/content/ClipData;
            6   12     5           itemCount  I
            7   12     6                   i  I
            9   10     7                item  Landroid/content/ClipData$Item;
           22   55     4              offset  I
           23   55     5          localState  Ljava/lang/Object;
           24   55     6      dragLocalState  Landroid/widget/Editor$DragLocalState;
           31   55     7  dragDropIntoItself  Z
           37   55     8      originalLength  I
           38   55     9                 min  I
           39   55    10                 max  I
           43   55    11     dragSourceStart  I
           44   55    12       dragSourceEnd  I
           46   48    13               shift  I
           50   55    13         prevCharIdx  I
           51   55    14         nextCharIdx  I
           53   55    15                   t  Ljava/lang/CharSequence;
      Exception table:
        from    to  target  type
           4    13      13  any
          21    33      56  any
          36    56      56  any
    MethodParameters:
       Name  Flags
      event  

  public void addSpanWatchers(android.text.Spannable);
    descriptor: (Landroid/text/Spannable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.text.Spannable text
         0: .line 2704
            aload 1 /* text */
            invokeinterface android.text.Spannable.length:()I
            istore 2 /* textLength */
        start local 2 // int textLength
         1: .line 2706
            aload 0 /* this */
            getfield android.widget.Editor.mKeyListener:Landroid/text/method/KeyListener;
            ifnull 3
         2: .line 2707
            aload 1 /* text */
            aload 0 /* this */
            getfield android.widget.Editor.mKeyListener:Landroid/text/method/KeyListener;
            iconst_0
            iload 2 /* textLength */
            bipush 18
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         3: .line 2710
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mSpanController:Landroid/widget/Editor$SpanController;
            ifnonnull 5
         4: .line 2711
            aload 0 /* this */
            new android.widget.Editor$SpanController
            dup
            aload 0 /* this */
            invokespecial android.widget.Editor$SpanController.<init>:(Landroid/widget/Editor;)V
            putfield android.widget.Editor.mSpanController:Landroid/widget/Editor$SpanController;
         5: .line 2713
      StackMap locals:
      StackMap stack:
            aload 1 /* text */
            aload 0 /* this */
            getfield android.widget.Editor.mSpanController:Landroid/widget/Editor$SpanController;
            iconst_0
            iload 2 /* textLength */
            bipush 18
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         6: .line 2714
            return
        end local 2 // int textLength
        end local 1 // android.text.Spannable text
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Landroid/widget/Editor;
            0    7     1        text  Landroid/text/Spannable;
            1    7     2  textLength  I
    MethodParameters:
      Name  Flags
      text  

  void setContextMenuAnchor(float, float);
    descriptor: (FF)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.widget.Editor this
        start local 1 // float x
        start local 2 // float y
         0: .line 2717
            aload 0 /* this */
            fload 1 /* x */
            putfield android.widget.Editor.mContextMenuAnchorX:F
         1: .line 2718
            aload 0 /* this */
            fload 2 /* y */
            putfield android.widget.Editor.mContextMenuAnchorY:F
         2: .line 2719
            return
        end local 2 // float y
        end local 1 // float x
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/Editor;
            0    3     1     x  F
            0    3     2     y  F
    MethodParameters:
      Name  Flags
      x     
      y     

  void onCreateContextMenu(android.view.ContextMenu);
    descriptor: (Landroid/view/ContextMenu;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.Editor this
         0: .line 2751
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tcom.android.internal.R.string cannot be resolved to a variable\n\tandroid.R.string cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    MethodParameters:
      Name  Flags
      menu  

  private android.text.style.SuggestionSpan findEquivalentSuggestionSpan(android.widget.Editor$SuggestionSpanInfo);
    descriptor: (Landroid/widget/Editor$SuggestionSpanInfo;)Landroid/text/style/SuggestionSpan;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.widget.Editor$SuggestionSpanInfo suggestionSpanInfo
         0: .line 2815
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            astore 2 /* editable */
        start local 2 // android.text.Editable editable
         1: .line 2816
            aload 2 /* editable */
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSuggestionSpan:Landroid/text/style/SuggestionSpan;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            iflt 3
         2: .line 2818
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSuggestionSpan:Landroid/text/style/SuggestionSpan;
            areturn
         3: .line 2822
      StackMap locals: android.text.Editable
      StackMap stack:
            aload 2 /* editable */
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanStart:I
         4: .line 2823
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanEnd:I
            ldc Landroid/text/style/SuggestionSpan;
         5: .line 2822
            invokeinterface android.text.Editable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 3 /* suggestionSpans */
        start local 3 // android.text.style.SuggestionSpan[] suggestionSpans
         6: .line 2824
            aload 3 /* suggestionSpans */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 17
      StackMap locals: android.widget.Editor android.widget.Editor$SuggestionSpanInfo android.text.Editable android.text.style.SuggestionSpan[] top int int android.text.style.SuggestionSpan[]
      StackMap stack:
         7: aload 7
            iload 5
            aaload
            astore 4 /* suggestionSpan */
        start local 4 // android.text.style.SuggestionSpan suggestionSpan
         8: .line 2825
            aload 2 /* editable */
            aload 4 /* suggestionSpan */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 8 /* start */
        start local 8 // int start
         9: .line 2826
            iload 8 /* start */
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanStart:I
            if_icmpeq 11
        10: .line 2827
            goto 16
        11: .line 2829
      StackMap locals: android.widget.Editor android.widget.Editor$SuggestionSpanInfo android.text.Editable android.text.style.SuggestionSpan[] android.text.style.SuggestionSpan int int android.text.style.SuggestionSpan[] int
      StackMap stack:
            aload 2 /* editable */
            aload 4 /* suggestionSpan */
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 9 /* end */
        start local 9 // int end
        12: .line 2830
            iload 9 /* end */
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSpanEnd:I
            if_icmpeq 14
        13: .line 2831
            goto 16
        14: .line 2833
      StackMap locals: int
      StackMap stack:
            aload 4 /* suggestionSpan */
            aload 1 /* suggestionSpanInfo */
            getfield android.widget.Editor$SuggestionSpanInfo.mSuggestionSpan:Landroid/text/style/SuggestionSpan;
            invokevirtual android.text.style.SuggestionSpan.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 2834
            aload 4 /* suggestionSpan */
            areturn
        end local 9 // int end
        end local 8 // int start
        end local 4 // android.text.style.SuggestionSpan suggestionSpan
        16: .line 2824
      StackMap locals: android.widget.Editor android.widget.Editor$SuggestionSpanInfo android.text.Editable android.text.style.SuggestionSpan[] top int int android.text.style.SuggestionSpan[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        17: iload 5
            iload 6
            if_icmplt 7
        18: .line 2837
            aconst_null
            areturn
        end local 3 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 2 // android.text.Editable editable
        end local 1 // android.widget.Editor$SuggestionSpanInfo suggestionSpanInfo
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0                this  Landroid/widget/Editor;
            0   19     1  suggestionSpanInfo  Landroid/widget/Editor$SuggestionSpanInfo;
            1   19     2            editable  Landroid/text/Editable;
            6   19     3     suggestionSpans  [Landroid/text/style/SuggestionSpan;
            8   16     4      suggestionSpan  Landroid/text/style/SuggestionSpan;
            9   16     8               start  I
           12   16     9                 end  I
    MethodParameters:
                    Name  Flags
      suggestionSpanInfo  

  private void replaceWithSuggestion(android.widget.Editor$SuggestionInfo);
    descriptor: (Landroid/widget/Editor$SuggestionInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=18, args_size=2
        start local 0 // android.widget.Editor this
        start local 1 // android.widget.Editor$SuggestionInfo suggestionInfo
         0: .line 2841
            aload 0 /* this */
         1: .line 2842
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionSpanInfo:Landroid/widget/Editor$SuggestionSpanInfo;
         2: .line 2841
            invokevirtual android.widget.Editor.findEquivalentSuggestionSpan:(Landroid/widget/Editor$SuggestionSpanInfo;)Landroid/text/style/SuggestionSpan;
            astore 2 /* targetSuggestionSpan */
        start local 2 // android.text.style.SuggestionSpan targetSuggestionSpan
         3: .line 2843
            aload 2 /* targetSuggestionSpan */
            ifnonnull 5
         4: .line 2845
            return
         5: .line 2847
      StackMap locals: android.text.style.SuggestionSpan
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            astore 3 /* editable */
        start local 3 // android.text.Editable editable
         6: .line 2848
            aload 3 /* editable */
            aload 2 /* targetSuggestionSpan */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 4 /* spanStart */
        start local 4 // int spanStart
         7: .line 2849
            aload 3 /* editable */
            aload 2 /* targetSuggestionSpan */
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 5 /* spanEnd */
        start local 5 // int spanEnd
         8: .line 2850
            iload 4 /* spanStart */
            iflt 9
            iload 5 /* spanEnd */
            iload 4 /* spanStart */
            if_icmpgt 10
         9: .line 2852
      StackMap locals: android.text.Editable int int
      StackMap stack:
            return
        10: .line 2855
      StackMap locals:
      StackMap stack:
            aload 3 /* editable */
            iload 4 /* spanStart */
            iload 5 /* spanEnd */
            invokestatic android.text.TextUtils.substring:(Ljava/lang/CharSequence;II)Ljava/lang/String;
            astore 6 /* originalText */
        start local 6 // java.lang.String originalText
        11: .line 2857
            aload 3 /* editable */
            iload 4 /* spanStart */
            iload 5 /* spanEnd */
        12: .line 2858
            ldc Landroid/text/style/SuggestionSpan;
        13: .line 2857
            invokeinterface android.text.Editable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 7 /* suggestionSpans */
        start local 7 // android.text.style.SuggestionSpan[] suggestionSpans
        14: .line 2859
            aload 7 /* suggestionSpans */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        15: .line 2860
            iload 8 /* length */
            newarray 10
            astore 9 /* suggestionSpansStarts */
        start local 9 // int[] suggestionSpansStarts
        16: .line 2861
            iload 8 /* length */
            newarray 10
            astore 10 /* suggestionSpansEnds */
        start local 10 // int[] suggestionSpansEnds
        17: .line 2862
            iload 8 /* length */
            newarray 10
            astore 11 /* suggestionSpansFlags */
        start local 11 // int[] suggestionSpansFlags
        18: .line 2863
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        19: goto 30
        20: .line 2864
      StackMap locals: android.widget.Editor android.widget.Editor$SuggestionInfo android.text.style.SuggestionSpan android.text.Editable int int java.lang.String android.text.style.SuggestionSpan[] int int[] int[] int[] int
      StackMap stack:
            aload 7 /* suggestionSpans */
            iload 12 /* i */
            aaload
            astore 13 /* suggestionSpan */
        start local 13 // android.text.style.SuggestionSpan suggestionSpan
        21: .line 2865
            aload 9 /* suggestionSpansStarts */
            iload 12 /* i */
            aload 3 /* editable */
            aload 13 /* suggestionSpan */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            iastore
        22: .line 2866
            aload 10 /* suggestionSpansEnds */
            iload 12 /* i */
            aload 3 /* editable */
            aload 13 /* suggestionSpan */
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            iastore
        23: .line 2867
            aload 11 /* suggestionSpansFlags */
            iload 12 /* i */
            aload 3 /* editable */
            aload 13 /* suggestionSpan */
            invokeinterface android.text.Editable.getSpanFlags:(Ljava/lang/Object;)I
            iastore
        24: .line 2870
            aload 13 /* suggestionSpan */
            invokevirtual android.text.style.SuggestionSpan.getFlags:()I
            istore 14 /* suggestionSpanFlags */
        start local 14 // int suggestionSpanFlags
        25: .line 2871
            iload 14 /* suggestionSpanFlags */
            iconst_2
            iand
            ifeq 29
        26: .line 2872
            iload 14 /* suggestionSpanFlags */
            bipush -3
            iand
            istore 14 /* suggestionSpanFlags */
        27: .line 2873
            iload 14 /* suggestionSpanFlags */
            bipush -2
            iand
            istore 14 /* suggestionSpanFlags */
        28: .line 2874
            aload 13 /* suggestionSpan */
            iload 14 /* suggestionSpanFlags */
            invokevirtual android.text.style.SuggestionSpan.setFlags:(I)V
        end local 14 // int suggestionSpanFlags
        end local 13 // android.text.style.SuggestionSpan suggestionSpan
        29: .line 2863
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 12 /* i */
            iload 8 /* length */
            if_icmplt 20
        end local 12 // int i
        31: .line 2879
            aload 2 /* targetSuggestionSpan */
        32: .line 2880
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getContext:()Landroid/content/Context;
            aload 6 /* originalText */
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionIndex:I
        33: .line 2879
            invokevirtual android.text.style.SuggestionSpan.notifySelection:(Landroid/content/Context;Ljava/lang/String;I)V
        34: .line 2883
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionStart:I
            istore 12 /* suggestionStart */
        start local 12 // int suggestionStart
        35: .line 2884
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionEnd:I
            istore 13 /* suggestionEnd */
        start local 13 // int suggestionEnd
        36: .line 2885
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mText:Landroid/text/SpannableStringBuilder;
        37: .line 2886
            iload 12 /* suggestionStart */
            iload 13 /* suggestionEnd */
        38: .line 2885
            invokevirtual android.text.SpannableStringBuilder.subSequence:(II)Ljava/lang/CharSequence;
        39: .line 2886
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
        40: .line 2885
            astore 14 /* suggestion */
        start local 14 // java.lang.String suggestion
        41: .line 2887
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 4 /* spanStart */
            iload 5 /* spanEnd */
            aload 14 /* suggestion */
            invokevirtual android.widget.TextView.replaceText_internal:(IILjava/lang/CharSequence;)V
        42: .line 2889
            aload 2 /* targetSuggestionSpan */
            invokevirtual android.text.style.SuggestionSpan.getSuggestions:()[Ljava/lang/String;
            astore 15 /* suggestions */
        start local 15 // java.lang.String[] suggestions
        43: .line 2890
            aload 15 /* suggestions */
            aload 1 /* suggestionInfo */
            getfield android.widget.Editor$SuggestionInfo.mSuggestionIndex:I
            aload 6 /* originalText */
            aastore
        44: .line 2893
            aload 14 /* suggestion */
            invokevirtual java.lang.String.length:()I
            iload 5 /* spanEnd */
            iload 4 /* spanStart */
            isub
            isub
            istore 16 /* lengthDelta */
        start local 16 // int lengthDelta
        45: .line 2894
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        46: goto 52
        47: .line 2898
      StackMap locals: android.widget.Editor android.widget.Editor$SuggestionInfo android.text.style.SuggestionSpan android.text.Editable int int java.lang.String android.text.style.SuggestionSpan[] int int[] int[] int[] int int java.lang.String java.lang.String[] int int
      StackMap stack:
            aload 9 /* suggestionSpansStarts */
            iload 17 /* i */
            iaload
            iload 4 /* spanStart */
            if_icmpgt 51
            aload 10 /* suggestionSpansEnds */
            iload 17 /* i */
            iaload
            iload 5 /* spanEnd */
            if_icmplt 51
        48: .line 2899
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            aload 7 /* suggestionSpans */
            iload 17 /* i */
            aaload
            aload 9 /* suggestionSpansStarts */
            iload 17 /* i */
            iaload
        49: .line 2900
            aload 10 /* suggestionSpansEnds */
            iload 17 /* i */
            iaload
            iload 16 /* lengthDelta */
            iadd
            aload 11 /* suggestionSpansFlags */
            iload 17 /* i */
            iaload
        50: .line 2899
            invokevirtual android.widget.TextView.setSpan_internal:(Ljava/lang/Object;III)V
        51: .line 2894
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 17 /* i */
            iload 8 /* length */
            if_icmplt 47
        end local 17 // int i
        53: .line 2904
            iload 5 /* spanEnd */
            iload 16 /* lengthDelta */
            iadd
            istore 17 /* newCursorPosition */
        start local 17 // int newCursorPosition
        54: .line 2905
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iload 17 /* newCursorPosition */
            iload 17 /* newCursorPosition */
            invokevirtual android.widget.TextView.setCursorPosition_internal:(II)V
        55: .line 2906
            return
        end local 17 // int newCursorPosition
        end local 16 // int lengthDelta
        end local 15 // java.lang.String[] suggestions
        end local 14 // java.lang.String suggestion
        end local 13 // int suggestionEnd
        end local 12 // int suggestionStart
        end local 11 // int[] suggestionSpansFlags
        end local 10 // int[] suggestionSpansEnds
        end local 9 // int[] suggestionSpansStarts
        end local 8 // int length
        end local 7 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 6 // java.lang.String originalText
        end local 5 // int spanEnd
        end local 4 // int spanStart
        end local 3 // android.text.Editable editable
        end local 2 // android.text.style.SuggestionSpan targetSuggestionSpan
        end local 1 // android.widget.Editor$SuggestionInfo suggestionInfo
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   56     0                   this  Landroid/widget/Editor;
            0   56     1         suggestionInfo  Landroid/widget/Editor$SuggestionInfo;
            3   56     2   targetSuggestionSpan  Landroid/text/style/SuggestionSpan;
            6   56     3               editable  Landroid/text/Editable;
            7   56     4              spanStart  I
            8   56     5                spanEnd  I
           11   56     6           originalText  Ljava/lang/String;
           14   56     7        suggestionSpans  [Landroid/text/style/SuggestionSpan;
           15   56     8                 length  I
           16   56     9  suggestionSpansStarts  [I
           17   56    10    suggestionSpansEnds  [I
           18   56    11   suggestionSpansFlags  [I
           19   31    12                      i  I
           21   29    13         suggestionSpan  Landroid/text/style/SuggestionSpan;
           25   29    14    suggestionSpanFlags  I
           35   56    12        suggestionStart  I
           36   56    13          suggestionEnd  I
           41   56    14             suggestion  Ljava/lang/String;
           43   56    15            suggestions  [Ljava/lang/String;
           45   56    16            lengthDelta  I
           46   53    17                      i  I
           54   56    17      newCursorPosition  I
    MethodParameters:
                Name  Flags
      suggestionInfo  final

  private int getCurrentLineAdjustedForSlop(android.text.Layout, int, float);
    descriptor: (Landroid/text/Layout;IF)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=15, args_size=4
        start local 0 // android.widget.Editor this
        start local 1 // android.text.Layout layout
        start local 2 // int prevLine
        start local 3 // float y
         0: .line 5598
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            fload 3 /* y */
            invokevirtual android.widget.TextView.getLineAtCoordinate:(F)I
            istore 4 /* trueLine */
        start local 4 // int trueLine
         1: .line 5599
            aload 1 /* layout */
            ifnull 3
            iload 2 /* prevLine */
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            if_icmpgt 3
         2: .line 5600
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            ifle 3
            iload 2 /* prevLine */
            ifge 4
         3: .line 5602
      StackMap locals: int
      StackMap stack:
            iload 4 /* trueLine */
            ireturn
         4: .line 5605
      StackMap locals:
      StackMap stack:
            iload 4 /* trueLine */
            iload 2 /* prevLine */
            isub
            invokestatic java.lang.Math.abs:(I)I
            iconst_2
            if_icmplt 6
         5: .line 5607
            iload 4 /* trueLine */
            ireturn
         6: .line 5610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.viewportToContentVerticalOffset:()I
            i2f
            fstore 5 /* verticalOffset */
        start local 5 // float verticalOffset
         7: .line 5611
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            istore 6 /* lineCount */
        start local 6 // int lineCount
         8: .line 5612
            aload 0 /* this */
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLineHeight:()I
            i2f
            ldc 0.5
            fmul
            fstore 7 /* slop */
        start local 7 // float slop
         9: .line 5614
            aload 1 /* layout */
            iconst_0
            invokevirtual android.text.Layout.getLineTop:(I)I
            i2f
            fload 5 /* verticalOffset */
            fadd
            fstore 8 /* firstLineTop */
        start local 8 // float firstLineTop
        10: .line 5615
            aload 1 /* layout */
            iload 2 /* prevLine */
            invokevirtual android.text.Layout.getLineTop:(I)I
            i2f
            fload 5 /* verticalOffset */
            fadd
            fstore 9 /* prevLineTop */
        start local 9 // float prevLineTop
        11: .line 5616
            fload 9 /* prevLineTop */
            fload 7 /* slop */
            fsub
            fload 8 /* firstLineTop */
            fload 7 /* slop */
            fadd
            invokestatic java.lang.Math.max:(FF)F
            fstore 10 /* yTopBound */
        start local 10 // float yTopBound
        12: .line 5618
            aload 1 /* layout */
            iload 6 /* lineCount */
            iconst_1
            isub
            invokevirtual android.text.Layout.getLineBottom:(I)I
            i2f
            fload 5 /* verticalOffset */
            fadd
            fstore 11 /* lastLineBottom */
        start local 11 // float lastLineBottom
        13: .line 5619
            aload 1 /* layout */
            iload 2 /* prevLine */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            i2f
            fload 5 /* verticalOffset */
            fadd
            fstore 12 /* prevLineBottom */
        start local 12 // float prevLineBottom
        14: .line 5620
            fload 12 /* prevLineBottom */
            fload 7 /* slop */
            fadd
            fload 11 /* lastLineBottom */
            fload 7 /* slop */
            fsub
            invokestatic java.lang.Math.min:(FF)F
            fstore 13 /* yBottomBound */
        start local 13 // float yBottomBound
        15: .line 5624
            fload 3 /* y */
            fload 10 /* yTopBound */
            fcmpg
            ifgt 18
        16: .line 5625
            iload 2 /* prevLine */
            iconst_1
            isub
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 14 /* currLine */
        start local 14 // int currLine
        17: .line 5626
            goto 22
        end local 14 // int currLine
      StackMap locals: android.widget.Editor android.text.Layout int float int float int float float float float float float float
      StackMap stack:
        18: fload 3 /* y */
            fload 13 /* yBottomBound */
            fcmpl
            iflt 21
        19: .line 5627
            iload 2 /* prevLine */
            iconst_1
            iadd
            iload 6 /* lineCount */
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* currLine */
        start local 14 // int currLine
        20: .line 5628
            goto 22
        end local 14 // int currLine
        21: .line 5629
      StackMap locals:
      StackMap stack:
            iload 2 /* prevLine */
            istore 14 /* currLine */
        start local 14 // int currLine
        22: .line 5631
      StackMap locals: int
      StackMap stack:
            iload 14 /* currLine */
            ireturn
        end local 14 // int currLine
        end local 13 // float yBottomBound
        end local 12 // float prevLineBottom
        end local 11 // float lastLineBottom
        end local 10 // float yTopBound
        end local 9 // float prevLineTop
        end local 8 // float firstLineTop
        end local 7 // float slop
        end local 6 // int lineCount
        end local 5 // float verticalOffset
        end local 4 // int trueLine
        end local 3 // float y
        end local 2 // int prevLine
        end local 1 // android.text.Layout layout
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Landroid/widget/Editor;
            0   23     1          layout  Landroid/text/Layout;
            0   23     2        prevLine  I
            0   23     3               y  F
            1   23     4        trueLine  I
            7   23     5  verticalOffset  F
            8   23     6       lineCount  I
            9   23     7            slop  F
           10   23     8    firstLineTop  F
           11   23     9     prevLineTop  F
           12   23    10       yTopBound  F
           13   23    11  lastLineBottom  F
           14   23    12  prevLineBottom  F
           15   23    13    yBottomBound  F
           17   18    14        currLine  I
           20   21    14        currLine  I
           22   23    14        currLine  I
    MethodParameters:
          Name  Flags
      layout    
      prevLine  
      y         

  private static boolean isValidRange(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.CharSequence text
        start local 1 // int start
        start local 2 // int end
         0: .line 6324
            iload 1 /* start */
            iflt 1
            iload 1 /* start */
            iload 2 /* end */
            if_icmpgt 1
            iload 2 /* end */
            aload 0 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   text  Ljava/lang/CharSequence;
            0    2     1  start  I
            0    2     2    end  I
    MethodParameters:
       Name  Flags
      text   
      start  
      end    

  public android.widget.Editor$SuggestionsPopupWindow getSuggestionsPopupWindowForTesting();
    descriptor: ()Landroid/widget/Editor$SuggestionsPopupWindow;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 6329
            aload 0 /* this */
            getfield android.widget.Editor.mSuggestionsPopupWindow:Landroid/widget/Editor$SuggestionsPopupWindow;
            areturn
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN, location=[INNER_TYPE]
        com.android.internal.annotations.VisibleForTesting()

  private void lambda$0();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor this
         0: .line 2230
            aload 0 /* this */
            invokevirtual android.widget.Editor.stopTextActionMode:()V
            return
        end local 0 // android.widget.Editor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor;
}
SourceFile: "Editor.java"
NestMembers:
  android.widget.Editor$1  android.widget.Editor$2  android.widget.Editor$3  android.widget.Editor$4  android.widget.Editor$5  android.widget.Editor$Blink  android.widget.Editor$CorrectionHighlighter  android.widget.Editor$CursorAnchorInfoNotifier  android.widget.Editor$CursorController  android.widget.Editor$DragLocalState  android.widget.Editor$EasyEditDeleteListener  android.widget.Editor$EasyEditPopupWindow  android.widget.Editor$EditOperation  android.widget.Editor$EditOperation$1  android.widget.Editor$ErrorPopup  android.widget.Editor$HandleType  android.widget.Editor$HandleView  android.widget.Editor$HandleView$1  android.widget.Editor$InputContentType  android.widget.Editor$InputMethodState  android.widget.Editor$InsertionHandleView  android.widget.Editor$InsertionHandleView$1  android.widget.Editor$InsertionHandleView$2  android.widget.Editor$InsertionPointCursorController  android.widget.Editor$MagnifierHandleTrigger  android.widget.Editor$MagnifierMotionAnimator  android.widget.Editor$PinnedPopupWindow  android.widget.Editor$PositionListener  android.widget.Editor$ProcessTextIntentActionsHandler  android.widget.Editor$SelectionHandleView  android.widget.Editor$SelectionModifierCursorController  android.widget.Editor$SpanController  android.widget.Editor$SpanController$1  android.widget.Editor$SpanController$2  android.widget.Editor$SuggestionHelper  android.widget.Editor$SuggestionHelper$SuggestionSpanComparator  android.widget.Editor$SuggestionInfo  android.widget.Editor$SuggestionSpanInfo  android.widget.Editor$SuggestionsPopupWindow  android.widget.Editor$SuggestionsPopupWindow$1  android.widget.Editor$SuggestionsPopupWindow$2  android.widget.Editor$SuggestionsPopupWindow$CustomPopupWindow  android.widget.Editor$SuggestionsPopupWindow$SuggestionAdapter  android.widget.Editor$TextActionMode  android.widget.Editor$TextActionModeCallback  android.widget.Editor$TextRenderNode  android.widget.Editor$TextViewPositionListener  android.widget.Editor$UndoInputFilter  android.widget.Editor$UndoInputFilter$MergeMode
InnerClasses:
  public Item = android.content.ClipData$Item of android.content.ClipData
  public abstract Callback = android.view.ActionMode$Callback of android.view.ActionMode
  public abstract OnMenuItemClickListener = android.view.MenuItem$OnMenuItemClickListener of android.view.MenuItem
  public DragShadowBuilder = android.view.View$DragShadowBuilder of android.view.View
  public LayoutParams = android.view.ViewGroup$LayoutParams of android.view.ViewGroup
  public abstract OnDrawListener = android.view.ViewTreeObserver$OnDrawListener of android.view.ViewTreeObserver
  public abstract OnTouchModeChangeListener = android.view.ViewTreeObserver$OnTouchModeChangeListener of android.view.ViewTreeObserver
  public LayoutParams = android.view.WindowManager$LayoutParams of android.view.WindowManager
  private Blink = android.widget.Editor$Blink of android.widget.Editor
  private CorrectionHighlighter = android.widget.Editor$CorrectionHighlighter of android.widget.Editor
  private final CursorAnchorInfoNotifier = android.widget.Editor$CursorAnchorInfoNotifier of android.widget.Editor
  private abstract CursorController = android.widget.Editor$CursorController of android.widget.Editor
  private DragLocalState = android.widget.Editor$DragLocalState of android.widget.Editor
  private abstract EasyEditDeleteListener = android.widget.Editor$EasyEditDeleteListener of android.widget.Editor
  private EasyEditPopupWindow = android.widget.Editor$EasyEditPopupWindow of android.widget.Editor
  public EditOperation = android.widget.Editor$EditOperation of android.widget.Editor
  private ErrorPopup = android.widget.Editor$ErrorPopup of android.widget.Editor
  public abstract HandleType = android.widget.Editor$HandleType of android.widget.Editor
  public abstract HandleView = android.widget.Editor$HandleView of android.widget.Editor
  InputContentType = android.widget.Editor$InputContentType of android.widget.Editor
  InputMethodState = android.widget.Editor$InputMethodState of android.widget.Editor
  private InsertionHandleView = android.widget.Editor$InsertionHandleView of android.widget.Editor
  private InsertionPointCursorController = android.widget.Editor$InsertionPointCursorController of android.widget.Editor
  private abstract MagnifierHandleTrigger = android.widget.Editor$MagnifierHandleTrigger of android.widget.Editor
  private MagnifierMotionAnimator = android.widget.Editor$MagnifierMotionAnimator of android.widget.Editor
  private abstract PinnedPopupWindow = android.widget.Editor$PinnedPopupWindow of android.widget.Editor
  private PositionListener = android.widget.Editor$PositionListener of android.widget.Editor
  final ProcessTextIntentActionsHandler = android.widget.Editor$ProcessTextIntentActionsHandler of android.widget.Editor
  public final SelectionHandleView = android.widget.Editor$SelectionHandleView of android.widget.Editor
  SelectionModifierCursorController = android.widget.Editor$SelectionModifierCursorController of android.widget.Editor
  private SpanController = android.widget.Editor$SpanController of android.widget.Editor
  private SuggestionHelper = android.widget.Editor$SuggestionHelper of android.widget.Editor
  private final SuggestionInfo = android.widget.Editor$SuggestionInfo of android.widget.Editor
  private final SuggestionSpanInfo = android.widget.Editor$SuggestionSpanInfo of android.widget.Editor
  public SuggestionsPopupWindow = android.widget.Editor$SuggestionsPopupWindow of android.widget.Editor
  abstract TextActionMode = android.widget.Editor$TextActionMode of android.widget.Editor
  private TextActionModeCallback = android.widget.Editor$TextActionModeCallback of android.widget.Editor
  private TextRenderNode = android.widget.Editor$TextRenderNode of android.widget.Editor
  private abstract TextViewPositionListener = android.widget.Editor$TextViewPositionListener of android.widget.Editor
  public UndoInputFilter = android.widget.Editor$UndoInputFilter of android.widget.Editor
  public abstract OnDismissListener = android.widget.PopupWindow$OnDismissListener of android.widget.PopupWindow
  Drawables = android.widget.TextView$Drawables of android.widget.TextView
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles