summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-23 12:47:53 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-23 12:47:53 -0700
commitf279b8575c7ac32db87ca926002022ae072a5a9b (patch)
treef8e337db8c5aacdc70402df2daf24d0ab72394cb
parent8ad95f9f9031f7c96f3793bf2850b8a516fcca6d (diff)
parentf2b827b5461160f96a0b6c497452d8bab73957cc (diff)
downloadandroid_packages_apps_Snap-f279b8575c7ac32db87ca926002022ae072a5a9b.tar.gz
android_packages_apps_Snap-f279b8575c7ac32db87ca926002022ae072a5a9b.tar.bz2
android_packages_apps_Snap-f279b8575c7ac32db87ca926002022ae072a5a9b.zip
am 361f6234: Merge "Fix flickering in geometry panel" into gb-ub-photos-arches
* commit '361f6234c02207b2d812db0b2aeed267013c9a1f': Fix flickering in geometry panel
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java39
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java22
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;
}