summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2012-10-03 13:31:33 -0700
committerBobby Georgescu <georgescu@google.com>2012-10-03 13:31:33 -0700
commit91227ee2d83cf8d4ca353d442777567293808eb5 (patch)
tree0a06b3291094632fb7f8b55cd4cb71e341734623
parent4216866c697760da809b6912fb40c146905ce5a3 (diff)
downloadandroid_packages_apps_Snap-91227ee2d83cf8d4ca353d442777567293808eb5.tar.gz
android_packages_apps_Snap-91227ee2d83cf8d4ca353d442777567293808eb5.tar.bz2
android_packages_apps_Snap-91227ee2d83cf8d4ca353d442777567293808eb5.zip
Fix snapping behavior in filmstrip
Bug: 7277936 Change-Id: I57569eaac0b9e633d249754dcb3613c6c4f7ad3a
-rw-r--r--src/com/android/gallery3d/ui/PhotoView.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java
index 8c9c6d757..a5a15bf43 100644
--- a/src/com/android/gallery3d/ui/PhotoView.java
+++ b/src/com/android/gallery3d/ui/PhotoView.java
@@ -941,6 +941,8 @@ public class PhotoView extends GLView {
private int mDeltaY;
// The accumulated scaling change from a scaling gesture.
private float mAccScale;
+ // If an onFling happened after the last onDown
+ private boolean mHadFling;
@Override
public boolean onSingleTapUp(float x, float y) {
@@ -1059,6 +1061,7 @@ public class PhotoView extends GLView {
} else {
flingImages(velocityX, velocityY);
}
+ mHadFling = true;
return true;
}
@@ -1212,7 +1215,7 @@ public class PhotoView extends GLView {
} else {
mDownInScrolling = false;
}
-
+ mHadFling = false;
mScrolledAfterDown = false;
if (mFilmMode) {
int xi = (int) (x + 0.5f);
@@ -1256,8 +1259,11 @@ public class PhotoView extends GLView {
mIgnoreUpEvent = false;
return;
}
-
- snapback();
+ if (!mFilmMode || mHadFling) {
+ snapback();
+ } else {
+ snapToNeighborImage();
+ }
}
public void setSwipingEnabled(boolean enabled) {
@@ -1531,14 +1537,12 @@ public class PhotoView extends GLView {
private void snapback() {
if ((mHolding & ~HOLD_DELETE) != 0) return;
- if (!snapToNeighborImage()) {
+ if (mFilmMode || !snapToNeighborImage()) {
mPositionController.snapback();
}
}
private boolean snapToNeighborImage() {
- if (mFilmMode) return false;
-
Rect r = mPositionController.getPosition(0);
int viewW = getWidth();
// Setting the move threshold proportional to the width of the view