bool IOnTouchListener.OnTouch(AView v, MotionEvent e) { var handled = false; if (_pinchGestureHandler.IsPinchSupported) { if (!_scaleDetector.IsValueCreated) { ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true); } handled = _scaleDetector.Value.OnTouchEvent(e); } _gestureListener?.OnTouchEvent(e); return(_gestureDetector.Value.OnTouchEvent(e) || handled); }
bool AView.IOnTouchListener.OnTouch(AView v, MotionEvent e) { if (!Element.IsEnabled) { return(true); } if (Element.InputTransparent) { return(false); } var handled = false; if (_pinchGestureHandler.IsPinchSupported) { if (!_scaleDetector.IsValueCreated) { ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true); } handled = _scaleDetector.Value.OnTouchEvent(e); } _gestureListener?.OnTouchEvent(e); if (_gestureDetector.IsValueCreated && _gestureDetector.Value.Handle == IntPtr.Zero) { // This gesture detector has already been disposed, probably because it's on a cell which is going away return(handled); } // It's very important that the gesture detection happen first here // if we check handled first, we might short-circuit and never check for tap/pan handled = _gestureDetector.Value.OnTouchEvent(e) || handled; v.EnsureLongClickCancellation(e, handled, Element); return(handled); }
bool IOnTouchListener.OnTouch(AView v, MotionEvent e) { var handled = false; if (_pinchGestureHandler.IsPinchSupported) { if (!_scaleDetector.IsValueCreated) { ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true); } handled = _scaleDetector.Value.OnTouchEvent(e); } _gestureListener?.OnTouchEvent(e); if (_gestureDetector.IsValueCreated && _gestureDetector.Value.Handle == IntPtr.Zero) { // This gesture detector has already been disposed, probably because it's on a cell which is going away return(handled); } return(_gestureDetector.Value.OnTouchEvent(e) || handled); }