summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2012-10-11 09:13:40 -0700
committerJohn Hoford <hoford@google.com>2012-10-11 09:13:40 -0700
commitf6bd896c681524675dfe2514cf86cc74bbb13b30 (patch)
tree59d8d9512df3c7608bcaf51dbac72aaf03b24c71 /src
parent83e27e04f86e933824b3ac944462ed88c508037c (diff)
downloadandroid_packages_apps_Snap-f6bd896c681524675dfe2514cf86cc74bbb13b30.tar.gz
android_packages_apps_Snap-f6bd896c681524675dfe2514cf86cc74bbb13b30.tar.bz2
android_packages_apps_Snap-f6bd896c681524675dfe2514cf86cc74bbb13b30.zip
Fix application of FX to not wipe out borders etc.
bug:7289442 Change-Id: I9efdfdc1d8a8c02a718e91a089b531ff26fd582d
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java36
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePresetFX.java2
2 files changed, 34 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index ec0ed7402..0ddb0170f 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -35,6 +35,11 @@ public class ImagePreset {
setup();
}
+ public ImagePreset(ImagePreset source, String historyName) {
+ this(source);
+ if (historyName!=null) setHistoryName(historyName);
+ }
+
public ImagePreset(ImagePreset source) {
try {
if (source.mImageBorder != null) {
@@ -57,7 +62,7 @@ public class ImagePreset {
mGeoData.set(m);
}
- public void setBorder(ImageFilter filter) {
+ private void setBorder(ImageFilter filter) {
mImageBorder = filter;
}
@@ -74,7 +79,7 @@ public class ImagePreset {
mHistoryName = name;
}
- public void setHistoryName(String name) {
+ private void setHistoryName(String name) {
mHistoryName = name;
}
@@ -117,7 +122,32 @@ public class ImagePreset {
}
public void add(ImageFilter filter) {
- mFilters.add(filter);
+ if (filter.getFilterType() == ImageFilter.TYPE_BORDER){
+ setHistoryName("Border");
+ setBorder(filter);
+ } else if (filter.getFilterType() == ImageFilter.TYPE_FX){
+ Vector<ImageFilter> fl = mFilters;
+ boolean found = false;
+ for (int i = 0; i < mFilters.size(); i++) {
+ byte type = fl.get(i).getFilterType();
+ if (found) {
+ if (type != ImageFilter.TYPE_VIGNETTE){
+ fl.remove(i);
+ }
+ } else if (type==ImageFilter.TYPE_FX){
+ fl.remove(i);
+ fl.add(i, filter);
+ setHistoryName(filter.getName());
+ found = true;
+ }
+
+ }
+ mFilters.add(filter);
+ setHistoryName(filter.getName());
+ } else {
+ mFilters.add(filter);
+ setHistoryName(filter.getName());
+ }
}
public void remove(String filterName) {
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePresetFX.java b/src/com/android/gallery3d/filtershow/presets/ImagePresetFX.java
index 326471ef3..fa207a6d0 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePresetFX.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePresetFX.java
@@ -22,7 +22,7 @@ public class ImagePresetFX extends ImagePreset {
public void setup() {
if (fxBitmap != null) {
- mFilters.add(new ImageFilterFx(fxBitmap));
+ mFilters.add(new ImageFilterFx(fxBitmap,name));
}
}