diff options
author | nicolasroard <nicolasroard@google.com> | 2013-02-27 20:45:05 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-02-27 21:06:42 -0800 |
commit | 2ac8f4680b66a1540cdc95511a84729fac76e959 (patch) | |
tree | 2083522662649344d36ad19528b05d4f8803467f /src/com/android/gallery3d | |
parent | bf5cefc0de7320bcac3773fba261566a5cc7518d (diff) | |
download | android_packages_apps_Snap-2ac8f4680b66a1540cdc95511a84729fac76e959.tar.gz android_packages_apps_Snap-2ac8f4680b66a1540cdc95511a84729fac76e959.tar.bz2 android_packages_apps_Snap-2ac8f4680b66a1540cdc95511a84729fac76e959.zip |
Cleanup ImagePreset
Change-Id: I89e180293a290adb76d4fc8a9a8965fa1445440e
Diffstat (limited to 'src/com/android/gallery3d')
-rw-r--r-- | src/com/android/gallery3d/filtershow/presets/ImagePreset.java | 122 |
1 files changed, 53 insertions, 69 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 14c671e9f..8c1f1c53c 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -48,10 +48,7 @@ public class ImagePreset { private String mHistoryName = "Original"; protected boolean mIsFxPreset = false; - private boolean mDoApplyGeometry = true; - private boolean mDoApplyFilters = true; - - public final GeometryMetadata mGeoData = new GeometryMetadata(); + public GeometryMetadata mGeoData = new GeometryMetadata(); private boolean mPartialRendering = false; private Rect mPartialRenderingBounds; @@ -88,7 +85,9 @@ public class ImagePreset { mIsFxPreset = source.isFx(); mImageLoader = source.getImageLoader(); - mGeoData.set(source.mGeoData); + if (mGeoData != null) { + mGeoData.set(source.mGeoData); + } } public FilterRepresentation getFilterRepresentation(int position) { @@ -141,18 +140,6 @@ public class ImagePreset { MasterImage.getImage().invalidatePreview(); } - public void setDoApplyGeometry(boolean value) { - mDoApplyGeometry = value; - } - - public void setDoApplyFilters(boolean value) { - mDoApplyFilters = value; - } - - public boolean getDoApplyFilters() { - return mDoApplyFilters; - } - public synchronized GeometryMetadata getGeometry() { return mGeoData; } @@ -161,7 +148,7 @@ public class ImagePreset { if (mBorder != null && !mBorder.isNil()) { return true; } - if (mGeoData.hasModifications()) { + if (mGeoData != null && mGeoData.hasModifications()) { return true; } for (int i = 0; i < mFilters.size(); i++) { @@ -177,7 +164,7 @@ public class ImagePreset { if (mBorder != null && !mBorder.isNil()) { return false; } - if (mGeoData.hasModifications()) { + if (mGeoData != null && mGeoData.hasModifications()) { return false; } for (FilterRepresentation representation : mFilters) { @@ -231,13 +218,11 @@ public class ImagePreset { if (!same(preset)) { return false; } - if (mDoApplyFilters && preset.mDoApplyFilters) { - for (int i = 0; i < preset.mFilters.size(); i++) { - FilterRepresentation a = preset.mFilters.elementAt(i); - FilterRepresentation b = mFilters.elementAt(i); - if (!a.equals(b)) { - return false; - } + for (int i = 0; i < preset.mFilters.size(); i++) { + FilterRepresentation a = preset.mFilters.elementAt(i); + FilterRepresentation b = mFilters.elementAt(i); + if (!a.equals(b)) { + return false; } } return true; @@ -256,38 +241,30 @@ public class ImagePreset { return false; } - if (mDoApplyGeometry != preset.mDoApplyGeometry) { + if (mGeoData != null && !mGeoData.equals(preset.mGeoData)) { return false; } - if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) { + if (mBorder != preset.mBorder) { return false; } - if (mDoApplyGeometry && mBorder != preset.mBorder) { + if (mBorder != null && !mBorder.equals(preset.mBorder)) { return false; } - if (mBorder != null && !mBorder.equals(preset.mBorder)) { + if (mFilters.size() != preset.mFilters.size()) { return false; } - if (mDoApplyFilters != preset.mDoApplyFilters) { - if (mFilters.size() > 0 || preset.mFilters.size() > 0) { + for (int i = 0; i < preset.mFilters.size(); i++) { + FilterRepresentation a = preset.mFilters.elementAt(i); + FilterRepresentation b = mFilters.elementAt(i); + if (!a.same(b)) { return false; } } - if (mDoApplyFilters && preset.mDoApplyFilters) { - for (int i = 0; i < preset.mFilters.size(); i++) { - FilterRepresentation a = preset.mFilters.elementAt(i); - FilterRepresentation b = mFilters.elementAt(i); - if (!a.same(b)) { - return false; - } - } - } - return true; } @@ -395,18 +372,19 @@ public class ImagePreset { public Bitmap applyGeometry(Bitmap bitmap) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. - if (mDoApplyGeometry) { - ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mGeoData); - mGeoData.synchronizeRepresentation(); - filter.useRepresentation(mGeoData); - filter.setImagePreset(this); - bitmap = filter.apply(bitmap, mScaleFactor, mQuality); - } + if (mGeoData == null) { + return bitmap; + } + ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mGeoData); + mGeoData.synchronizeRepresentation(); + filter.useRepresentation(mGeoData); + filter.setImagePreset(this); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); return bitmap; } public Bitmap applyBorder(Bitmap bitmap) { - if (mBorder != null && mDoApplyGeometry) { + if (mBorder != null) { ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder); mBorder.synchronizeRepresentation(); filter.useRepresentation(mBorder); @@ -417,32 +395,29 @@ public class ImagePreset { } public Bitmap applyFilters(Bitmap bitmap, int from, int to) { - - if (mDoApplyFilters) { - if (from < 0) { - from = 0; - } - if (to == -1) { - to = mFilters.size(); - } - for (int i = from; i < to; i++) { - FilterRepresentation representation = null; - synchronized (mFilters) { - representation = mFilters.elementAt(i); - representation.synchronizeRepresentation(); - } - ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation); - filter.useRepresentation(representation); - filter.setImagePreset(this); - bitmap = filter.apply(bitmap, mScaleFactor, mQuality); + if (from < 0) { + from = 0; + } + if (to == -1) { + to = mFilters.size(); + } + for (int i = from; i < to; i++) { + FilterRepresentation representation = null; + synchronized (mFilters) { + representation = mFilters.elementAt(i); + representation.synchronizeRepresentation(); } + ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation); + filter.useRepresentation(representation); + filter.setImagePreset(this); + bitmap = filter.apply(bitmap, mScaleFactor, mQuality); } return bitmap; } public boolean canDoPartialRendering() { - if (mGeoData.hasModifications()) { + if (mGeoData != null && mGeoData.hasModifications()) { return false; } if (mBorder != null && !mBorder.supportsPartialRendering()) { @@ -501,4 +476,13 @@ public class ImagePreset { public Rect getPartialRenderingBounds() { return mPartialRenderingBounds; } + + public void resetGeometry() { + mGeoData = null; + } + + public void resetFilters() { + mFilters.clear(); + mBorder = null; + } } |