From 7af17d2c0286340d17410530ddb07c2066212c4f Mon Sep 17 00:00:00 2001 From: Muhammad Hafizh Hasyim Date: Sat, 21 Oct 2023 23:19:27 +1100 Subject: [PATCH] Disable fling gesture for message list swipe actions --- .../fsck/k9/ui/messagelist/MessageListSwipeCallback.kt | 4 ++++ .../k9mail/ui/utils/itemtouchhelper/ItemTouchHelper.java | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListSwipeCallback.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListSwipeCallback.kt index b6a89a7ba..9092bef13 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListSwipeCallback.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListSwipeCallback.kt @@ -44,6 +44,10 @@ class MessageListSwipeCallback( swipeLeftLayout = layoutInflater.inflate(R.layout.swipe_left_action, null, false) } + override fun isFlingEnabled(): Boolean { + return false + } + override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: ViewHolder): Int { if (viewHolder !is MessageViewHolder) return 0 diff --git a/ui-utils/ItemTouchHelper/src/main/java/app/k9mail/ui/utils/itemtouchhelper/ItemTouchHelper.java b/ui-utils/ItemTouchHelper/src/main/java/app/k9mail/ui/utils/itemtouchhelper/ItemTouchHelper.java index 7a205b1ff..9b90cffe6 100644 --- a/ui-utils/ItemTouchHelper/src/main/java/app/k9mail/ui/utils/itemtouchhelper/ItemTouchHelper.java +++ b/ui-utils/ItemTouchHelper/src/main/java/app/k9mail/ui/utils/itemtouchhelper/ItemTouchHelper.java @@ -1299,7 +1299,7 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration private int checkHorizontalSwipe(ViewHolder viewHolder, int flags) { if ((flags & (LEFT | RIGHT)) != 0) { final int dirFlag = mDx > 0 ? RIGHT : LEFT; - if (mVelocityTracker != null && mActivePointerId > -1) { + if (mCallback.isFlingEnabled() && mVelocityTracker != null && mActivePointerId > -1) { mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND, mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity)); final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId); @@ -1326,7 +1326,7 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration private int checkVerticalSwipe(ViewHolder viewHolder, int flags) { if ((flags & (UP | DOWN)) != 0) { final int dirFlag = mDy > 0 ? DOWN : UP; - if (mVelocityTracker != null && mActivePointerId > -1) { + if (mCallback.isFlingEnabled() && mVelocityTracker != null && mActivePointerId > -1) { mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND, mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity)); final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId); @@ -2280,6 +2280,11 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration public void onSwipeEnded(@NonNull ViewHolder viewHolder) { } + + public boolean isFlingEnabled() { + return true; + } + } /**