summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ui/PositionController.java
diff options
context:
space:
mode:
authorChih-Chung Chang <chihchung@google.com>2012-05-18 19:10:36 -0700
committerChih-Chung Chang <chihchung@google.com>2012-05-21 11:31:50 -0700
commitfb14073b494ee6ead2538641d04ad8177b433001 (patch)
treea1178f96091ee5e73e18bd19e74a1e089983d7d4 /src/com/android/gallery3d/ui/PositionController.java
parent9c89d80b702defe324e90050037e91edb83bbeea (diff)
downloadandroid_packages_apps_Snap-fb14073b494ee6ead2538641d04ad8177b433001.tar.gz
android_packages_apps_Snap-fb14073b494ee6ead2538641d04ad8177b433001.tar.bz2
android_packages_apps_Snap-fb14073b494ee6ead2538641d04ad8177b433001.zip
Fix capture animation if we are far away from the camera preview.
Bug: 6481823 Change-Id: If2511c8dd08e0483cdc3139068ee190e2b08126d
Diffstat (limited to 'src/com/android/gallery3d/ui/PositionController.java')
-rw-r--r--src/com/android/gallery3d/ui/PositionController.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/ui/PositionController.java b/src/com/android/gallery3d/ui/PositionController.java
index 226826da7..bb2b83ecb 100644
--- a/src/com/android/gallery3d/ui/PositionController.java
+++ b/src/com/android/gallery3d/ui/PositionController.java
@@ -34,7 +34,7 @@ class PositionController {
public static final int IMAGE_AT_TOP_EDGE = 4;
public static final int IMAGE_AT_BOTTOM_EDGE = 8;
- public static final int CAPTURE_ANIMATION_TIME = 600;
+ public static final int CAPTURE_ANIMATION_TIME = 700;
// Special values for animation time.
private static final long NO_ANIMATION = -1;
@@ -960,7 +960,27 @@ class PositionController {
}
}
- // 8. offset the Platform position
+ // 8. calculate the new absolute X coordinates for those box before
+ // first or after last.
+ for (int i = first - 1; i >= -BOX_MAX; i--) {
+ Box a = mBoxes.get(i + 1);
+ Box b = mBoxes.get(i);
+ int wa = widthOf(a);
+ int wb = widthOf(b);
+ Gap g = mGaps.get(i);
+ b.mAbsoluteX = a.mAbsoluteX - wa / 2 - (wb - wb / 2) - g.mCurrentGap;
+ }
+
+ for (int i = last + 1; i <= BOX_MAX; i++) {
+ Box a = mBoxes.get(i - 1);
+ Box b = mBoxes.get(i);
+ int wa = widthOf(a);
+ int wb = widthOf(b);
+ Gap g = mGaps.get(i - 1);
+ b.mAbsoluteX = a.mAbsoluteX + (wa - wa / 2) + wb / 2 + g.mCurrentGap;
+ }
+
+ // 9. offset the Platform position
int dx = mBoxes.get(0).mAbsoluteX - mPlatform.mCurrentX;
mPlatform.mCurrentX += dx;
mPlatform.mFromX += dx;