OSDN Git Service

Improves double-tap and comparison mechanism
authornicolasroard <nicolasroard@google.com>
Sat, 16 Mar 2013 21:27:22 +0000 (14:27 -0700)
committernicolasroard <nicolasroard@google.com>
Tue, 19 Mar 2013 17:00:39 +0000 (10:00 -0700)
Change-Id: I1fda50d7d179703db9e0e525550018c259233e89

src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
src/com/android/gallery3d/filtershow/imageshow/MasterImage.java

index 0ed8c3c..2de37f6 100644 (file)
@@ -578,17 +578,15 @@ public class ImageShow extends View implements OnGestureListener,
             mTouch.x = ex;
             mTouch.y = ey;
 
-            if (!ENABLE_COMPARISON || event.getPointerCount() == 2) {
-                float scaleFactor = MasterImage.getImage().getScaleFactor();
-                if (scaleFactor >= 1) {
-                    float translateX = (mTouch.x - mTouchDown.x) / scaleFactor;
-                    float translateY = (mTouch.y - mTouchDown.y) / scaleFactor;
-                    Point originalTranslation = MasterImage.getImage().getOriginalTranslation();
-                    Point translation = MasterImage.getImage().getTranslation();
-                    translation.x = (int) (originalTranslation.x + translateX);
-                    translation.y = (int) (originalTranslation.y + translateY);
-                    MasterImage.getImage().setTranslation(translation);
-                }
+            float scaleFactor = MasterImage.getImage().getScaleFactor();
+            if (scaleFactor > 1 && (!ENABLE_COMPARISON || event.getPointerCount() == 2)) {
+                float translateX = (mTouch.x - mTouchDown.x) / scaleFactor;
+                float translateY = (mTouch.y - mTouchDown.y) / scaleFactor;
+                Point originalTranslation = MasterImage.getImage().getOriginalTranslation();
+                Point translation = MasterImage.getImage().getTranslation();
+                translation.x = (int) (originalTranslation.x + translateX);
+                translation.y = (int) (originalTranslation.y + translateY);
+                MasterImage.getImage().setTranslation(translation);
                 mTouchShowOriginal = false;
             } else if (!mOriginalDisabled && !mActivity.isShowingHistoryPanel()
                     && (System.currentTimeMillis() - mTouchShowOriginalDate
@@ -627,7 +625,6 @@ public class ImageShow extends View implements OnGestureListener,
         }
         if (scale != MasterImage.getImage().getScaleFactor()) {
             MasterImage.getImage().setScaleFactor(scale);
-            MasterImage.getImage().needsUpdateFullResPreview();
             invalidate();
         }
         return true;
index 4f9c450..680d1f7 100644 (file)
@@ -461,8 +461,11 @@ public class MasterImage implements RenderingRequestCaller {
     }
 
     public void setScaleFactor(float scaleFactor) {
+        if (scaleFactor == mScaleFactor) {
+            return;
+        }
         mScaleFactor = scaleFactor;
-        needsUpdateFullResPreview();
+        invalidatePartialPreview();
     }
 
     public Point getTranslation() {