Created
November 17, 2016 21:36
-
-
Save CapnSpellcheck/b42e5f7cfb1fe4377fbac700f2ab925d to your computer and use it in GitHub Desktop.
Patch to chrisbanes/PhotoView for issue #444
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 7ab87c7543deebb48a8c1ab482eb7cab524f2d29 Mon Sep 17 00:00:00 2001 | |
From: Julian <[email protected]> | |
Date: Thu, 17 Nov 2016 13:34:11 -0800 | |
Subject: [PATCH] destroying the mid zoom | |
--- | |
.../co/senab/photoview/DefaultOnDoubleTapListener.java | 17 ++++++++++++----- | |
.../java/uk/co/senab/photoview/PhotoViewAttacher.java | 16 +++++++++++----- | |
2 files changed, 23 insertions(+), 10 deletions(-) | |
diff --git a/app/src/main/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java b/app/src/main/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java | |
index b5a8f21..c0b2b25 100755 | |
--- a/app/src/main/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java | |
+++ b/app/src/main/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java | |
@@ -77,13 +77,20 @@ public class DefaultOnDoubleTapListener implements GestureDetector.OnDoubleTapLi | |
float x = ev.getX(); | |
float y = ev.getY(); | |
- if (scale < photoViewAttacher.getMediumScale()) { | |
- photoViewAttacher.setScale(photoViewAttacher.getMediumScale(), x, y, true); | |
- } else if (scale >= photoViewAttacher.getMediumScale() && scale < photoViewAttacher.getMaximumScale()) { | |
- photoViewAttacher.setScale(photoViewAttacher.getMaximumScale(), x, y, true); | |
+ float nextScale; | |
+ if (photoViewAttacher.getMediumScale() >= 0) { | |
+ if (scale < photoViewAttacher.getMediumScale()) | |
+ nextScale = photoViewAttacher.getMediumScale(); | |
+ else if (scale >= photoViewAttacher.getMediumScale() && scale < photoViewAttacher.getMaximumScale()) | |
+ nextScale = photoViewAttacher.getMaximumScale(); | |
+ else | |
+ nextScale = photoViewAttacher.getMinimumScale(); | |
} else { | |
- photoViewAttacher.setScale(photoViewAttacher.getMinimumScale(), x, y, true); | |
+ nextScale = (scale == photoViewAttacher.getMaximumScale() ? | |
+ photoViewAttacher.getMinimumScale() : photoViewAttacher.getMaximumScale()); | |
} | |
+ | |
+ photoViewAttacher.setScale(nextScale, x, y, true); | |
} catch (ArrayIndexOutOfBoundsException e) { | |
// Can sometimes happen when getX() and getY() is called | |
} | |
diff --git a/app/src/main/java/uk/co/senab/photoview/PhotoViewAttacher.java b/app/src/main/java/uk/co/senab/photoview/PhotoViewAttacher.java | |
index 8bb34e9..65db4b0 100755 | |
--- a/app/src/main/java/uk/co/senab/photoview/PhotoViewAttacher.java | |
+++ b/app/src/main/java/uk/co/senab/photoview/PhotoViewAttacher.java | |
@@ -76,12 +76,18 @@ public class PhotoViewAttacher implements IPhotoView, View.OnTouchListener, | |
private static void checkZoomLevels(float minZoom, float midZoom, | |
float maxZoom) { | |
- if (minZoom >= midZoom) { | |
+ if (minZoom >= maxZoom) { | |
throw new IllegalArgumentException( | |
- "Minimum zoom has to be less than Medium zoom. Call setMinimumZoom() with a more appropriate value"); | |
- } else if (midZoom >= maxZoom) { | |
- throw new IllegalArgumentException( | |
- "Medium zoom has to be less than Maximum zoom. Call setMaximumZoom() with a more appropriate value"); | |
+ "Minimum zoom has to be less than Maximum zoom. Call setMinimumZoom() with a more appropriate value"); | |
+ } | |
+ if (midZoom >= 0) { | |
+ if (minZoom >= midZoom) { | |
+ throw new IllegalArgumentException( | |
+ "Minimum zoom has to be less than Medium zoom. Call setMinimumZoom() with a more appropriate value"); | |
+ } else if (midZoom >= maxZoom) { | |
+ throw new IllegalArgumentException( | |
+ "Medium zoom has to be less than Maximum zoom. Call setMaximumZoom() with a more appropriate value"); | |
+ } | |
} | |
} | |
-- | |
2.6.2 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment