diff options
author | nicolasroard <nicolasroard@google.com> | 2012-10-23 12:45:50 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-10-23 12:45:50 -0700 |
commit | f2b827b5461160f96a0b6c497452d8bab73957cc (patch) | |
tree | 79507c52084b6cf2a1cf360268437a399b94741d | |
parent | b818cbe38468eb79f5d85f6738b8264451cf4356 (diff) | |
parent | f2b2d94a8d2e8273563244c85a75656cd9e37b83 (diff) | |
download | android_packages_apps_Snap-f2b827b5461160f96a0b6c497452d8bab73957cc.tar.gz android_packages_apps_Snap-f2b827b5461160f96a0b6c497452d8bab73957cc.tar.bz2 android_packages_apps_Snap-f2b827b5461160f96a0b6c497452d8bab73957cc.zip |
Merge "Fix flickering in geometry panel" into gb-ub-photos-arches
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/ImageShow.java | 39 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/presets/ImagePreset.java | 22 |
2 files changed, 41 insertions, 20 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java index 5e007b1eb..72c594c85 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java @@ -386,12 +386,7 @@ public class ImageShow extends View implements OnGestureListener, if (mImageLoader == null) { return; } - if (getImagePreset() != null) { - mImageLoader.resetImageForPreset(getImagePreset(), caller); - } - mImageGeometryOnlyPreset = null; - mImageFiltersOnlyPreset = null; - invalidate(); + updateImagePresets(true); } public void updateImagePresets(boolean force) { @@ -403,14 +398,22 @@ public class ImageShow extends View implements OnGestureListener, mImageLoader.resetImageForPreset(getImagePreset(), this); } if (force || mImageGeometryOnlyPreset == null) { - mImageGeometryOnlyPreset = new ImagePreset(preset); - mImageGeometryOnlyPreset.setDoApplyFilters(false); - mGeometryOnlyImage = null; - } + ImagePreset newPreset = new ImagePreset(preset); + newPreset.setDoApplyFilters(false); + if (mImageGeometryOnlyPreset == null + || !newPreset.same(mImageGeometryOnlyPreset)) { + mImageGeometryOnlyPreset = newPreset; + mGeometryOnlyImage = null; + } + } if (force || mImageFiltersOnlyPreset == null) { - mImageFiltersOnlyPreset = new ImagePreset(preset); - mImageFiltersOnlyPreset.setDoApplyGeometry(false); - mFiltersOnlyImage = null; + ImagePreset newPreset = new ImagePreset(preset); + newPreset.setDoApplyGeometry(false); + if (mImageFiltersOnlyPreset == null + || !newPreset.same(mImageFiltersOnlyPreset)) { + mImageFiltersOnlyPreset = newPreset; + mFiltersOnlyImage = null; + } } } @@ -428,12 +431,18 @@ public class ImageShow extends View implements OnGestureListener, updateImagePresets(false); if (mImageGeometryOnlyPreset != null) { - mGeometryOnlyImage = mImageLoader.getImageForPreset(this, mImageGeometryOnlyPreset, + bitmap = mImageLoader.getImageForPreset(this, mImageGeometryOnlyPreset, showHires()); + if (bitmap != null) { + mGeometryOnlyImage = bitmap; + } } if (mImageFiltersOnlyPreset != null) { - mFiltersOnlyImage = mImageLoader.getImageForPreset(this, mImageFiltersOnlyPreset, + bitmap = mImageLoader.getImageForPreset(this, mImageFiltersOnlyPreset, showHires()); + if (bitmap != null) { + mFiltersOnlyImage = bitmap; + } } } diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 69875d9c6..87e1934fd 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -169,7 +169,11 @@ public class ImagePreset { return false; } - if (!mGeoData.equals(preset.mGeoData)) { + if (mDoApplyGeometry != preset.mDoApplyGeometry) { + return false; + } + + if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) { return false; } @@ -181,13 +185,21 @@ public class ImagePreset { return false; } - for (int i = 0; i < preset.mFilters.size(); i++) { - ImageFilter a = preset.mFilters.elementAt(i); - ImageFilter b = mFilters.elementAt(i); - if (!a.same(b)) { + if (mDoApplyFilters != preset.mDoApplyFilters) { + if (mFilters.size() > 0 || preset.mFilters.size() > 0) { return false; } } + + if (mDoApplyFilters && preset.mDoApplyFilters) { + for (int i = 0; i < preset.mFilters.size(); i++) { + ImageFilter a = preset.mFilters.elementAt(i); + ImageFilter b = mFilters.elementAt(i); + if (!a.same(b)) { + return false; + } + } + } return true; } |