diff options
author | Chih-Chung Chang <chihchung@google.com> | 2012-04-25 11:50:08 +0800 |
---|---|---|
committer | Chih-Chung Chang <chihchung@google.com> | 2012-04-25 12:03:03 +0800 |
commit | 9e65a3ae634f0e5b6fccaa929b54b884be0380e4 (patch) | |
tree | 1e2da2e84a5a2a4520d983cd694332574004c6df | |
parent | 210934990196deeea0d19a148e85b3c1c136eb40 (diff) | |
download | android_packages_apps_Snap-9e65a3ae634f0e5b6fccaa929b54b884be0380e4.tar.gz android_packages_apps_Snap-9e65a3ae634f0e5b6fccaa929b54b884be0380e4.tar.bz2 android_packages_apps_Snap-9e65a3ae634f0e5b6fccaa929b54b884be0380e4.zip |
Don't do capture animation if we don't have Camera ScreenNail.
Also make "Back" jump to first picture instead of the previous one.
Bug: 6388263
Change-Id: Idf78363cf3952bf66c6b0688e79d99c01956cd07
4 files changed, 18 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/app/PhotoDataAdapter.java b/src/com/android/gallery3d/app/PhotoDataAdapter.java index 096e781de..d0fde246f 100644 --- a/src/com/android/gallery3d/app/PhotoDataAdapter.java +++ b/src/com/android/gallery3d/app/PhotoDataAdapter.java @@ -340,6 +340,11 @@ public class PhotoDataAdapter implements PhotoPage.Model { } @Override + public void moveToFirst() { + updateCurrentIndex(0); + } + + @Override public ScreenNail getScreenNail(int offset) { return getImage(mCurrentIndex + offset); } diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index 6617ce668..6e5343ba8 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -403,7 +403,8 @@ public class PhotoPage extends ActivityState protected void onBackPressed() { if (mShowDetails) { hideDetails(); - } else if (!switchWithCaptureAnimation(-1)) { + } else if (mScreenNail == null + || !switchWithCaptureAnimation(-1)) { super.onBackPressed(); } } diff --git a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java index 47f6acba9..d0e8161d7 100644 --- a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java +++ b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java @@ -164,6 +164,11 @@ public class SinglePhotoDataAdapter extends TileImageViewAdapter } @Override + public void moveToFirst() { + throw new UnsupportedOperationException(); + } + + @Override public void getImageSize(int offset, PhotoView.Size size) { if (offset == 0) { size.width = mItem.getWidth(); diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java index 66941bee6..5487e3ecb 100644 --- a/src/com/android/gallery3d/ui/PhotoView.java +++ b/src/com/android/gallery3d/ui/PhotoView.java @@ -52,6 +52,7 @@ public class PhotoView extends GLView { public interface Model extends TileImageView.Model { public void next(); public void previous(); + public void moveToFirst(); // Returns the size for the specified picture. If the size information is // not avaiable, width = height = 0. @@ -935,6 +936,10 @@ public class PhotoView extends GLView { mModel.previous(); } + private void switchToFirstImage() { + mModel.moveToFirst(); + } + //////////////////////////////////////////////////////////////////////////// // Opening Animation //////////////////////////////////////////////////////////////////////////// @@ -958,7 +963,6 @@ public class PhotoView extends GLView { } private boolean switchWithCaptureAnimationLocked(int offset) { - if (mFilmMode) return false; if (mHolding != 0) return true; if (offset == 1) { if (mNextBound <= 0) return false; @@ -966,7 +970,7 @@ public class PhotoView extends GLView { mPositionController.startCaptureAnimationSlide(-1); } else if (offset == -1) { if (mPrevBound >= 0) return false; - switchToPrevImage(); + switchToFirstImage(); mPositionController.startCaptureAnimationSlide(1); } else { return false; |