summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2013-02-28 06:00:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-02-28 06:00:05 +0000
commitaa10209a66a3afb426612eb1b75eaf5a6292f0d6 (patch)
tree9f47225640f479dd19ae6d17a06f5c77a155e672 /src/com/android/gallery3d
parent2ac8f4680b66a1540cdc95511a84729fac76e959 (diff)
downloadandroid_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/com/android/gallery3d')
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java122
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;
- }
}