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.java126
1 files changed, 60 insertions, 66 deletions
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index d6a69af3e..6e9ab9fc9 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -21,8 +21,10 @@ import android.util.Log;
import com.android.gallery3d.filtershow.ImageStateAdapter;
import com.android.gallery3d.filtershow.cache.ImageLoader;
+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.filters.ImageFilterRS;
+import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
@@ -33,12 +35,13 @@ public class ImagePreset {
private static final String LOGTAG = "ImagePreset";
private ImageShow mEndPoint = null;
- private ImageFilter mImageBorder = null;
+ private FilterRepresentation mImageBorder = null;
private float mScaleFactor = 1.0f;
private boolean mIsHighQuality = false;
private ImageLoader mImageLoader = null;
- protected Vector<ImageFilter> mFilters = new Vector<ImageFilter>();
+ private Vector<FilterRepresentation> mFilters = new Vector<FilterRepresentation>();
+
protected String mName = "Original";
private String mHistoryName = "Original";
protected boolean mIsFxPreset = false;
@@ -74,9 +77,9 @@ public class ImagePreset {
mImageBorder = source.mImageBorder.clone();
}
for (int i = 0; i < source.mFilters.size(); i++) {
- ImageFilter filter = source.mFilters.elementAt(i).clone();
- filter.setImagePreset(this);
- add(filter);
+ FilterRepresentation representation = source.mFilters.elementAt(i).clone();
+ representation.setImagePreset(this);
+ addFilter(representation);
}
} catch (java.lang.CloneNotSupportedException e) {
Log.v(LOGTAG, "Exception trying to clone: " + e);
@@ -113,7 +116,7 @@ public class ImagePreset {
return true;
}
for (int i = 0; i < mFilters.size(); i++) {
- ImageFilter filter = mFilters.elementAt(i);
+ FilterRepresentation filter = mFilters.elementAt(i);
if (!filter.isNil()) {
return true;
}
@@ -128,13 +131,13 @@ public class ImagePreset {
if (mGeoData.hasModifications()) {
return false;
}
- for (ImageFilter filter : mFilters) {
- if (filter.getFilterType() == ImageFilter.TYPE_VIGNETTE
- && !filter.isNil()) {
+ for (FilterRepresentation representation : mFilters) {
+ if (representation.getPriority() == ImageFilter.TYPE_VIGNETTE
+ && !representation.isNil()) {
return false;
}
- if (filter.getFilterType() == ImageFilter.TYPE_TINYPLANET
- && !filter.isNil()) {
+ if (representation.getPriority() == ImageFilter.TYPE_TINYPLANET
+ && !representation.isNil()) {
return false;
}
}
@@ -145,7 +148,7 @@ public class ImagePreset {
mGeoData.set(m);
}
- private void setBorder(ImageFilter filter) {
+ private void setBorder(FilterRepresentation filter) {
mImageBorder = filter;
}
@@ -180,8 +183,8 @@ public class ImagePreset {
}
if (mDoApplyFilters && preset.mDoApplyFilters) {
for (int i = 0; i < preset.mFilters.size(); i++) {
- ImageFilter a = preset.mFilters.elementAt(i);
- ImageFilter b = mFilters.elementAt(i);
+ FilterRepresentation a = preset.mFilters.elementAt(i);
+ FilterRepresentation b = mFilters.elementAt(i);
if (!a.equals(b)) {
return false;
}
@@ -190,14 +193,6 @@ public class ImagePreset {
return true;
}
- public void usePreset(ImagePreset preset) {
- for (int i = 0; i < preset.mFilters.size(); i++) {
- ImageFilter a = preset.mFilters.elementAt(i);
- ImageFilter b = mFilters.elementAt(i);
- b.useFilter(a);
- }
- }
-
public boolean same(ImagePreset preset) {
if (preset == null) {
return false;
@@ -223,7 +218,7 @@ public class ImagePreset {
return false;
}
- if (mImageBorder != null && !mImageBorder.same(preset.mImageBorder)) {
+ if (mImageBorder != null && !mImageBorder.equals(preset.mImageBorder)) {
return false;
}
@@ -235,18 +230,15 @@ public class ImagePreset {
if (mDoApplyFilters && preset.mDoApplyFilters) {
for (int i = 0; i < preset.mFilters.size(); i++) {
- ImageFilter a = preset.mFilters.elementAt(i);
- ImageFilter b = mFilters.elementAt(i);
+ FilterRepresentation a = preset.mFilters.elementAt(i);
+ FilterRepresentation b = mFilters.elementAt(i);
if (!a.same(b)) {
return false;
}
}
}
- return true;
- }
- public int nbFilters() {
- return mFilters.size();
+ return true;
}
public int similarUpTo(ImagePreset preset) {
@@ -255,13 +247,13 @@ public class ImagePreset {
}
for (int i = 0; i < preset.mFilters.size(); i++) {
- ImageFilter a = preset.mFilters.elementAt(i);
+ FilterRepresentation a = preset.mFilters.elementAt(i);
if (i < mFilters.size()) {
- ImageFilter b = mFilters.elementAt(i);
+ FilterRepresentation b = mFilters.elementAt(i);
if (!a.same(b)) {
return i;
}
- if (a.getParameter() != b.getParameter()) {
+ if (!a.equals(b)) {
return i;
}
} else {
@@ -279,15 +271,25 @@ public class ImagePreset {
return mHistoryName;
}
- public void add(ImageFilter filter) {
+ public void showFilters() {
+ Log.v(LOGTAG, "\\\\\\ showFilters -- " + mFilters.size() + " filters");
+ int n = 0;
+ for (FilterRepresentation representation : mFilters) {
+ Log.v(LOGTAG, " filter " + n + " : " + representation.toString());
+ n++;
+ }
+ Log.v(LOGTAG, "/// showFilters -- " + mFilters.size() + " filters");
+ }
- if (filter.getFilterType() == ImageFilter.TYPE_BORDER) {
- setHistoryName(filter.getName());
- setBorder(filter);
- } else if (filter.getFilterType() == ImageFilter.TYPE_FX) {
+ public void addFilter(FilterRepresentation representation) {
+ Log.v(LOGTAG, "*** Add Filter *** " + representation);
+ if (representation.getPriority() == ImageFilter.TYPE_BORDER) {
+ setHistoryName(representation.getName());
+ setBorder(representation);
+ } else if (representation.getPriority() == ImageFilter.TYPE_FX) {
boolean found = false;
for (int i = 0; i < mFilters.size(); i++) {
- byte type = mFilters.get(i).getFilterType();
+ int type = mFilters.elementAt(i).getPriority();
if (found) {
if (type != ImageFilter.TYPE_VIGNETTE) {
mFilters.remove(i);
@@ -296,38 +298,30 @@ public class ImagePreset {
}
if (type == ImageFilter.TYPE_FX) {
mFilters.remove(i);
- mFilters.add(i, filter);
- setHistoryName(filter.getName());
+ mFilters.add(i, representation);
+ setHistoryName(representation.getName());
found = true;
}
}
if (!found) {
- mFilters.add(filter);
- setHistoryName(filter.getName());
+ mFilters.add(representation);
+ setHistoryName(representation.getName());
}
} else {
- mFilters.add(filter);
- setHistoryName(filter.getName());
+ mFilters.add(representation);
+ setHistoryName(representation.getName());
}
- filter.setImagePreset(this);
+ representation.setImagePreset(this);
}
- public void remove(String filterName) {
- ImageFilter filter = getFilter(filterName);
- if (filter != null) {
- mFilters.remove(filter);
- }
- }
-
- public int getCount() {
- return mFilters.size();
+ public void add(ImageFilter filter) {
}
- public ImageFilter getFilter(String name) {
+ public FilterRepresentation getRepresentation(FilterRepresentation filterRepresentation) {
for (int i = 0; i < mFilters.size(); i++) {
- ImageFilter filter = mFilters.elementAt(i);
- if (filter.getName().equalsIgnoreCase(name)) {
- return filter;
+ FilterRepresentation representation = mFilters.elementAt(i);
+ if (representation.getFilterClass() == filterRepresentation.getFilterClass()) {
+ return representation;
}
}
return null;
@@ -337,10 +331,6 @@ public class ImagePreset {
// do nothing here
}
- public void setEndpoint(ImageShow image) {
- mEndPoint = image;
- }
-
public Bitmap apply(Bitmap original) {
Bitmap bitmap = original;
bitmap = applyFilters(bitmap, -1, -1);
@@ -355,7 +345,8 @@ public class ImagePreset {
public Bitmap applyBorder(Bitmap bitmap) {
if (mImageBorder != null && mDoApplyGeometry) {
- bitmap = mImageBorder.apply(bitmap, mScaleFactor, mIsHighQuality);
+ ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(mImageBorder);
+ bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality);
}
return bitmap;
}
@@ -370,7 +361,9 @@ public class ImagePreset {
to = mFilters.size();
}
for (int i = from; i < to; i++) {
- ImageFilter filter = mFilters.elementAt(i);
+ FilterRepresentation representation = mFilters.elementAt(i);
+ ImageFilter filter = FiltersManager.getManager().getFilterForRepresentation(representation);
+ filter.useRepresentation(representation);
bitmap = filter.apply(bitmap, mScaleFactor, mIsHighQuality);
}
}
@@ -383,7 +376,8 @@ public class ImagePreset {
return;
}
imageStateAdapter.clear();
- imageStateAdapter.addAll(mFilters);
+ // TODO: re-enable the state panel
+ // imageStateAdapter.addAll(mFilters);
imageStateAdapter.notifyDataSetChanged();
}