public abstract class android.widget.ForwardingListener implements android.view.View$OnTouchListener, android.view.View$OnAttachStateChangeListener
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: android.widget.ForwardingListener
super_class: java.lang.Object
{
private final float mScaledTouchSlop;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mTapTimeout;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mLongPressTimeout;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.view.View mSrc;
descriptor: Landroid/view/View;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Runnable mDisallowIntercept;
descriptor: Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
private java.lang.Runnable mTriggerLongPress;
descriptor: Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
private boolean mForwarding;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mActivePointerId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(android.view.View);
descriptor: (Landroid/view/View;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
2: aload 1
iconst_1
invokevirtual android.view.View.setLongClickable:(Z)V
3: aload 1
aload 0
invokevirtual android.view.View.addOnAttachStateChangeListener:(Landroid/view/View$OnAttachStateChangeListener;)V
4: aload 0
aload 1
invokevirtual android.view.View.getContext:()Landroid/content/Context;
invokestatic android.view.ViewConfiguration.get:(Landroid/content/Context;)Landroid/view/ViewConfiguration;
invokevirtual android.view.ViewConfiguration.getScaledTouchSlop:()I
i2f
putfield android.widget.ForwardingListener.mScaledTouchSlop:F
5: aload 0
invokestatic android.view.ViewConfiguration.getTapTimeout:()I
putfield android.widget.ForwardingListener.mTapTimeout:I
6: aload 0
aload 0
getfield android.widget.ForwardingListener.mTapTimeout:I
invokestatic android.view.ViewConfiguration.getLongPressTimeout:()I
iadd
iconst_2
idiv
putfield android.widget.ForwardingListener.mLongPressTimeout:I
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/widget/ForwardingListener;
0 8 1 src Landroid/view/View;
MethodParameters:
Name Flags
src
public abstract com.android.internal.view.menu.ShowableListMenu getPopup();
descriptor: ()Lcom/android/internal/view/menu/ShowableListMenu;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public boolean onTouch(android.view.View, android.view.MotionEvent);
descriptor: (Landroid/view/View;Landroid/view/MotionEvent;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.widget.ForwardingListener.mForwarding:Z
istore 3
start local 3 1: iload 3
ifeq 6
2: aload 0
aload 2
invokevirtual android.widget.ForwardingListener.onTouchForwarded:(Landroid/view/MotionEvent;)Z
ifne 3
aload 0
invokevirtual android.widget.ForwardingListener.onForwardingStopped:()Z
ifeq 3
iconst_0
goto 4
StackMap locals: int
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: goto 16
end local 4 6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual android.widget.ForwardingListener.onTouchObserved:(Landroid/view/MotionEvent;)Z
ifeq 7
aload 0
invokevirtual android.widget.ForwardingListener.onForwardingStarted:()Z
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: iload 4
ifeq 16
10: invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 5
start local 5 11: lload 5
lload 5
iconst_3
12: fconst_0
fconst_0
iconst_0
13: invokestatic android.view.MotionEvent.obtain:(JJIFFI)Landroid/view/MotionEvent;
astore 7
start local 7 14: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
aload 7
invokevirtual android.view.View.onTouchEvent:(Landroid/view/MotionEvent;)Z
pop
15: aload 7
invokevirtual android.view.MotionEvent.recycle:()V
end local 7 end local 5 16: StackMap locals: int
StackMap stack:
aload 0
iload 4
putfield android.widget.ForwardingListener.mForwarding:Z
17: iload 4
ifne 18
iload 3
ifne 18
iconst_0
ireturn
StackMap locals:
StackMap stack:
18: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/widget/ForwardingListener;
0 19 1 v Landroid/view/View;
0 19 2 event Landroid/view/MotionEvent;
1 19 3 wasForwarding Z
5 6 4 forwarding Z
9 19 4 forwarding Z
11 16 5 now J
14 16 7 e Landroid/view/MotionEvent;
MethodParameters:
Name Flags
v
event
public void onViewAttachedToWindow(android.view.View);
descriptor: (Landroid/view/View;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/ForwardingListener;
0 1 1 v Landroid/view/View;
MethodParameters:
Name Flags
v
public void onViewDetachedFromWindow(android.view.View);
descriptor: (Landroid/view/View;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
putfield android.widget.ForwardingListener.mForwarding:Z
1: aload 0
iconst_m1
putfield android.widget.ForwardingListener.mActivePointerId:I
2: aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
ifnull 4
3: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
invokevirtual android.view.View.removeCallbacks:(Ljava/lang/Runnable;)Z
pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/ForwardingListener;
0 5 1 v Landroid/view/View;
MethodParameters:
Name Flags
v
protected boolean onForwardingStarted();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.widget.ForwardingListener.getPopup:()Lcom/android/internal/view/menu/ShowableListMenu;
astore 1
start local 1 1: aload 1
ifnull 3
aload 1
invokeinterface com.android.internal.view.menu.ShowableListMenu.isShowing:()Z
ifne 3
2: aload 1
invokeinterface com.android.internal.view.menu.ShowableListMenu.show:()V
3: StackMap locals: com.android.internal.view.menu.ShowableListMenu
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/ForwardingListener;
1 4 1 popup Lcom/android/internal/view/menu/ShowableListMenu;
protected boolean onForwardingStopped();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.widget.ForwardingListener.getPopup:()Lcom/android/internal/view/menu/ShowableListMenu;
astore 1
start local 1 1: aload 1
ifnull 3
aload 1
invokeinterface com.android.internal.view.menu.ShowableListMenu.isShowing:()Z
ifeq 3
2: aload 1
invokeinterface com.android.internal.view.menu.ShowableListMenu.dismiss:()V
3: StackMap locals: com.android.internal.view.menu.ShowableListMenu
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/ForwardingListener;
1 4 1 popup Lcom/android/internal/view/menu/ShowableListMenu;
private boolean onTouchObserved(android.view.MotionEvent);
descriptor: (Landroid/view/MotionEvent;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
astore 2
start local 2 1: aload 2
invokevirtual android.view.View.isEnabled:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals: android.view.View
StackMap stack:
aload 1
invokevirtual android.view.MotionEvent.getActionMasked:()I
istore 3
start local 3 4: iload 3
tableswitch { // 0 - 3
0: 5
1: 21
2: 13
3: 21
default: 22
}
5: StackMap locals: int
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual android.view.MotionEvent.getPointerId:(I)I
putfield android.widget.ForwardingListener.mActivePointerId:I
6: aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
ifnonnull 8
7: aload 0
new android.widget.ForwardingListener$DisallowIntercept
dup
aload 0
invokespecial android.widget.ForwardingListener$DisallowIntercept.<init>:(Landroid/widget/ForwardingListener;)V
putfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
8: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
aload 0
getfield android.widget.ForwardingListener.mTapTimeout:I
i2l
invokevirtual android.view.View.postDelayed:(Ljava/lang/Runnable;J)Z
pop
9: aload 0
getfield android.widget.ForwardingListener.mTriggerLongPress:Ljava/lang/Runnable;
ifnonnull 11
10: aload 0
new android.widget.ForwardingListener$TriggerLongPress
dup
aload 0
invokespecial android.widget.ForwardingListener$TriggerLongPress.<init>:(Landroid/widget/ForwardingListener;)V
putfield android.widget.ForwardingListener.mTriggerLongPress:Ljava/lang/Runnable;
11: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield android.widget.ForwardingListener.mTriggerLongPress:Ljava/lang/Runnable;
aload 0
getfield android.widget.ForwardingListener.mLongPressTimeout:I
i2l
invokevirtual android.view.View.postDelayed:(Ljava/lang/Runnable;J)Z
pop
12: goto 22
13: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield android.widget.ForwardingListener.mActivePointerId:I
invokevirtual android.view.MotionEvent.findPointerIndex:(I)I
istore 4
start local 4 14: iload 4
iflt 22
15: aload 1
iload 4
invokevirtual android.view.MotionEvent.getX:(I)F
fstore 5
start local 5 16: aload 1
iload 4
invokevirtual android.view.MotionEvent.getY:(I)F
fstore 6
start local 6 17: aload 2
fload 5
fload 6
aload 0
getfield android.widget.ForwardingListener.mScaledTouchSlop:F
invokevirtual android.view.View.pointInView:(FFF)Z
ifne 22
18: aload 0
invokevirtual android.widget.ForwardingListener.clearCallbacks:()V
19: aload 2
invokevirtual android.view.View.getParent:()Landroid/view/ViewParent;
iconst_1
invokeinterface android.view.ViewParent.requestDisallowInterceptTouchEvent:(Z)V
20: iconst_1
ireturn
end local 6 end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.ForwardingListener.clearCallbacks:()V
22: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Landroid/widget/ForwardingListener;
0 23 1 srcEvent Landroid/view/MotionEvent;
1 23 2 src Landroid/view/View;
4 23 3 actionMasked I
14 21 4 activePointerIndex I
16 21 5 x F
17 21 6 y F
MethodParameters:
Name Flags
srcEvent
private void clearCallbacks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.ForwardingListener.mTriggerLongPress:Ljava/lang/Runnable;
ifnull 2
1: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
aload 0
getfield android.widget.ForwardingListener.mTriggerLongPress:Ljava/lang/Runnable;
invokevirtual android.view.View.removeCallbacks:(Ljava/lang/Runnable;)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
ifnull 4
3: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
aload 0
getfield android.widget.ForwardingListener.mDisallowIntercept:Ljava/lang/Runnable;
invokevirtual android.view.View.removeCallbacks:(Ljava/lang/Runnable;)Z
pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/ForwardingListener;
private void onLongPress();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual android.widget.ForwardingListener.clearCallbacks:()V
1: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
astore 1
start local 1 2: aload 1
invokevirtual android.view.View.isEnabled:()Z
ifeq 3
aload 1
invokevirtual android.view.View.isLongClickable:()Z
ifeq 4
3: StackMap locals: android.view.View
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.ForwardingListener.onForwardingStarted:()Z
ifne 6
5: return
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.view.View.getParent:()Landroid/view/ViewParent;
iconst_1
invokeinterface android.view.ViewParent.requestDisallowInterceptTouchEvent:(Z)V
7: invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 2
start local 2 8: lload 2
lload 2
iconst_3
fconst_0
fconst_0
iconst_0
invokestatic android.view.MotionEvent.obtain:(JJIFFI)Landroid/view/MotionEvent;
astore 4
start local 4 9: aload 1
aload 4
invokevirtual android.view.View.onTouchEvent:(Landroid/view/MotionEvent;)Z
pop
10: aload 4
invokevirtual android.view.MotionEvent.recycle:()V
11: aload 0
iconst_1
putfield android.widget.ForwardingListener.mForwarding:Z
12: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/widget/ForwardingListener;
2 13 1 src Landroid/view/View;
8 13 2 now J
9 13 4 e Landroid/view/MotionEvent;
private boolean onTouchForwarded(android.view.MotionEvent);
descriptor: (Landroid/view/MotionEvent;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.ForwardingListener.mSrc:Landroid/view/View;
astore 2
start local 2 1: aload 0
invokevirtual android.widget.ForwardingListener.getPopup:()Lcom/android/internal/view/menu/ShowableListMenu;
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokeinterface com.android.internal.view.menu.ShowableListMenu.isShowing:()Z
ifne 4
3: StackMap locals: android.view.View com.android.internal.view.menu.ShowableListMenu
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface com.android.internal.view.menu.ShowableListMenu.getListView:()Landroid/widget/ListView;
checkcast android.widget.DropDownListView
astore 4
start local 4 5: aload 4
ifnull 6
aload 4
invokevirtual android.widget.DropDownListView.isShown:()Z
ifne 7
6: StackMap locals: android.widget.DropDownListView
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 1
invokestatic android.view.MotionEvent.obtainNoHistory:(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
astore 5
start local 5 8: aload 2
aload 5
invokevirtual android.view.View.toGlobalMotionEvent:(Landroid/view/MotionEvent;)Z
pop
9: aload 4
aload 5
invokevirtual android.widget.DropDownListView.toLocalMotionEvent:(Landroid/view/MotionEvent;)Z
pop
10: aload 4
aload 5
aload 0
getfield android.widget.ForwardingListener.mActivePointerId:I
invokevirtual android.widget.DropDownListView.onForwardedEvent:(Landroid/view/MotionEvent;I)Z
istore 6
start local 6 11: aload 5
invokevirtual android.view.MotionEvent.recycle:()V
12: aload 1
invokevirtual android.view.MotionEvent.getActionMasked:()I
istore 7
start local 7 13: iload 7
iconst_1
if_icmpeq 16
14: iload 7
iconst_3
if_icmpeq 16
15: iconst_1
goto 17
StackMap locals: android.view.MotionEvent int int
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 8
start local 8 18: iload 6
ifeq 19
iload 8
ifeq 19
iconst_1
ireturn
StackMap locals: int
StackMap stack:
19: iconst_0
ireturn
end local 8 end local 7 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 20 0 this Landroid/widget/ForwardingListener;
0 20 1 srcEvent Landroid/view/MotionEvent;
1 20 2 src Landroid/view/View;
2 20 3 popup Lcom/android/internal/view/menu/ShowableListMenu;
5 20 4 dst Landroid/widget/DropDownListView;
8 20 5 dstEvent Landroid/view/MotionEvent;
11 20 6 handled Z
13 20 7 action I
18 20 8 keepForwarding Z
MethodParameters:
Name Flags
srcEvent
}
SourceFile: "ForwardingListener.java"
NestMembers:
android.widget.ForwardingListener$DisallowIntercept android.widget.ForwardingListener$TriggerLongPress
InnerClasses:
public abstract OnAttachStateChangeListener = android.view.View$OnAttachStateChangeListener of android.view.View
public abstract OnTouchListener = android.view.View$OnTouchListener of android.view.View
private DisallowIntercept = android.widget.ForwardingListener$DisallowIntercept of android.widget.ForwardingListener
private TriggerLongPress = android.widget.ForwardingListener$TriggerLongPress of android.widget.ForwardingListener