class android.widget.Editor$PositionListener implements android.view.ViewTreeObserver$OnPreDrawListener
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.widget.Editor$PositionListener
super_class: java.lang.Object
{
private static final int MAXIMUM_NUMBER_OF_LISTENERS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private android.widget.Editor$TextViewPositionListener[] mPositionListeners;
descriptor: [Landroid/widget/Editor$TextViewPositionListener;
flags: (0x0002) ACC_PRIVATE
private boolean[] mCanMove;
descriptor: [Z
flags: (0x0002) ACC_PRIVATE
private boolean mPositionHasChanged;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mPositionX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mPositionY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mPositionXOnScreen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mPositionYOnScreen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mNumberOfListeners;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mScrollHasChanged;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final int[] mTempCoords;
descriptor: [I
flags: (0x0010) ACC_FINAL
final android.widget.Editor this$0;
descriptor: Landroid/widget/Editor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(android.widget.Editor);
descriptor: (Landroid/widget/Editor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield android.widget.Editor$PositionListener.this$0:Landroid/widget/Editor;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: bipush 7
anewarray android.widget.Editor$TextViewPositionListener
putfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
3: aload 0
bipush 7
newarray 4
putfield android.widget.Editor$PositionListener.mCanMove:[Z
4: aload 0
iconst_1
putfield android.widget.Editor$PositionListener.mPositionHasChanged:Z
5: aload 0
iconst_2
newarray 10
putfield android.widget.Editor$PositionListener.mTempCoords:[I
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/widget/Editor$PositionListener;
MethodParameters:
Name Flags
this$0 final
public void addSubscriber(android.widget.Editor$TextViewPositionListener, boolean);
descriptor: (Landroid/widget/Editor$TextViewPositionListener;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.widget.Editor$PositionListener.mNumberOfListeners:I
ifne 4
1: aload 0
invokevirtual android.widget.Editor$PositionListener.updatePosition:()V
2: aload 0
getfield android.widget.Editor$PositionListener.this$0:Landroid/widget/Editor;
getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
astore 3
start local 3 3: aload 3
aload 0
invokevirtual android.view.ViewTreeObserver.addOnPreDrawListener:(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
end local 3 4: StackMap locals:
StackMap stack:
iconst_m1
istore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 13
7: StackMap locals: int int
StackMap stack:
aload 0
getfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
iload 4
aaload
astore 5
start local 5 8: aload 5
aload 1
if_acmpne 10
9: return
10: StackMap locals: android.widget.Editor$TextViewPositionListener
StackMap stack:
iload 3
ifge 12
aload 5
ifnonnull 12
11: iload 4
istore 3
end local 5 12: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
bipush 7
if_icmplt 7
end local 4 14: aload 0
getfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
iload 3
aload 1
aastore
15: aload 0
getfield android.widget.Editor$PositionListener.mCanMove:[Z
iload 3
iload 2
bastore
16: aload 0
dup
getfield android.widget.Editor$PositionListener.mNumberOfListeners:I
iconst_1
iadd
putfield android.widget.Editor$PositionListener.mNumberOfListeners:I
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/widget/Editor$PositionListener;
0 18 1 positionListener Landroid/widget/Editor$TextViewPositionListener;
0 18 2 canMove Z
3 4 3 vto Landroid/view/ViewTreeObserver;
5 18 3 emptySlotIndex I
6 14 4 i I
8 12 5 listener Landroid/widget/Editor$TextViewPositionListener;
MethodParameters:
Name Flags
positionListener
canMove
public void removeSubscriber(android.widget.Editor$TextViewPositionListener);
descriptor: (Landroid/widget/Editor$TextViewPositionListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 7
2: StackMap locals: int
StackMap stack:
aload 0
getfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
iload 2
aaload
aload 1
if_acmpne 6
3: aload 0
getfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
iload 2
aconst_null
aastore
4: aload 0
dup
getfield android.widget.Editor$PositionListener.mNumberOfListeners:I
iconst_1
isub
putfield android.widget.Editor$PositionListener.mNumberOfListeners:I
5: goto 8
6: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
bipush 7
if_icmplt 2
end local 2 8: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.Editor$PositionListener.mNumberOfListeners:I
ifne 11
9: aload 0
getfield android.widget.Editor$PositionListener.this$0:Landroid/widget/Editor;
getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
invokevirtual android.widget.TextView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
astore 2
start local 2 10: aload 2
aload 0
invokevirtual android.view.ViewTreeObserver.removeOnPreDrawListener:(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
end local 2 11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/widget/Editor$PositionListener;
0 12 1 positionListener Landroid/widget/Editor$TextViewPositionListener;
1 8 2 i I
10 11 2 vto Landroid/view/ViewTreeObserver;
MethodParameters:
Name Flags
positionListener
public int getPositionX();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Editor$PositionListener.mPositionX:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Editor$PositionListener;
public int getPositionY();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Editor$PositionListener.mPositionY:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Editor$PositionListener;
public int getPositionXOnScreen();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Editor$PositionListener.mPositionXOnScreen:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Editor$PositionListener;
public int getPositionYOnScreen();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Editor$PositionListener.mPositionYOnScreen:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/Editor$PositionListener;
public boolean onPreDraw();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.widget.Editor$PositionListener.updatePosition:()V
1: iconst_0
istore 1
start local 1 2: goto 10
3: StackMap locals: int
StackMap stack:
aload 0
getfield android.widget.Editor$PositionListener.mPositionHasChanged:Z
ifne 4
aload 0
getfield android.widget.Editor$PositionListener.mScrollHasChanged:Z
ifne 4
aload 0
getfield android.widget.Editor$PositionListener.mCanMove:[Z
iload 1
baload
ifeq 9
4: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.Editor$PositionListener.mPositionListeners:[Landroid/widget/Editor$TextViewPositionListener;
iload 1
aaload
astore 2
start local 2 5: aload 2
ifnull 9
6: aload 2
aload 0
getfield android.widget.Editor$PositionListener.mPositionX:I
aload 0
getfield android.widget.Editor$PositionListener.mPositionY:I
7: aload 0
getfield android.widget.Editor$PositionListener.mPositionHasChanged:Z
aload 0
getfield android.widget.Editor$PositionListener.mScrollHasChanged:Z
8: invokeinterface android.widget.Editor$TextViewPositionListener.updatePosition:(IIZZ)V
end local 2 9: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
10: iload 1
bipush 7
if_icmplt 3
end local 1 11: aload 0
iconst_0
putfield android.widget.Editor$PositionListener.mScrollHasChanged:Z
12: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/widget/Editor$PositionListener;
2 11 1 i I
5 9 2 positionListener Landroid/widget/Editor$TextViewPositionListener;
private void updatePosition();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.Editor$PositionListener.this$0:Landroid/widget/Editor;
getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
invokevirtual android.widget.TextView.getLocationInWindow:([I)V
1: aload 0
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_0
iaload
aload 0
getfield android.widget.Editor$PositionListener.mPositionX:I
if_icmpne 2
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_1
iaload
aload 0
getfield android.widget.Editor$PositionListener.mPositionY:I
if_icmpne 2
iconst_0
goto 3
StackMap locals:
StackMap stack: android.widget.Editor$PositionListener
2: iconst_1
StackMap locals: android.widget.Editor$PositionListener
StackMap stack: android.widget.Editor$PositionListener int
3: putfield android.widget.Editor$PositionListener.mPositionHasChanged:Z
4: aload 0
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_0
iaload
putfield android.widget.Editor$PositionListener.mPositionX:I
5: aload 0
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_1
iaload
putfield android.widget.Editor$PositionListener.mPositionY:I
6: aload 0
getfield android.widget.Editor$PositionListener.this$0:Landroid/widget/Editor;
getfield android.widget.Editor.mTextView:Landroid/widget/TextView;
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
invokevirtual android.widget.TextView.getLocationOnScreen:([I)V
7: aload 0
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_0
iaload
putfield android.widget.Editor$PositionListener.mPositionXOnScreen:I
8: aload 0
aload 0
getfield android.widget.Editor$PositionListener.mTempCoords:[I
iconst_1
iaload
putfield android.widget.Editor$PositionListener.mPositionYOnScreen:I
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/widget/Editor$PositionListener;
public void onScrollChanged();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield android.widget.Editor$PositionListener.mScrollHasChanged:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/Editor$PositionListener;
}
SourceFile: "Editor.java"
NestHost: android.widget.Editor
InnerClasses:
public abstract OnPreDrawListener = android.view.ViewTreeObserver$OnPreDrawListener of android.view.ViewTreeObserver
private PositionListener = android.widget.Editor$PositionListener of android.widget.Editor
private abstract TextViewPositionListener = android.widget.Editor$TextViewPositionListener of android.widget.Editor