summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/ui
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-02-14 16:33:01 -0800
committernicolasroard <nicolasroard@google.com>2013-02-20 17:03:13 -0800
commitedc48484bc67bd14a7e5fc4036de9d59f542c4fc (patch)
tree0677344125531e0e649e12500ed6a4cb85d7ea1c /src/com/android/gallery3d/filtershow/ui
parent8e08b01ed79efa2c026559fb2d9814e80d3eb05b (diff)
downloadandroid_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.tar.gz
android_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.tar.bz2
android_packages_apps_Snap-edc48484bc67bd14a7e5fc4036de9d59f542c4fc.zip
Add pinch to zoom
Change-Id: I5d90a7ce5d890f613fa957244c6ac5291496cf1a
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui')
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java52
1 files changed, 32 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index f581fc733..e54c83eff 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -233,6 +233,16 @@ public class ImageCurves extends ImageShow {
@Override
public synchronized boolean onTouchEvent(MotionEvent e) {
+ super.onTouchEvent(e);
+
+ if (e.getPointerCount() != 1) {
+ return true;
+ }
+
+ if (didFinishScalingOperation()) {
+ return true;
+ }
+
float posX = e.getX() / getWidth();
float posY = e.getY();
float margin = Spline.curveHandleSize() / 2;
@@ -255,7 +265,6 @@ public class ImageCurves extends ImageShow {
mDoingTouchMove = false;
return true;
}
- mDoingTouchMove = true;
if (mDidDelete) {
return true;
@@ -265,28 +274,31 @@ public class ImageCurves extends ImageShow {
return true;
}
- Spline spline = getSpline(mCurrentCurveIndex);
- int pick = mCurrentPick;
- if (mCurrentControlPoint == null) {
- pick = pickControlPoint(posX, posY);
- if (pick == -1) {
- mCurrentControlPoint = new ControlPoint(posX, posY);
- pick = spline.addPoint(mCurrentControlPoint);
- mDidAddPoint = true;
- } else {
- mCurrentControlPoint = spline.getPoint(pick);
+ if (e.getActionMasked() == MotionEvent.ACTION_MOVE) {
+ mDoingTouchMove = true;
+ Spline spline = getSpline(mCurrentCurveIndex);
+ int pick = mCurrentPick;
+ if (mCurrentControlPoint == null) {
+ pick = pickControlPoint(posX, posY);
+ if (pick == -1) {
+ mCurrentControlPoint = new ControlPoint(posX, posY);
+ pick = spline.addPoint(mCurrentControlPoint);
+ mDidAddPoint = true;
+ } else {
+ mCurrentControlPoint = spline.getPoint(pick);
+ }
+ mCurrentPick = pick;
}
- mCurrentPick = pick;
- }
- if (spline.isPointContained(posX, pick)) {
- spline.movePoint(pick, posX, posY);
- } else if (pick != -1 && spline.getNbPoints() > 2) {
- spline.deletePoint(pick);
- mDidDelete = true;
+ if (spline.isPointContained(posX, pick)) {
+ spline.movePoint(pick, posX, posY);
+ } else if (pick != -1 && spline.getNbPoints() > 2) {
+ spline.deletePoint(pick);
+ mDidDelete = true;
+ }
+ updateCachedImage();
+ invalidate();
}
- updateCachedImage();
- invalidate();
return true;
}