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 0: return
end local 0 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 0: aload 0
aload 1
putfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.setUp:()V
2: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.createPopupWindow:()V
3: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
4: sipush 1005
5: invokevirtual android.widget.PopupWindow.setWindowLayoutType:(I)V
6: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
bipush -2
invokevirtual android.widget.PopupWindow.setWidth:(I)V
7: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
bipush -2
invokevirtual android.widget.PopupWindow.setHeight:(I)V
8: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.initContentView:()V
9: new android.view.ViewGroup$LayoutParams
dup
bipush -2
10: bipush -2
11: invokespecial android.view.ViewGroup$LayoutParams.<init>:(II)V
astore 2
start local 2 12: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
aload 2
invokevirtual android.view.ViewGroup.setLayoutParams:(Landroid/view/ViewGroup$LayoutParams;)V
13: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
invokevirtual android.widget.PopupWindow.setContentView:(Landroid/view/View;)V
14: return
end local 2 end local 0 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 0: aload 0
getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
aload 0
iconst_0
invokevirtual android.widget.Editor$PositionListener.addSubscriber:(Landroid/widget/Editor$TextViewPositionListener;Z)V
1: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.computeLocalPosition:()V
2: aload 0
getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
astore 1
start local 1 3: aload 0
aload 1
invokevirtual android.widget.Editor$PositionListener.getPositionX:()I
aload 1
invokevirtual android.widget.Editor$PositionListener.getPositionY:()I
invokevirtual android.widget.Editor$PinnedPopupWindow.updatePosition:(II)V
4: return
end local 1 end local 0 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 0: aload 0
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
start local 1 1: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
2: aload 1
getfield android.util.DisplayMetrics.widthPixels:I
3: ldc -2147483648
4: invokestatic android.view.View$MeasureSpec.makeMeasureSpec:(II)I
5: aload 1
getfield android.util.DisplayMetrics.heightPixels:I
6: ldc -2147483648
7: invokestatic android.view.View$MeasureSpec.makeMeasureSpec:(II)I
8: invokevirtual android.view.ViewGroup.measure:(II)V
9: return
end local 1 end local 0 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 0: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.measureContent:()V
1: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
invokevirtual android.view.ViewGroup.getMeasuredWidth:()I
istore 1
start local 1 2: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.getTextOffset:()I
istore 2
start local 2 3: aload 0
aload 0
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
invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
iload 1
i2f
fconst_2
fdiv
fsub
f2i
putfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
4: aload 0
dup
getfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
aload 0
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: aload 0
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
invokevirtual android.text.Layout.getLineForOffset:(I)I
istore 3
start local 3 6: aload 0
aload 0
iload 3
invokevirtual android.widget.Editor$PinnedPopupWindow.getVerticalLocalPosition:(I)I
putfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
7: aload 0
dup
getfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
aload 0
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: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: iload 1
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPositionX:I
iadd
istore 3
start local 3 1: iload 2
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPositionY:I
iadd
istore 4
start local 4 2: aload 0
iload 4
invokevirtual android.widget.Editor$PinnedPopupWindow.clipVertically:(I)I
istore 4
3: aload 0
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
start local 5 4: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mContentView:Landroid/view/ViewGroup;
invokevirtual android.view.ViewGroup.getMeasuredWidth:()I
istore 6
start local 6 5: aload 5
getfield android.util.DisplayMetrics.widthPixels:I
iload 6
isub
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mClippingLimitRight:I
iadd
iload 3
6: invokestatic java.lang.Math.min:(II)I
istore 3
7: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mClippingLimitLeft:I
ineg
iload 3
invokestatic java.lang.Math.max:(II)I
istore 3
8: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
ifeq 11
9: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
iload 3
iload 4
iconst_m1
iconst_m1
invokevirtual android.widget.PopupWindow.update:(IIII)V
10: goto 14
11: StackMap locals: android.widget.Editor$PinnedPopupWindow int int int int android.util.DisplayMetrics int
StackMap stack:
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
aload 0
getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
iconst_0
12: iload 3
iload 4
13: invokevirtual android.widget.PopupWindow.showAtLocation:(Landroid/view/View;III)V
14: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
invokevirtual android.widget.PopupWindow.dismiss:()V
3: aload 0
getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
invokevirtual android.widget.Editor.getPositionListener:()Landroid/widget/Editor$PositionListener;
aload 0
invokevirtual android.widget.Editor$PositionListener.removeSubscriber:(Landroid/widget/Editor$TextViewPositionListener;)V
4: return
end local 0 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 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.isShowing:()Z
ifeq 4
aload 0
getfield android.widget.Editor$PinnedPopupWindow.this$0:Landroid/widget/Editor;
aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.getTextOffset:()I
invokevirtual android.widget.Editor.isOffsetVisible:(I)Z
ifeq 4
1: iload 4
ifeq 2
aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.computeLocalPosition:()V
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual android.widget.Editor$PinnedPopupWindow.updatePosition:(II)V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.Editor$PinnedPopupWindow.hide:()V
5: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
getfield android.widget.Editor$PinnedPopupWindow.mPopupWindow:Landroid/widget/PopupWindow;
invokevirtual android.widget.PopupWindow.isShowing:()Z
ireturn
end local 0 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