Disable fling gesture for message list swipe actions
This commit is contained in:
parent
ab7d680111
commit
7af17d2c02
2 changed files with 11 additions and 2 deletions
|
@ -44,6 +44,10 @@ class MessageListSwipeCallback(
|
||||||
swipeLeftLayout = layoutInflater.inflate(R.layout.swipe_left_action, null, false)
|
swipeLeftLayout = layoutInflater.inflate(R.layout.swipe_left_action, null, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun isFlingEnabled(): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: ViewHolder): Int {
|
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: ViewHolder): Int {
|
||||||
if (viewHolder !is MessageViewHolder) return 0
|
if (viewHolder !is MessageViewHolder) return 0
|
||||||
|
|
||||||
|
|
|
@ -1299,7 +1299,7 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration
|
||||||
private int checkHorizontalSwipe(ViewHolder viewHolder, int flags) {
|
private int checkHorizontalSwipe(ViewHolder viewHolder, int flags) {
|
||||||
if ((flags & (LEFT | RIGHT)) != 0) {
|
if ((flags & (LEFT | RIGHT)) != 0) {
|
||||||
final int dirFlag = mDx > 0 ? RIGHT : LEFT;
|
final int dirFlag = mDx > 0 ? RIGHT : LEFT;
|
||||||
if (mVelocityTracker != null && mActivePointerId > -1) {
|
if (mCallback.isFlingEnabled() && mVelocityTracker != null && mActivePointerId > -1) {
|
||||||
mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND,
|
mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND,
|
||||||
mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity));
|
mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity));
|
||||||
final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId);
|
final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId);
|
||||||
|
@ -1326,7 +1326,7 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration
|
||||||
private int checkVerticalSwipe(ViewHolder viewHolder, int flags) {
|
private int checkVerticalSwipe(ViewHolder viewHolder, int flags) {
|
||||||
if ((flags & (UP | DOWN)) != 0) {
|
if ((flags & (UP | DOWN)) != 0) {
|
||||||
final int dirFlag = mDy > 0 ? DOWN : UP;
|
final int dirFlag = mDy > 0 ? DOWN : UP;
|
||||||
if (mVelocityTracker != null && mActivePointerId > -1) {
|
if (mCallback.isFlingEnabled() && mVelocityTracker != null && mActivePointerId > -1) {
|
||||||
mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND,
|
mVelocityTracker.computeCurrentVelocity(PIXELS_PER_SECOND,
|
||||||
mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity));
|
mCallback.getSwipeVelocityThreshold(mMaxSwipeVelocity));
|
||||||
final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId);
|
final float xVelocity = mVelocityTracker.getXVelocity(mActivePointerId);
|
||||||
|
@ -2280,6 +2280,11 @@ public class ItemTouchHelper extends RecyclerView.ItemDecoration
|
||||||
|
|
||||||
public void onSwipeEnded(@NonNull ViewHolder viewHolder) {
|
public void onSwipeEnded(@NonNull ViewHolder viewHolder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlingEnabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue