Merge "support icon styles" into gb-ub-photos-bryce
diff --git a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
index 055309f..32d4ab0 100644
--- a/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/CachingPipeline.java
@@ -282,10 +282,13 @@
                     || request.getType() == RenderingRequest.FILTERS_RENDERING
                     || request.getType() == RenderingRequest.ICON_RENDERING
                     || request.getType() == RenderingRequest.PARTIAL_RENDERING
-                    || request.getType() == RenderingRequest.HIGHRES_RENDERING) {
+                    || request.getType() == RenderingRequest.HIGHRES_RENDERING
+                    || request.getType() == RenderingRequest.STYLE_ICON_RENDERING) {
 
                 if (request.getType() == RenderingRequest.ICON_RENDERING) {
                     mEnvironment.setQuality(ImagePreset.QUALITY_ICON);
+                } else  if (request.getType() == RenderingRequest.STYLE_ICON_RENDERING) {
+                    mEnvironment.setQuality(ImagePreset.STYLE_ICON);
                 } else {
                     mEnvironment.setQuality(ImagePreset.QUALITY_PREVIEW);
                 }
diff --git a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
index 3416ddf..e5bc411 100644
--- a/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
+++ b/src/com/android/gallery3d/filtershow/cache/RenderingRequest.java
@@ -41,6 +41,8 @@
     public static final int ICON_RENDERING = 3;
     public static final int PARTIAL_RENDERING = 4;
     public static final int HIGHRES_RENDERING = 5;
+    public static final int STYLE_ICON_RENDERING = 6;
+
     private static final Bitmap.Config mConfig = Bitmap.Config.ARGB_8888;
 
     public static void post(Bitmap source, ImagePreset preset, int type, RenderingRequestCaller caller) {
@@ -59,7 +61,8 @@
         Bitmap bitmap = null;
         if (type == FULL_RENDERING
                 || type == GEOMETRY_RENDERING
-                || type == ICON_RENDERING) {
+                || type == ICON_RENDERING
+                || type == STYLE_ICON_RENDERING) {
             CachingPipeline pipeline = new CachingPipeline(
                     FiltersManager.getManager(), "Icon");
             bitmap = pipeline.renderGeometryIcon(source, preset);
diff --git a/src/com/android/gallery3d/filtershow/controller/StyleChooser.java b/src/com/android/gallery3d/filtershow/controller/StyleChooser.java
index 3f75839..b3d0de7 100644
--- a/src/com/android/gallery3d/filtershow/controller/StyleChooser.java
+++ b/src/com/android/gallery3d/filtershow/controller/StyleChooser.java
@@ -17,13 +17,12 @@
 
 import java.util.Vector;
 
-public class StyleChooser implements Control, RenderingRequestCaller {
+public class StyleChooser implements Control {
     private final String LOGTAG = "StyleChooser";
     protected ParameterStyles mParameter;
     protected LinearLayout mLinearLayout;
     protected Editor mEditor;
     private View mTopView;
-    private int mProcessingButton = 0;
     private Vector<ImageButton> mIconButton = new Vector<ImageButton>();
     protected int mLayoutID = R.layout.filtershow_control_style_chooser;
 
@@ -42,7 +41,7 @@
         mIconButton.clear();
         LayoutParams lp = new LayoutParams(120, 120);
         for (int i = 0; i < n; i++) {
-            ImageButton button = new ImageButton(context);
+            final ImageButton button = new ImageButton(context);
             button.setScaleType(ScaleType.CENTER_CROP);
             button.setLayoutParams(lp);
             button.setBackgroundResource(android.R.color.transparent);
@@ -55,9 +54,17 @@
                 }
             });
             mLinearLayout.addView(button);
+            mParameter.getIcon(i, new RenderingRequestCaller() {
+                @Override
+                public void available(RenderingRequest request) {
+                    Bitmap bmap = request.getBitmap();
+                    if (bmap == null) {
+                        return;
+                    }
+                    button.setImageBitmap(bmap);
+                }
+            });
         }
-        mProcessingButton = 0;
-        mParameter.getIcon(mProcessingButton, this);
     }
 
     @Override
@@ -78,23 +85,4 @@
         }
     }
 
-    @Override
-    public void available(RenderingRequest request) {
-        Bitmap bmap = request.getBitmap();
-        if (bmap == null) {
-            return;
-        }
-
-        try {
-            ImageButton button = mIconButton.get(mProcessingButton);
-            button.setImageBitmap(bmap);
-        } catch (Exception e) {
-            return;
-        }
-
-        mProcessingButton++;
-        if (mProcessingButton < mParameter.getNumberOfStyles())
-            mParameter.getIcon(mProcessingButton, this);
-    }
-
 }
diff --git a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
index 7e0e25d..5bb0e57 100644
--- a/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
+++ b/src/com/android/gallery3d/filtershow/filters/FilterRepresentation.java
@@ -42,7 +42,7 @@
     public static final byte TYPE_NORMAL = 5;
     public static final byte TYPE_TINYPLANET = 6;
 
-    public FilterRepresentation mTempRepresentation = null;
+    private FilterRepresentation mTempRepresentation = null;
 
     public FilterRepresentation(String name) {
         mName = name;
@@ -127,6 +127,10 @@
     public void useParametersFrom(FilterRepresentation a) {
     }
 
+    public void clearTempRepresentation() {
+        mTempRepresentation = null;
+    }
+
     public synchronized void updateTempParametersFrom(FilterRepresentation representation) {
         if (mTempRepresentation == null) {
             try {
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index a35a18a..2858ea6 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -39,6 +39,8 @@
     public static final int QUALITY_ICON = 0;
     public static final int QUALITY_PREVIEW = 1;
     public static final int QUALITY_FINAL = 2;
+    public static final int STYLE_ICON = 3;
+
     private ImageLoader mImageLoader = null;
 
     private Vector<FilterRepresentation> mFilters = new Vector<FilterRepresentation>();