diff options
author | ztenghui <ztenghui@google.com> | 2013-06-24 13:54:04 -0700 |
---|---|---|
committer | ztenghui <ztenghui@google.com> | 2013-06-27 14:49:06 -0700 |
commit | dfaf4c5b5b901dbbd4904fd86995b71f4acfd47c (patch) | |
tree | b23941db9af10ed2cb7091df68e0e5eaa631bc1b /src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | |
parent | 83b16cf2b02773370e00d3659e201efff20d788d (diff) | |
download | android_packages_apps_Snap-dfaf4c5b5b901dbbd4904fd86995b71f4acfd47c.tar.gz android_packages_apps_Snap-dfaf4c5b5b901dbbd4904fd86995b71f4acfd47c.tar.bz2 android_packages_apps_Snap-dfaf4c5b5b901dbbd4904fd86995b71f4acfd47c.zip |
Save button now behaves correctly for filter changes.
Basically, save the original filter from the file's XMP.
Compare the current filter against original one to decide whether or not the
file has been modified and needed to be saved.
At the same time, make sure we don't save "None" filter in the ImagePreset.
bug:9468909
Change-Id: I5b86ab95556b6b010367c9577b02c0bb42ffb824
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java index 3dc8302df..53e38f4d9 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java +++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java @@ -16,15 +16,22 @@ package com.android.gallery3d.filtershow.imageshow; -import android.graphics.*; +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.Point; +import android.graphics.Rect; +import android.graphics.RectF; import android.os.Handler; import android.os.Message; -import android.util.Log; import com.android.gallery3d.filtershow.FilterShowActivity; import com.android.gallery3d.filtershow.history.HistoryAdapter; import com.android.gallery3d.filtershow.history.HistoryItem; -import com.android.gallery3d.filtershow.cache.*; +import com.android.gallery3d.filtershow.cache.FilteringPipeline; +import com.android.gallery3d.filtershow.cache.ImageLoader; +import com.android.gallery3d.filtershow.cache.RenderingRequest; +import com.android.gallery3d.filtershow.cache.RenderingRequestCaller; +import com.android.gallery3d.filtershow.cache.TripleBufferBitmap; import com.android.gallery3d.filtershow.filters.FilterRepresentation; import com.android.gallery3d.filtershow.filters.ImageFilter; import com.android.gallery3d.filtershow.presets.ImagePreset; @@ -45,6 +52,7 @@ public class MasterImage implements RenderingRequestCaller { private ImageFilter mCurrentFilter = null; private ImagePreset mPreset = null; + private ImagePreset mLoadedPreset = null; private ImagePreset mGeometryOnlyPreset = null; private ImagePreset mFiltersOnlyPreset = null; @@ -224,9 +232,12 @@ public class MasterImage implements RenderingRequestCaller { public synchronized boolean hasModifications() { if (mPreset == null) { - return false; + return getLoadedPreset() != null; + } else { + // TODO: same() is quite strict check here. We should be only + // checking for functionality parity. + return !mPreset.same(getLoadedPreset()); } - return mPreset.hasModifications(); } public TripleBufferBitmap getDoubleBuffer() { @@ -512,4 +523,12 @@ public class MasterImage implements RenderingRequestCaller { public boolean showsOriginal() { return mShowsOriginal; } + + public void setLoadedPreset(ImagePreset preset) { + mLoadedPreset = preset; + } + + public ImagePreset getLoadedPreset() { + return mLoadedPreset; + } } |