diff options
author | Nicolas Roard <nicolasroard@google.com> | 2013-02-28 06:00:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-02-28 06:00:05 +0000 |
commit | aa10209a66a3afb426612eb1b75eaf5a6292f0d6 (patch) | |
tree | 9f47225640f479dd19ae6d17a06f5c77a155e672 /src | |
parent | 2ac8f4680b66a1540cdc95511a84729fac76e959 (diff) | |
download | android_packages_apps_Snap-aa10209a66a3afb426612eb1b75eaf5a6292f0d6.tar.gz android_packages_apps_Snap-aa10209a66a3afb426612eb1b75eaf5a6292f0d6.tar.bz2 android_packages_apps_Snap-aa10209a66a3afb426612eb1b75eaf5a6292f0d6.zip |
Revert "Cleanup ImagePreset"
This reverts commit 0f0765676e5be73c7187a44ee88e500ab691bf01
Change-Id: Id5a7eec61cdac3d57c8c4c790d24adf258410545
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/gallery3d/filtershow/presets/ImagePreset.java | 122 |
1 files changed, 69 insertions, 53 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 8c1f1c53c..14c671e9f 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -48,7 +48,10 @@ public class ImagePreset { private String mHistoryName = "Original"; protected boolean mIsFxPreset = false; - public GeometryMetadata mGeoData = new GeometryMetadata(); + private boolean mDoApplyGeometry = true; + private boolean mDoApplyFilters = true; + + public final GeometryMetadata mGeoData = new GeometryMetadata(); private boolean mPartialRendering = false; private Rect mPartialRenderingBounds; @@ -85,9 +88,7 @@ public class ImagePreset { mIsFxPreset = source.isFx(); mImageLoader = source.getImageLoader(); - if (mGeoData != null) { - mGeoData.set(source.mGeoData); - } + mGeoData.set(source.mGeoData); } public FilterRepresentation getFilterRepresentation(int position) { @@ -140,6 +141,18 @@ 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; } @@ -148,7 +161,7 @@ public class ImagePreset { if (mBorder != null && !mBorder.isNil()) { return true; } - if (mGeoData != null && mGeoData.hasModifications()) { + if (mGeoData.hasModifications()) { return true; } for (int i = 0; i < mFilters.size(); i++) { @@ -164,7 +177,7 @@ public class ImagePreset { if (mBorder != null && !mBorder.isNil()) { return false; } - if (mGeoData != null && mGeoData.hasModifications()) { + if (mGeoData.hasModifications()) { return false; } for (FilterRepresentation representation : mFilters) { @@ -218,11 +231,13 @@ public class ImagePreset { if (!same(preset)) { 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; + 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; + } } } return true; @@ -241,30 +256,38 @@ public class ImagePreset { return false; } - if (mGeoData != null && !mGeoData.equals(preset.mGeoData)) { + if (mDoApplyGeometry != preset.mDoApplyGeometry) { return false; } - if (mBorder != preset.mBorder) { + if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) { return false; } - if (mBorder != null && !mBorder.equals(preset.mBorder)) { + if (mDoApplyGeometry && mBorder != preset.mBorder) { return false; } - if (mFilters.size() != preset.mFilters.size()) { + if (mBorder != null && !mBorder.equals(preset.mBorder)) { return false; } - for (int i = 0; i < preset.mFilters.size(); i++) { - FilterRepresentation a = preset.mFilters.elementAt(i); - FilterRepresentation 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++) { + FilterRepresentation a = preset.mFilters.elementAt(i); + FilterRepresentation b = mFilters.elementAt(i); + if (!a.same(b)) { + return false; + } + } + } + return true; } @@ -372,19 +395,18 @@ public class ImagePreset { public Bitmap applyGeometry(Bitmap bitmap) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. - 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); + if (mDoApplyGeometry) { + 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) { + if (mBorder != null && mDoApplyGeometry) { ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mBorder); mBorder.synchronizeRepresentation(); filter.useRepresentation(mBorder); @@ -395,29 +417,32 @@ public class ImagePreset { } public Bitmap applyFilters(Bitmap bitmap, int from, int to) { - 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(); + + 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); } - 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 != null && mGeoData.hasModifications()) { + if (mGeoData.hasModifications()) { return false; } if (mBorder != null && !mBorder.supportsPartialRendering()) { @@ -476,13 +501,4 @@ public class ImagePreset { public Rect getPartialRenderingBounds() { return mPartialRenderingBounds; } - - public void resetGeometry() { - mGeoData = null; - } - - public void resetFilters() { - mFilters.clear(); - mBorder = null; - } } |