summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/presets/ImagePreset.java')
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java51
1 files changed, 28 insertions, 23 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 808288f89..2276ee71c 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -18,20 +18,19 @@ package com.android.gallery3d.filtershow.presets;
import android.graphics.Bitmap;
import android.graphics.Rect;
-import android.net.Uri;
import android.support.v8.renderscript.Allocation;
import android.util.JsonReader;
import android.util.JsonWriter;
import android.util.Log;
-import com.adobe.xmp.XMPException;
-import com.adobe.xmp.XMPMeta;
-import com.adobe.xmp.options.PropertyOptions;
+import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.cache.CachingPipeline;
import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.BaseFiltersManager;
-import com.android.gallery3d.filtershow.filters.FiltersManager;
+import com.android.gallery3d.filtershow.filters.FilterFxRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterImageBorderRepresentation;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
+import com.android.gallery3d.filtershow.filters.FiltersManager;
import com.android.gallery3d.filtershow.filters.ImageFilter;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
@@ -53,6 +52,8 @@ public class ImagePreset {
private Vector<FilterRepresentation> mFilters = new Vector<FilterRepresentation>();
+ protected boolean mIsFxPreset = false;
+
private boolean mDoApplyGeometry = true;
private boolean mDoApplyFilters = true;
@@ -185,21 +186,6 @@ public class ImagePreset {
return geo;
}
- public boolean hasModifications() {
- for (int i = 0; i < mFilters.size(); i++) {
- FilterRepresentation filter = mFilters.elementAt(i);
- if (filter instanceof GeometryMetadata) {
- if (((GeometryMetadata) filter).hasModifications()) {
- return true;
- }
- }
- if (!filter.isNil() && !filter.getName().equalsIgnoreCase("none")) {
- return true;
- }
- }
- return false;
- }
-
public boolean isPanoramaSafe() {
for (FilterRepresentation representation : mFilters) {
if (representation instanceof GeometryMetadata) {
@@ -353,14 +339,19 @@ public class ImagePreset {
}
}
+ // If the filter is an "None" effect or border, then just don't add this
+ // filter.
public void addFilter(FilterRepresentation representation) {
if (representation instanceof GeometryMetadata) {
setGeometry((GeometryMetadata) representation);
return;
}
+
if (representation.getFilterType() == FilterRepresentation.TYPE_BORDER) {
removeFilter(representation);
- mFilters.add(representation);
+ if (!isNoneBorderFilter(representation)) {
+ mFilters.add(representation);
+ }
} else if (representation.getFilterType() == FilterRepresentation.TYPE_FX) {
boolean found = false;
for (int i = 0; i < mFilters.size(); i++) {
@@ -373,18 +364,32 @@ public class ImagePreset {
}
if (type == FilterRepresentation.TYPE_FX) {
mFilters.remove(i);
- mFilters.add(i, representation);
+ if (!isNoneFxFilter(representation)) {
+ mFilters.add(i, representation);
+ }
found = true;
}
}
if (!found) {
- mFilters.add(representation);
+ if (!isNoneFxFilter(representation)) {
+ mFilters.add(representation);
+ }
}
} else {
mFilters.add(representation);
}
}
+ private boolean isNoneBorderFilter(FilterRepresentation representation) {
+ return representation instanceof FilterImageBorderRepresentation &&
+ ((FilterImageBorderRepresentation) representation).getDrawableResource() == 0;
+ }
+
+ private boolean isNoneFxFilter(FilterRepresentation representation) {
+ return representation instanceof FilterFxRepresentation &&
+ ((FilterFxRepresentation)representation).getNameResource() == R.string.none;
+ }
+
public FilterRepresentation getRepresentation(FilterRepresentation filterRepresentation) {
for (int i = 0; i < mFilters.size(); i++) {
FilterRepresentation representation = mFilters.elementAt(i);