public final class android.view.ViewTreeObserver
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.view.ViewTreeObserver
super_class: java.lang.Object
{
private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnWindowFocusChangeListener> mOnWindowFocusListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;>;
private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnWindowAttachListener> mOnWindowAttachListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowAttachListener;>;
private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnGlobalFocusChangeListener> mOnGlobalFocusListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;>;
private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnTouchModeChangeListener> mOnTouchModeChangeListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;>;
private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnEnterAnimationCompleteListener> mOnEnterAnimationCompleteListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;>;
private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnGlobalLayoutListener> mOnGlobalLayoutListeners;
descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;
private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnComputeInternalInsetsListener> mOnComputeInternalInsetsListeners;
descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnScrollChangedListener> mOnScrollChangedListeners;
descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;
private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnPreDrawListener> mOnPreDrawListeners;
descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;
private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnWindowShownListener> mOnWindowShownListeners;
descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;
private boolean mInDispatchOnDraw;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<android.view.ViewTreeObserver$OnDrawListener> mOnDrawListeners;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Landroid/view/ViewTreeObserver$OnDrawListener;>;
private static boolean sIllegalOnDrawModificationIsFatal;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private boolean mWindowShown;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mAlive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield android.view.ViewTreeObserver.mAlive:Z
2: aload 1
invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
bipush 26
if_icmplt 3
iconst_1
goto 4
StackMap locals: android.view.ViewTreeObserver android.content.Context
StackMap stack:
3: iconst_0
4: StackMap locals:
StackMap stack: int
putstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/view/ViewTreeObserver;
0 6 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
void merge(android.view.ViewTreeObserver);
descriptor: (Landroid/view/ViewTreeObserver;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 5
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 4
2: aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
pop
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
putfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
5: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 10
6: aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 9
7: aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
pop
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
putfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
10: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 15
11: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 14
12: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
putfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
15: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 20
16: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 19
17: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
putfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
20: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 25
21: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 24
22: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
putfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
25: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
ifnull 30
26: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
ifnull 29
27: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
aload 1
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
28: goto 30
29: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
putfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
30: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 35
31: aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnull 34
32: aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
pop
33: goto 35
34: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
putfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
35: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 40
36: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 39
37: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
38: goto 40
39: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
putfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
40: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 45
41: aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 44
42: aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
43: goto 45
44: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
putfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
45: StackMap locals:
StackMap stack:
aload 1
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 50
46: aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 49
47: aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
48: goto 50
49: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
putfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
50: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.view.ViewTreeObserver.kill:()V
51: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Landroid/view/ViewTreeObserver;
0 52 1 observer Landroid/view/ViewTreeObserver;
MethodParameters:
Name Flags
observer
public void addOnWindowAttachListener(android.view.ViewTreeObserver$OnWindowAttachListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 5
2: aload 0
3: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
4: putfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
5: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 listener Landroid/view/ViewTreeObserver$OnWindowAttachListener;
MethodParameters:
Name Flags
listener
public void removeOnWindowAttachListener(android.view.ViewTreeObserver$OnWindowAttachListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnWindowAttachListener;
MethodParameters:
Name Flags
victim
public void addOnWindowFocusChangeListener(android.view.ViewTreeObserver$OnWindowFocusChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 5
2: aload 0
3: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
4: putfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
5: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 listener Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
MethodParameters:
Name Flags
listener
public void removeOnWindowFocusChangeListener(android.view.ViewTreeObserver$OnWindowFocusChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
MethodParameters:
Name Flags
victim
public void addOnGlobalFocusChangeListener(android.view.ViewTreeObserver$OnGlobalFocusChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
MethodParameters:
Name Flags
listener
public void removeOnGlobalFocusChangeListener(android.view.ViewTreeObserver$OnGlobalFocusChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
MethodParameters:
Name Flags
victim
public void addOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: aload 0
new android.view.ViewTreeObserver$CopyOnWriteArray
dup
invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
putfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
MethodParameters:
Name Flags
listener
public void removeGlobalOnLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.view.ViewTreeObserver.removeOnGlobalLayoutListener:(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/view/ViewTreeObserver;
0 2 1 victim Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
victim
public void removeOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
MethodParameters:
Name Flags
victim
public void addOnPreDrawListener(android.view.ViewTreeObserver$OnPreDrawListener);
descriptor: (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: aload 0
new android.view.ViewTreeObserver$CopyOnWriteArray
dup
invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
putfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnPreDrawListener;
MethodParameters:
Name Flags
listener
public void removeOnPreDrawListener(android.view.ViewTreeObserver$OnPreDrawListener);
descriptor: (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnPreDrawListener;
MethodParameters:
Name Flags
victim
public void addOnWindowShownListener(android.view.ViewTreeObserver$OnWindowShownListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: aload 0
new android.view.ViewTreeObserver$CopyOnWriteArray
dup
invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
putfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
4: aload 0
getfield android.view.ViewTreeObserver.mWindowShown:Z
ifeq 6
5: aload 1
invokeinterface android.view.ViewTreeObserver$OnWindowShownListener.onWindowShown:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 listener Landroid/view/ViewTreeObserver$OnWindowShownListener;
MethodParameters:
Name Flags
listener
public void removeOnWindowShownListener(android.view.ViewTreeObserver$OnWindowShownListener);
descriptor: (Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnWindowShownListener;
MethodParameters:
Name Flags
victim
public void addOnDrawListener(android.view.ViewTreeObserver$OnDrawListener);
descriptor: (Landroid/view/ViewTreeObserver$OnDrawListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
ifnonnull 3
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
ifeq 10
4: new java.lang.IllegalStateException
dup
5: ldc "Cannot call addOnDrawListener inside of onDraw"
6: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: getstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
ifeq 9
8: aload 2
athrow
9: StackMap locals: java.lang.IllegalStateException
StackMap stack:
ldc "ViewTreeObserver"
aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/view/ViewTreeObserver;
0 12 1 listener Landroid/view/ViewTreeObserver$OnDrawListener;
7 10 2 ex Ljava/lang/IllegalStateException;
MethodParameters:
Name Flags
listener
public void removeOnDrawListener(android.view.ViewTreeObserver$OnDrawListener);
descriptor: (Landroid/view/ViewTreeObserver$OnDrawListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
ifeq 10
4: new java.lang.IllegalStateException
dup
5: ldc "Cannot call removeOnDrawListener inside of onDraw"
6: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: getstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
ifeq 9
8: aload 2
athrow
9: StackMap locals: java.lang.IllegalStateException
StackMap stack:
ldc "ViewTreeObserver"
aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
pop
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/view/ViewTreeObserver;
0 12 1 victim Landroid/view/ViewTreeObserver$OnDrawListener;
7 10 2 ex Ljava/lang/IllegalStateException;
MethodParameters:
Name Flags
victim
public void addOnScrollChangedListener(android.view.ViewTreeObserver$OnScrollChangedListener);
descriptor: (Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: aload 0
new android.view.ViewTreeObserver$CopyOnWriteArray
dup
invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
putfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnScrollChangedListener;
MethodParameters:
Name Flags
listener
public void removeOnScrollChangedListener(android.view.ViewTreeObserver$OnScrollChangedListener);
descriptor: (Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnScrollChangedListener;
MethodParameters:
Name Flags
victim
public void addOnTouchModeChangeListener(android.view.ViewTreeObserver$OnTouchModeChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
MethodParameters:
Name Flags
listener
public void removeOnTouchModeChangeListener(android.view.ViewTreeObserver$OnTouchModeChangeListener);
descriptor: (Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
MethodParameters:
Name Flags
victim
public void addOnComputeInternalInsetsListener(android.view.ViewTreeObserver$OnComputeInternalInsetsListener);
descriptor: (Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 5
2: aload 0
3: new android.view.ViewTreeObserver$CopyOnWriteArray
dup
invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
4: putfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
5: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 listener Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
MethodParameters:
Name Flags
listener
public void removeOnComputeInternalInsetsListener(android.view.ViewTreeObserver$OnComputeInternalInsetsListener);
descriptor: (Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 victim Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
MethodParameters:
Name Flags
victim
public void addOnEnterAnimationCompleteListener(android.view.ViewTreeObserver$OnEnterAnimationCompleteListener);
descriptor: (Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 5
2: aload 0
3: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
4: putfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
5: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 listener Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
MethodParameters:
Name Flags
listener
public void removeOnEnterAnimationCompleteListener(android.view.ViewTreeObserver$OnEnterAnimationCompleteListener);
descriptor: (Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
1: aload 0
getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/view/ViewTreeObserver;
0 5 1 listener Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
MethodParameters:
Name Flags
listener
private void checkIsAlive();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mAlive:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "This ViewTreeObserver is not alive, call getViewTreeObserver() again"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/view/ViewTreeObserver;
public boolean isAlive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mAlive:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/view/ViewTreeObserver;
private void kill();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield android.view.ViewTreeObserver.mAlive:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/view/ViewTreeObserver;
final void dispatchOnWindowAttachedChange(boolean);
descriptor: (Z)V
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
1: astore 2
start local 2 2: aload 2
ifnull 8
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
ifle 8
3: aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnWindowAttachListener
astore 3
start local 3 5: iload 1
ifeq 6
aload 3
invokeinterface android.view.ViewTreeObserver$OnWindowAttachListener.onWindowAttached:()V
goto 7
6: StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList android.view.ViewTreeObserver$OnWindowAttachListener java.util.Iterator
StackMap stack:
aload 3
invokeinterface android.view.ViewTreeObserver$OnWindowAttachListener.onWindowDetached:()V
end local 3 7: StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/view/ViewTreeObserver;
0 9 1 attached Z
2 9 2 listeners Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowAttachListener;>;
5 7 3 listener Landroid/view/ViewTreeObserver$OnWindowAttachListener;
MethodParameters:
Name Flags
attached
final void dispatchOnWindowFocusChange(boolean);
descriptor: (Z)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
1: astore 2
start local 2 2: aload 2
ifnull 7
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
ifle 7
3: aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnWindowFocusChangeListener
astore 3
start local 3 5: aload 3
iload 1
invokeinterface android.view.ViewTreeObserver$OnWindowFocusChangeListener.onWindowFocusChanged:(Z)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/view/ViewTreeObserver;
0 8 1 hasFocus Z
2 8 2 listeners Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;>;
5 6 3 listener Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
MethodParameters:
Name Flags
hasFocus
final void dispatchOnGlobalFocusChange(android.view.View, android.view.View);
descriptor: (Landroid/view/View;Landroid/view/View;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
astore 3
start local 3 1: aload 3
ifnull 6
aload 3
invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
ifle 6
2: aload 3
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: android.view.ViewTreeObserver android.view.View android.view.View java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnGlobalFocusChangeListener
astore 4
start local 4 4: aload 4
aload 1
aload 2
invokeinterface android.view.ViewTreeObserver$OnGlobalFocusChangeListener.onGlobalFocusChanged:(Landroid/view/View;Landroid/view/View;)V
end local 4 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: StackMap locals: android.view.ViewTreeObserver android.view.View android.view.View java.util.concurrent.CopyOnWriteArrayList
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/view/ViewTreeObserver;
0 7 1 oldFocus Landroid/view/View;
0 7 2 newFocus Landroid/view/View;
1 7 3 listeners Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;>;
4 5 4 listener Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
MethodParameters:
Name Flags
oldFocus
newFocus
public final void dispatchOnGlobalLayout();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
astore 1
start local 1 1: aload 1
ifnull 14
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 14
2: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
astore 2
start local 2 3: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack:
aload 2
iload 4
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnGlobalLayoutListener
invokeinterface android.view.ViewTreeObserver$OnGlobalLayoutListener.onGlobalLayout:()V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 3
if_icmplt 6
end local 4 end local 3 9: goto 13
StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
StackMap stack: java.lang.Throwable
10: astore 5
11: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
12: aload 5
athrow
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/view/ViewTreeObserver;
1 15 1 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;
3 14 2 access Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;
4 9 3 count I
5 9 4 i I
Exception table:
from to target type
3 10 10 any
final boolean hasOnPreDrawListeners();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
ifnull 1
aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/view/ViewTreeObserver;
public final boolean dispatchOnPreDraw();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
astore 2
start local 2 2: aload 2
ifnull 17
aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 17
3: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
astore 3
start local 3 4: aload 3
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 11
7: StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack:
iload 1
aload 3
iload 5
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnPreDrawListener
invokeinterface android.view.ViewTreeObserver$OnPreDrawListener.onPreDraw:()Z
ifeq 8
iconst_0
goto 9
StackMap locals:
StackMap stack: int
8: iconst_1
StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack: int int
9: ior
istore 1
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
iload 4
if_icmplt 7
end local 5 end local 4 12: goto 16
StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
StackMap stack: java.lang.Throwable
13: astore 6
14: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
15: aload 6
athrow
16: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
end local 3 17: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/view/ViewTreeObserver;
1 18 1 cancelDraw Z
2 18 2 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;
4 17 3 access Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;
5 12 4 count I
6 12 5 i I
Exception table:
from to target type
4 13 13 any
public final void dispatchOnWindowShown();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
iconst_1
putfield android.view.ViewTreeObserver.mWindowShown:Z
1: aload 0
getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
astore 1
start local 1 2: aload 1
ifnull 15
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 15
3: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
astore 2
start local 2 4: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
istore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 9
7: StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack:
aload 2
iload 4
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnWindowShownListener
invokeinterface android.view.ViewTreeObserver$OnWindowShownListener.onWindowShown:()V
8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 3
if_icmplt 7
end local 4 end local 3 10: goto 14
StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
StackMap stack: java.lang.Throwable
11: astore 5
12: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
13: aload 5
athrow
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
end local 2 15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/view/ViewTreeObserver;
2 16 1 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;
4 15 2 access Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;
5 10 3 count I
6 10 4 i I
Exception table:
from to target type
4 11 11 any
public final void dispatchOnDraw();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
ifnull 10
1: aload 0
iconst_1
putfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
2: aload 0
getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
astore 1
start local 1 3: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: java.util.ArrayList int int
StackMap stack:
aload 1
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnDrawListener
invokeinterface android.view.ViewTreeObserver$OnDrawListener.onDraw:()V
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 2
if_icmplt 6
end local 3 9: aload 0
iconst_0
putfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
end local 2 end local 1 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/view/ViewTreeObserver;
3 10 1 listeners Ljava/util/ArrayList<Landroid/view/ViewTreeObserver$OnDrawListener;>;
4 10 2 numListeners I
5 9 3 i I
final void dispatchOnTouchModeChanged(boolean);
descriptor: (Z)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
1: astore 2
start local 2 2: aload 2
ifnull 7
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
ifle 7
3: aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnTouchModeChangeListener
astore 3
start local 3 5: aload 3
iload 1
invokeinterface android.view.ViewTreeObserver$OnTouchModeChangeListener.onTouchModeChanged:(Z)V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/view/ViewTreeObserver;
0 8 1 inTouchMode Z
2 8 2 listeners Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;>;
5 6 3 listener Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
MethodParameters:
Name Flags
inTouchMode
final void dispatchOnScrollChanged();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
astore 1
start local 1 1: aload 1
ifnull 14
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 14
2: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
astore 2
start local 2 3: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack:
aload 2
iload 4
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnScrollChangedListener
invokeinterface android.view.ViewTreeObserver$OnScrollChangedListener.onScrollChanged:()V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 3
if_icmplt 6
end local 4 end local 3 9: goto 13
StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
StackMap stack: java.lang.Throwable
10: astore 5
11: aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
12: aload 5
athrow
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/view/ViewTreeObserver;
1 15 1 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;
3 14 2 access Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;
4 9 3 count I
5 9 4 i I
Exception table:
from to target type
3 10 10 any
final boolean hasComputeInternalInsetsListeners();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
1: astore 1
start local 1 2: aload 1
ifnull 3
aload 1
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 3
iconst_1
ireturn
StackMap locals: android.view.ViewTreeObserver$CopyOnWriteArray
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/view/ViewTreeObserver;
2 4 1 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
final void dispatchOnComputeInternalInsets(android.view.ViewTreeObserver$InternalInsetsInfo);
descriptor: (Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
1: astore 2
start local 2 2: aload 2
ifnull 15
aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
ifle 15
3: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
astore 3
start local 3 4: aload 3
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 9
7: StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$InternalInsetsInfo android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
StackMap stack:
aload 3
iload 5
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnComputeInternalInsetsListener
aload 1
invokeinterface android.view.ViewTreeObserver$OnComputeInternalInsetsListener.onComputeInternalInsets:(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 4
if_icmplt 7
end local 5 end local 4 10: goto 14
StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$InternalInsetsInfo android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
StackMap stack: java.lang.Throwable
11: astore 6
12: aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
13: aload 6
athrow
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
end local 3 15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/view/ViewTreeObserver;
0 16 1 inoutInfo Landroid/view/ViewTreeObserver$InternalInsetsInfo;
2 16 2 listeners Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
4 15 3 access Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
5 10 4 count I
6 10 5 i I
Exception table:
from to target type
4 11 11 any
MethodParameters:
Name Flags
inoutInfo
public final void dispatchOnEnterAnimationComplete();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=4, args_size=1
start local 0 0: aload 0
getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
1: astore 1
start local 1 2: aload 1
ifnull 7
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.isEmpty:()Z
ifne 7
3: aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: android.view.ViewTreeObserver java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.view.ViewTreeObserver$OnEnterAnimationCompleteListener
astore 2
start local 2 5: aload 2
invokeinterface android.view.ViewTreeObserver$OnEnterAnimationCompleteListener.onEnterAnimationComplete:()V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: StackMap locals: android.view.ViewTreeObserver java.util.concurrent.CopyOnWriteArrayList
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/view/ViewTreeObserver;
2 8 1 listeners Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;>;
5 6 2 listener Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
}
SourceFile: "ViewTreeObserver.java"
NestMembers:
android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access android.view.ViewTreeObserver$InternalInsetsInfo android.view.ViewTreeObserver$OnComputeInternalInsetsListener android.view.ViewTreeObserver$OnDrawListener android.view.ViewTreeObserver$OnEnterAnimationCompleteListener android.view.ViewTreeObserver$OnGlobalFocusChangeListener android.view.ViewTreeObserver$OnGlobalLayoutListener android.view.ViewTreeObserver$OnPreDrawListener android.view.ViewTreeObserver$OnScrollChangedListener android.view.ViewTreeObserver$OnTouchModeChangeListener android.view.ViewTreeObserver$OnWindowAttachListener android.view.ViewTreeObserver$OnWindowFocusChangeListener android.view.ViewTreeObserver$OnWindowShownListener
InnerClasses:
CopyOnWriteArray = android.view.ViewTreeObserver$CopyOnWriteArray of android.view.ViewTreeObserver
Access = android.view.ViewTreeObserver$CopyOnWriteArray$Access of android.view.ViewTreeObserver$CopyOnWriteArray
public final InternalInsetsInfo = android.view.ViewTreeObserver$InternalInsetsInfo of android.view.ViewTreeObserver
public abstract OnComputeInternalInsetsListener = android.view.ViewTreeObserver$OnComputeInternalInsetsListener of android.view.ViewTreeObserver
public abstract OnDrawListener = android.view.ViewTreeObserver$OnDrawListener of android.view.ViewTreeObserver
public abstract OnEnterAnimationCompleteListener = android.view.ViewTreeObserver$OnEnterAnimationCompleteListener of android.view.ViewTreeObserver
public abstract OnGlobalFocusChangeListener = android.view.ViewTreeObserver$OnGlobalFocusChangeListener of android.view.ViewTreeObserver
public abstract OnGlobalLayoutListener = android.view.ViewTreeObserver$OnGlobalLayoutListener of android.view.ViewTreeObserver
public abstract OnPreDrawListener = android.view.ViewTreeObserver$OnPreDrawListener of android.view.ViewTreeObserver
public abstract OnScrollChangedListener = android.view.ViewTreeObserver$OnScrollChangedListener of android.view.ViewTreeObserver
public abstract OnTouchModeChangeListener = android.view.ViewTreeObserver$OnTouchModeChangeListener of android.view.ViewTreeObserver
public abstract OnWindowAttachListener = android.view.ViewTreeObserver$OnWindowAttachListener of android.view.ViewTreeObserver
public abstract OnWindowFocusChangeListener = android.view.ViewTreeObserver$OnWindowFocusChangeListener of android.view.ViewTreeObserver
public abstract OnWindowShownListener = android.view.ViewTreeObserver$OnWindowShownListener of android.view.ViewTreeObserver