summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-04-15 22:10:43 -0700
committerJohn Hoford <hoford@google.com>2013-04-17 09:39:13 -0700
commitf8f28abe5efd4c3db7cf6ae8522107c44392b7c0 (patch)
tree6583a3c12da72c133b9190fa7f839b48bc6d49cb /src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
parent6fbc56c69961a2a527f114881df8476baff6ecde (diff)
downloadandroid_packages_apps_Snap-f8f28abe5efd4c3db7cf6ae8522107c44392b7c0.tar.gz
android_packages_apps_Snap-f8f28abe5efd4c3db7cf6ae8522107c44392b7c0.tar.bz2
android_packages_apps_Snap-f8f28abe5efd4c3db7cf6ae8522107c44392b7c0.zip
Support for save state in images
bug:8626775 Change-Id: I2a34a6027b23dab9c1802f672bfbf399cac0c4f7
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
index 66ad10640..1a2150a1b 100644
--- a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
+++ b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
@@ -16,6 +16,8 @@
package com.android.gallery3d.filtershow.filters;
import android.content.res.Resources;
+import android.util.Log;
+
import com.android.gallery3d.filtershow.presets.ImagePreset;
import java.util.HashMap;
@@ -23,9 +25,12 @@ import java.util.Vector;
public abstract class BaseFiltersManager {
protected HashMap<Class, ImageFilter> mFilters = null;
+ protected HashMap<String, FilterRepresentation> mRepresentationLookup = null;
+ private static final String LOGTAG = "BaseFiltersManager";
protected void init() {
mFilters = new HashMap<Class, ImageFilter>();
+ mRepresentationLookup = new HashMap<String, FilterRepresentation>();
Vector<Class> filters = new Vector<Class>();
addFilterClasses(filters);
for (Class filterClass : filters) {
@@ -33,6 +38,12 @@ public abstract class BaseFiltersManager {
Object filterInstance = filterClass.newInstance();
if (filterInstance instanceof ImageFilter) {
mFilters.put(filterClass, (ImageFilter) filterInstance);
+
+ FilterRepresentation rep =
+ ((ImageFilter) filterInstance).getDefaultRepresentation();
+ if (rep != null) {
+ addRepresentation(rep);
+ }
}
} catch (InstantiationException e) {
e.printStackTrace();
@@ -42,6 +53,20 @@ public abstract class BaseFiltersManager {
}
}
+ public void addRepresentation(FilterRepresentation rep) {
+ mRepresentationLookup.put(rep.getSerializationName(), rep);
+ }
+
+ public FilterRepresentation createFilterFromName(String name) {
+ try {
+ return mRepresentationLookup.get(name).clone();
+ } catch (Exception e) {
+ Log.v(LOGTAG, "unable to generate a filter representation for \"" + name + "\"");
+ e.printStackTrace();
+ }
+ return null;
+ }
+
public ImageFilter getFilter(Class c) {
return mFilters.get(c);
}
@@ -50,10 +75,6 @@ public abstract class BaseFiltersManager {
return mFilters.get(representation.getFilterClass());
}
- public void addFilter(Class filterClass, ImageFilter filter) {
- mFilters.put(filterClass, filter);
- }
-
public FilterRepresentation getRepresentation(Class c) {
ImageFilter filter = mFilters.get(c);
if (filter != null) {