Skip to content

Commit

Permalink
Added check for pendingDismisses in ACTION_UP
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Muenzer committed Jan 27, 2016
1 parent 78b9c86 commit 0aefc8e
Showing 1 changed file with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ public enum SwipeDirection {
}

public enum DismissState {
NONE, UP_TO_DISMISS, HAS_BEEN_DISMISSED
NONE, UP_TO_DISMISS, PENDING_DISMISS
}

public enum CanDismissState {
Expand Down Expand Up @@ -168,7 +168,7 @@ public RowContainer(ViewGroup container) {
*/
public View getCurrentSwipingView() {
// Use Undo-views if action should be reverted
if (dismissState == DismissState.HAS_BEEN_DISMISSED) {
if (dismissState == DismissState.PENDING_DISMISS) {
if (direction == SwipeDirection.FROM_RIGHT) {
return rightUndoContainer;
} else if (direction == SwipeDirection.FROM_LEFT) {
Expand Down Expand Up @@ -323,13 +323,13 @@ public boolean onTouch(View view, MotionEvent motionEvent) {

boolean dataContainerHasBeenDismissed = (mPendingDismiss != null)
&& mPendingDismiss.position == mRecyclerView.getChildPosition(child)
&& (mPendingDismiss.rowContainer.dismissState == DismissState.HAS_BEEN_DISMISSED);
&& (mPendingDismiss.rowContainer.dismissState == DismissState.PENDING_DISMISS);

if (mRowContainer == null) {
mRowContainer = new RowContainer((ViewGroup) child);

if (dataContainerHasBeenDismissed) {
mRowContainer.dismissState = DismissState.HAS_BEEN_DISMISSED;
mRowContainer.dismissState = DismissState.PENDING_DISMISS;
} else {
mRowContainer.dismissState = DismissState.NONE;
}
Expand All @@ -347,7 +347,6 @@ public boolean onTouch(View view, MotionEvent motionEvent) {
mVelocityTracker.addMovement(motionEvent);
}

// return true;
return false;
}

Expand All @@ -368,7 +367,8 @@ public boolean onTouch(View view, MotionEvent motionEvent) {
}

case MotionEvent.ACTION_UP: {
if ((mVelocityTracker == null) || (mRowContainer == null) || (mRowContainer.getCurrentSwipingView() == null)) {
if ((mVelocityTracker == null) || (mRowContainer == null) || (mRowContainer.getCurrentSwipingView() == null)
|| (mRowContainer.dismissState == DismissState.PENDING_DISMISS)) {
break;
}

Expand Down Expand Up @@ -423,7 +423,7 @@ public void onAnimationEnd(Animator animation) {

case MotionEvent.ACTION_MOVE: {
if (mVelocityTracker == null || mPaused || (mRowContainer == null) || (mRowContainer.getCurrentSwipingView() == null)
|| (mRowContainer.dismissState == DismissState.HAS_BEEN_DISMISSED)) {
|| (mRowContainer.dismissState == DismissState.PENDING_DISMISS)) {
break;
}

Expand Down Expand Up @@ -592,7 +592,7 @@ private void performDismiss(RowContainer dismissView, int dismissPosition) {
}

private void addPendingDismiss(RowContainer dismissView, int dismissPosition) {
dismissView.dismissState = DismissState.HAS_BEEN_DISMISSED;
dismissView.dismissState = DismissState.PENDING_DISMISS;

if (dismissView.direction == SwipeDirection.FROM_RIGHT) {
dismissView.rightUndoContainer.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -630,7 +630,7 @@ public boolean processPendingDismisses() {
* @return whether there are any pending rows to be dismissed.
*/
public boolean existPendingDismisses() {
return mPendingDismiss != null && (mPendingDismiss.rowContainer.dismissState == DismissState.HAS_BEEN_DISMISSED);
return mPendingDismiss != null && (mPendingDismiss.rowContainer.dismissState == DismissState.PENDING_DISMISS);
}

/**
Expand Down

0 comments on commit 0aefc8e

Please sign in to comment.