diff options
author | Hung-ying Tyan <tyanh@google.com> | 2012-08-29 14:15:32 +0800 |
---|---|---|
committer | Hung-ying Tyan <tyanh@google.com> | 2012-08-29 16:33:08 +0800 |
commit | a5371c293c15a3aa09ba7465ab48de36f275214c (patch) | |
tree | 256abcab2a196b2366906cea76d524c0d8696ab7 /src/com | |
parent | 45d791d5271e7283550140cfaca5b4bdfa0c0d14 (diff) | |
download | android_packages_apps_Snap-a5371c293c15a3aa09ba7465ab48de36f275214c.tar.gz android_packages_apps_Snap-a5371c293c15a3aa09ba7465ab48de36f275214c.tar.bz2 android_packages_apps_Snap-a5371c293c15a3aa09ba7465ab48de36f275214c.zip |
Fix pinch out gesture for film strip mode on gingerbread.
On crespo running Android 2.3.6, a pinch out gesture results in the following
call sequence: onDown(), onUp() and then onSingleTapUp(). The correct sequence
for a single-tap-up gesture should be: onDown(), onSingleTapUp() and onUp().
The call sequence for a pinch out gesture in JB is: onDown() and then onUp().
Base on these observations, a condition is added in onSingleTapUp() to filter
out the false alarm where onSingleTapUp() is called within a pinch out gesture.
Bug: 7023717
Change-Id: I010b87f95c3197a299a7d907ce32e93a1d5e958f
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/gallery3d/ui/PhotoView.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java index 25d3154a9..5c4c1e970 100644 --- a/src/com/android/gallery3d/ui/PhotoView.java +++ b/src/com/android/gallery3d/ui/PhotoView.java @@ -21,6 +21,7 @@ import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Point; import android.graphics.Rect; +import android.os.Build; import android.os.Message; import android.util.FloatMath; import android.view.MotionEvent; @@ -29,6 +30,7 @@ import android.view.animation.AccelerateInterpolator; import com.android.gallery3d.R; import com.android.gallery3d.app.AbstractGalleryActivity; +import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.MediaObject; @@ -945,6 +947,19 @@ public class PhotoView extends GLView { @Override public boolean onSingleTapUp(float x, float y) { + // On crespo running Android 2.3.6 (gingerbread), a pinch out gesture results in the + // following call sequence: onDown(), onUp() and then onSingleTapUp(). The correct + // sequence for a single-tap-up gesture should be: onDown(), onSingleTapUp() and onUp(). + // The call sequence for a pinch out gesture in JB is: onDown(), then onUp() and there's + // no onSingleTapUp(). Base on these observations, the following condition is added to + // filter out the false alarm where onSingleTapUp() is called within a pinch out + // gesture. The framework fix went into ICS. Refer to b/4588114. + if (Build.VERSION.SDK_INT < ApiHelper.VERSION_CODES.ICE_CREAM_SANDWICH) { + if ((mHolding & HOLD_TOUCH_DOWN) == 0) { + return true; + } + } + // We do this in addition to onUp() because we want the snapback of // setFilmMode to happen. mHolding &= ~HOLD_TOUCH_DOWN; |