From 2866400a752713b9fde498e9f84b3f3bf5f41374 Mon Sep 17 00:00:00 2001 From: Tuan Luong Date: Wed, 12 Feb 2020 14:17:13 +0700 Subject: [PATCH] Allow parent to intercept touch event when scrolling to the edge --- .../src/main/java/com/jsibbold/zoomage/ZoomageView.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java b/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java index f1e6f76..251874a 100644 --- a/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java +++ b/zoomage/src/main/java/com/jsibbold/zoomage/ZoomageView.java @@ -527,7 +527,8 @@ public boolean onTouchEvent(MotionEvent event) { } protected boolean disallowParentTouch(MotionEvent event) { - if ((currentPointerCount > 1 || currentScaleFactor > 1.0f || isAnimating())) { + boolean isTranslatedToEdge = restrictBounds && isScrollToEdge(); + if (currentPointerCount > 1 || (currentScaleFactor > 1.0f && !isTranslatedToEdge) || isAnimating()) { return true; } else { return false; @@ -546,6 +547,11 @@ private boolean isAnimating() { return resetAnimator != null && resetAnimator.isRunning(); } + private boolean isScrollToEdge() { + return bounds.left == 0.0 || bounds.right == getWidth() + || bounds.top == 0.0 || bounds.bottom == getHeight(); + } + /** * Reset the image based on the specified {@link AutoResetMode} mode. */