abstract class android.widget.Editor$PinnedPopupWindow implements android.widget.Editor$TextViewPositionListener
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: android.widget.Editor$PinnedPopupWindow
  super_class: java.lang.Object
{
  protected android.widget.PopupWindow mPopupWindow;
    descriptor: Landroid/widget/PopupWindow;
    flags: (0x0004) ACC_PROTECTED

  protected android.view.ViewGroup mContentView;
    descriptor: Landroid/view/ViewGroup;
    flags: (0x0004) ACC_PROTECTED

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

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

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

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

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

  protected abstract void createPopupWindow();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void initContentView();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getTextOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int getVerticalLocalPosition(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  protected abstract int clipVertically(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      positionY  

  protected void setUp();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3255
            return
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor$PinnedPopupWindow;

  public void <init>(android.widget.Editor);
    descriptor: (Landroid/widget/Editor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3257
            aload 0 /* this */
            aload 1
            putfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 3262
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.setUp:()V
         2: .line 3264
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.createPopupWindow:()V
         3: .line 3266
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
         4: .line 3267
            sipush 1005
         5: .line 3266
            invokevirtual android.widget.PopupWindow.setWindowLayoutType:(I)V
         6: .line 3268
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            bipush -2
            invokevirtual android.widget.PopupWindow.setWidth:(I)V
         7: .line 3269
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            bipush -2
            invokevirtual android.widget.PopupWindow.setHeight:(I)V
         8: .line 3271
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.initContentView:()V
         9: .line 3273
            new android.view.ViewGroup$LayoutParams
            dup
            bipush -2
        10: .line 3274
            bipush -2
        11: .line 3273
            invokespecial android.view.ViewGroup$LayoutParams.<init>:(II)V
            astore 2 /* wrapContent */
        start local 2 // android.view.ViewGroup$LayoutParams wrapContent
        12: .line 3275
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
            aload 2 /* wrapContent */
            invokevirtual android.view.ViewGroup.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V
        13: .line 3277
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
            invokevirtual android.widget.PopupWindow.setContentView:(Landroid/view/View;)V
        14: .line 3278
            return
        end local 2 // android.view.ViewGroup$LayoutParams wrapContent
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Landroid/widget/Editor$PinnedPopupWindow;
           12   15     2  wrapContent  Landroid/view/ViewGroup$LayoutParams;
    MethodParameters:
        Name  Flags
      this$0  final

  public void show();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3281
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
            aload 0 /* this */
            iconst_0
            invokevirtual android.widget.Editor$PositionListener.addSubscriber:(Landroid/widget/Editor$TextViewPositionListener;Z)V
         1: .line 3283
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.computeLocalPosition:()V
         2: .line 3285
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
            astore 1 /* positionListener */
        start local 1 // android.widget.Editor$PositionListener positionListener
         3: .line 3286
            aload 0 /* this */
            aload 1 /* positionListener */
            invokevirtual android.widget.Editor$PositionListener.getPositionX:()I
            aload 1 /* positionListener */
            invokevirtual android.widget.Editor$PositionListener.getPositionY:()I
            invokevirtual android.widget.Editor$PinnedPopupWindow.updatePosition:(II)V
         4: .line 3287
            return
        end local 1 // android.widget.Editor$PositionListener positionListener
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Landroid/widget/Editor$PinnedPopupWindow;
            3    5     1  positionListener  Landroid/widget/Editor$PositionListener;

  protected void measureContent();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3290
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            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;
            astore 1 /* displayMetrics */
        start local 1 // android.util.DisplayMetrics displayMetrics
         1: .line 3291
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
         2: .line 3292
            aload 1 /* displayMetrics */
            getfield android.util.DisplayMetrics.widthPixels:I
         3: .line 3293
            ldc -2147483648
         4: .line 3292
            invokestatic android.view.View$MeasureSpec.makeMeasureSpec:(II)I
         5: .line 3294
            aload 1 /* displayMetrics */
            getfield android.util.DisplayMetrics.heightPixels:I
         6: .line 3295
            ldc -2147483648
         7: .line 3294
            invokestatic android.view.View$MeasureSpec.makeMeasureSpec:(II)I
         8: .line 3291
            invokevirtual android.view.ViewGroup.measure:(II)V
         9: .line 3296
            return
        end local 1 // android.util.DisplayMetrics displayMetrics
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Landroid/widget/Editor$PinnedPopupWindow;
            1   10     1  displayMetrics  Landroid/util/DisplayMetrics;

  private void computeLocalPosition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3303
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.measureContent:()V
         1: .line 3304
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
            invokevirtual android.view.ViewGroup.getMeasuredWidth:()I
            istore 1 /* width */
        start local 1 // int width
         2: .line 3305
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.getTextOffset:()I
            istore 2 /* offset */
        start local 2 // int offset
         3: .line 3306
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            iload 2 /* offset */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            iload 1 /* width */
            i2f
            fconst_2
            fdiv
            fsub
            f2i
            putfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
         4: .line 3307
            aload 0 /* this */
            dup
            getfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.viewportToContentHorizontalOffset:()I
            iadd
            putfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
         5: .line 3309
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getLayout:()Landroid/text/Layout;
            iload 2 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         6: .line 3310
            aload 0 /* this */
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.widget.Editor$PinnedPopupWindow.getVerticalLocalPosition:(I)I
            putfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
         7: .line 3311
            aload 0 /* this */
            dup
            getfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.viewportToContentVerticalOffset:()I
            iadd
            putfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
         8: .line 3312
            return
        end local 3 // int line
        end local 2 // int offset
        end local 1 // int width
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Landroid/widget/Editor$PinnedPopupWindow;
            2    9     1   width  I
            3    9     2  offset  I
            6    9     3    line  I

  private void updatePosition(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // android.widget.Editor$PinnedPopupWindow this
        start local 1 // int parentPositionX
        start local 2 // int parentPositionY
         0: .line 3315
            iload 1 /* parentPositionX */
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
            iadd
            istore 3 /* positionX */
        start local 3 // int positionX
         1: .line 3316
            iload 2 /* parentPositionY */
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
            iadd
            istore 4 /* positionY */
        start local 4 // int positionY
         2: .line 3318
            aload 0 /* this */
            iload 4 /* positionY */
            invokevirtual android.widget.Editor$PinnedPopupWindow.clipVertically:(I)I
            istore 4 /* positionY */
         3: .line 3321
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            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;
            astore 5 /* displayMetrics */
        start local 5 // android.util.DisplayMetrics displayMetrics
         4: .line 3322
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
            invokevirtual android.view.ViewGroup.getMeasuredWidth:()I
            istore 6 /* width */
        start local 6 // int width
         5: .line 3324
            aload 5 /* displayMetrics */
            getfield android.util.DisplayMetrics.widthPixels:I
            iload 6 /* width */
            isub
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mClippingLimitRight:I
            iadd
            iload 3 /* positionX */
         6: .line 3323
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* positionX */
         7: .line 3325
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mClippingLimitLeft:I
            ineg
            iload 3 /* positionX */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* positionX */
         8: .line 3327
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
            ifeq 11
         9: .line 3328
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            iload 3 /* positionX */
            iload 4 /* positionY */
            iconst_m1
            iconst_m1
            invokevirtual android.widget.PopupWindow.update:(IIII)V
        10: .line 3329
            goto 14
        11: .line 3330
      StackMap locals: android.widget.Editor$PinnedPopupWindow int int int int android.util.DisplayMetrics int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
            iconst_0
        12: .line 3331
            iload 3 /* positionX */
            iload 4 /* positionY */
        13: .line 3330
            invokevirtual android.widget.PopupWindow.showAtLocation:(Landroid/view/View;III)V
        14: .line 3333
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int width
        end local 5 // android.util.DisplayMetrics displayMetrics
        end local 4 // int positionY
        end local 3 // int positionX
        end local 2 // int parentPositionY
        end local 1 // int parentPositionX
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Landroid/widget/Editor$PinnedPopupWindow;
            0   15     1  parentPositionX  I
            0   15     2  parentPositionY  I
            1   15     3        positionX  I
            2   15     4        positionY  I
            4   15     5   displayMetrics  Landroid/util/DisplayMetrics;
            5   15     6            width  I
    MethodParameters:
                 Name  Flags
      parentPositionX  
      parentPositionY  

  public void hide();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3336
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
            ifne 2
         1: .line 3337
            return
         2: .line 3339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            invokevirtual android.widget.PopupWindow.dismiss:()V
         3: .line 3340
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
            aload 0 /* this */
            invokevirtual android.widget.Editor$PositionListener.removeSubscriber:(Landroid/widget/Editor$TextViewPositionListener;)V
         4: .line 3341
            return
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/widget/Editor$PinnedPopupWindow;

  public void updatePosition(int, int, boolean, boolean);
    descriptor: (IIZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.widget.Editor$PinnedPopupWindow this
        start local 1 // int parentPositionX
        start local 2 // int parentPositionY
        start local 3 // boolean parentPositionChanged
        start local 4 // boolean parentScrolled
         0: .line 3347
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
            ifeq 4
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.getTextOffset:()I
            invokevirtual android.widget.Editor.isOffsetVisible:(I)Z
            ifeq 4
         1: .line 3348
            iload 4 /* parentScrolled */
            ifeq 2
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.computeLocalPosition:()V
         2: .line 3349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* parentPositionX */
            iload 2 /* parentPositionY */
            invokevirtual android.widget.Editor$PinnedPopupWindow.updatePosition:(II)V
         3: .line 3350
            goto 5
         4: .line 3351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.Editor$PinnedPopupWindow.hide:()V
         5: .line 3353
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean parentScrolled
        end local 3 // boolean parentPositionChanged
        end local 2 // int parentPositionY
        end local 1 // int parentPositionX
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Landroid/widget/Editor$PinnedPopupWindow;
            0    6     1        parentPositionX  I
            0    6     2        parentPositionY  I
            0    6     3  parentPositionChanged  Z
            0    6     4         parentScrolled  Z
    MethodParameters:
                       Name  Flags
      parentPositionX        
      parentPositionY        
      parentPositionChanged  
      parentScrolled         

  public boolean isShowing();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.Editor$PinnedPopupWindow this
         0: .line 3356
            aload 0 /* this */
            getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
            invokevirtual android.widget.PopupWindow.isShowing:()Z
            ireturn
        end local 0 // android.widget.Editor$PinnedPopupWindow this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/Editor$PinnedPopupWindow;
}
SourceFile: "Editor.java"
NestHost: android.widget.Editor
InnerClasses:
  public MeasureSpec = android.view.View$MeasureSpec of android.view.View
  public LayoutParams = android.view.ViewGroup$LayoutParams of android.view.ViewGroup
  private abstract PinnedPopupWindow = android.widget.Editor$PinnedPopupWindow of android.widget.Editor
  private PositionListener = android.widget.Editor$PositionListener of android.widget.Editor
  private abstract TextViewPositionListener = android.widget.Editor$TextViewPositionListener of android.widget.Editor