From f6bd896c681524675dfe2514cf86cc74bbb13b30 Mon Sep 17 00:00:00 2001 From: John Hoford Date: Thu, 11 Oct 2012 09:13:40 -0700 Subject: Fix application of FX to not wipe out borders etc. bug:7289442 Change-Id: I9efdfdc1d8a8c02a718e91a089b531ff26fd582d --- .../gallery3d/filtershow/presets/ImagePreset.java | 36 ++++++++++++++++++++-- .../filtershow/presets/ImagePresetFX.java | 2 +- 2 files changed, 34 insertions(+), 4 deletions(-) (limited to 'src') 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 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)); } } -- cgit v1.2.3