Disable header gesture detector on swiping

master
M66B 3 weeks ago
parent 1b263cc319
commit c092096a46

@ -389,6 +389,8 @@ public class FragmentMessages extends FragmentBase
private boolean scrolling = false;
private boolean navigating = false;
private GestureDetector gestureDetector;
private AdapterMessage adapter;
private AdapterMessage.ViewType viewType;
@ -1196,15 +1198,11 @@ public class FragmentMessages extends FragmentBase
};
rvMessage.addItemDecoration(dateDecorator);
rvMessage.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
private final GestureDetector gestureDetector =
new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
gestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
@Override
public void onLongPress(@NonNull MotionEvent e) {
if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
return;
if (swiping)
return;
int x = Math.round(e.getX());
int y = Math.round(e.getY());
@ -1257,9 +1255,15 @@ public class FragmentMessages extends FragmentBase
}
});
rvMessage.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
if (!swiping)
try {
gestureDetector.onTouchEvent(e);
} catch (Throwable ex) {
Log.e(ex);
}
return false;
}
@ -3290,9 +3294,18 @@ public class FragmentMessages extends FragmentBase
public void onSelectedChanged(@Nullable RecyclerView.ViewHolder viewHolder, int actionState) {
super.onSelectedChanged(viewHolder, actionState);
getMainHandler().removeCallbacks(disableSwiping);
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
swiping = true;
Log.i("Swiping started");
try {
MotionEvent cancel = MotionEvent.obtain(
SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_CANCEL, 0, 0, 0);
gestureDetector.onTouchEvent(cancel);
} catch (Throwable ex) {
Log.e(ex);
}
} else
getMainHandler().postDelayed(disableSwiping, ViewConfiguration.getLongPressTimeout() + 100);
}

Loading…
Cancel
Save