From 5c98b7ebee91f5de44d8f80110091eb61f3820f7 Mon Sep 17 00:00:00 2001 From: Albert Lo Date: Sat, 29 Aug 2015 16:57:06 -0700 Subject: [PATCH] issue #146: - check that getParent is valid - also reset requestDisallowInterceptTouchEvent() on ACTION_UP || ACTION_CANCEL --- .../main/java/com/daimajia/swipe/SwipeLayout.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/swipe/SwipeLayout.java b/library/src/main/java/com/daimajia/swipe/SwipeLayout.java index d8ee9bde..d163e20a 100644 --- a/library/src/main/java/com/daimajia/swipe/SwipeLayout.java +++ b/library/src/main/java/com/daimajia/swipe/SwipeLayout.java @@ -909,6 +909,10 @@ public boolean onInterceptTouchEvent(MotionEvent ev) { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: mIsBeingDragged = false; + ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(false); + } mDragHelper.processTouchEvent(ev); break; default://handle other action, such as ACTION_POINTER_DOWN/UP @@ -937,7 +941,10 @@ public boolean onTouchEvent(MotionEvent event) { //the drag state and the direction are already judged at onInterceptTouchEvent checkCanDrag(event); if (mIsBeingDragged) { - getParent().requestDisallowInterceptTouchEvent(true); + ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(true); + } mDragHelper.processTouchEvent(event); } break; @@ -945,6 +952,10 @@ public boolean onTouchEvent(MotionEvent event) { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mIsBeingDragged = false; + ViewParent parent = getParent(); + if (parent != null) { + parent.requestDisallowInterceptTouchEvent(false); + } mDragHelper.processTouchEvent(event); break;