|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|