diff options
author | John Hoford <hoford@google.com> | 2013-04-15 22:10:43 -0700 |
---|---|---|
committer | John Hoford <hoford@google.com> | 2013-04-17 09:39:13 -0700 |
commit | f8f28abe5efd4c3db7cf6ae8522107c44392b7c0 (patch) | |
tree | 6583a3c12da72c133b9190fa7f839b48bc6d49cb /src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java | |
parent | 6fbc56c69961a2a527f114881df8476baff6ecde (diff) | |
download | android_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.java | 29 |
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) { |