private void ResolveState() { if (_frontView == null) { return; } if (_frontViewLastX > _frontViewX + _frontViewW / SWIPE_THRESHOLD_WIDTH_RATIO) { SwipeRight(); } else if (_frontViewLastX < _frontViewX - _frontViewW / SWIPE_THRESHOLD_WIDTH_RATIO) { SwipeLeft(); } else { float diffX = Math.Abs(_downX - _upX); float diffY = Math.Abs(_downY - _upY); if (diffX <= 5 && diffY <= 5) { int pressTime = (int)(_upTime - _downTime); if (pressTime > LONG_PRESS_TIME) { _swipeListener.OnLongClick(_touchedViewHolder.ItemData); } else { _swipeListener.OnClick(_touchedViewHolder.ItemData); } } ResetPosition(); } Clear(); }