summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-02-27 20:45:05 -0800
committernicolasroard <nicolasroard@google.com>2013-02-27 21:06:42 -0800
commit2ac8f4680b66a1540cdc95511a84729fac76e959 (patch)
tree2083522662649344d36ad19528b05d4f8803467f /src/com/android/gallery3d
parentbf5cefc0de7320bcac3773fba261566a5cc7518d (diff)
downloadandroid_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.java122
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;
+ }
}