OSDN Git Service

Refactoring: removed unnecessary apply calls.
authorRuben Brunk <rubenbrunk@google.com>
Sat, 23 Mar 2013 04:20:03 +0000 (21:20 -0700)
committerRuben Brunk <rubenbrunk@google.com>
Sat, 23 Mar 2013 04:20:03 +0000 (21:20 -0700)
Change-Id: Ic592a00a8487f6a2499c34929b0ec8afad2a73b6

src/com/android/gallery3d/filtershow/ImageStateAdapter.java
src/com/android/gallery3d/filtershow/filters/ImageFilter.java
src/com/android/gallery3d/filtershow/filters/ImageFilterBorder.java
src/com/android/gallery3d/filtershow/filters/ImageFilterDownsample.java
src/com/android/gallery3d/filtershow/filters/ImageFilterGeometry.java
src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java
src/com/android/gallery3d/filtershow/filters/SimpleImageFilter.java
src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
src/com/android/gallery3d/filtershow/ui/FilterIconButton.java

index 1cd5f86..62633e2 100644 (file)
@@ -45,7 +45,6 @@ public class ImageStateAdapter extends ArrayAdapter<FilterRepresentation> {
             view = (MovableLinearLayout) inflater.inflate(R.layout.filtershow_imagestate_row, null);
         }
         FilterRepresentation filter = getItem(position);
-        filter.synchronizeRepresentation();
         view.setFilterRepresentation(filter);
         ImageView markView = (ImageView) view.findViewById(R.id.selectedMark);
         if (filter == MasterImage.getImage().getCurrentFilterRepresentation()) {
index 63a7662..137950c 100644 (file)
@@ -70,14 +70,6 @@ public abstract class ImageFilter implements Cloneable {
         return bitmap;
     }
 
-    /**
-     * Called on small bitmaps to create button icons for each filter. Override
-     * this to provide filter-specific button icons.
-     */
-    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
-        return apply(bitmap, scaleFactor, quality);
-    }
-
     public ImagePreset getImagePreset() {
         return getEnvironment().getImagePreset();
     }
index be85848..a7286f0 100644 (file)
@@ -73,16 +73,6 @@ public class ImageFilterBorder extends ImageFilter {
         return applyHelper(bitmap, scale1, scale2);
     }
 
-    @Override
-    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
-        if (getParameters() == null || getParameters().getDrawableResource() == 0) {
-            return bitmap;
-        }
-        float scale1 = NINEPATCH_ICON_SCALING;
-        float scale2 = BITMAP_ICON_SCALING;
-        return applyHelper(bitmap, scale1, scale2);
-    }
-
     public void setResources(Resources resources) {
         if (mResources != resources) {
             mResources = resources;
index 9064673..0b02fc4 100644 (file)
@@ -77,17 +77,4 @@ public class ImageFilterDownsample extends SimpleImageFilter {
         }
         return bitmap;
     }
-
-    @Override
-    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
-        int w = bitmap.getWidth();
-        int h = bitmap.getHeight();
-        Bitmap ret = Bitmap.createScaledBitmap(bitmap, w / ICON_DOWNSAMPLE_FRACTION, h
-                / ICON_DOWNSAMPLE_FRACTION, false);
-        Rect dst = new Rect(0, 0, w, h);
-        Rect src = new Rect(0, 0, w / ICON_DOWNSAMPLE_FRACTION, h / ICON_DOWNSAMPLE_FRACTION);
-        Canvas c = new Canvas(bitmap);
-        c.drawBitmap(ret, src, dst, null);
-        return bitmap;
-    }
 }
index cbb443f..5a33cc8 100644 (file)
@@ -22,6 +22,7 @@ import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.graphics.RectF;
+import android.util.Log;
 
 import com.android.gallery3d.filtershow.CropExtras;
 import com.android.gallery3d.filtershow.imageshow.GeometryMath;
@@ -72,7 +73,12 @@ public class ImageFilterGeometry extends ImageFilter {
         // TODO: implement bilinear or bicubic here... for now, just use
         // canvas to do a simple implementation...
         // TODO: and be more memory efficient! (do it in native?)
-
+        RectF cb = mGeometry.getPreviewCropBounds();
+        RectF pb = mGeometry.getPhotoBounds();
+        if (cb.width() == 0 || cb.height() == 0 || pb.width() == 0 || pb.height() == 0) {
+            Log.w(LOGTAG, "Cannot apply geometry: geometry metadata has not been initialized");
+            return bitmap;
+        }
         CropExtras extras = mGeometry.getCropExtras();
         boolean useExtras = mGeometry.getUseCropExtrasFlag();
         int outputX = 0;
index 3a7878e..25e5d14 100644 (file)
@@ -66,11 +66,4 @@ public class ImageFilterParametricBorder extends ImageFilter {
        return bitmap;
     }
 
-    @Override
-    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
-        Canvas canvas = new Canvas(bitmap);
-        applyHelper(canvas, bitmap.getWidth() * 4, bitmap.getHeight() * 4);
-        return bitmap;
-    }
-
 }
index 922a16a..c891d20 100644 (file)
@@ -16,8 +16,6 @@
 
 package com.android.gallery3d.filtershow.filters;
 
-import android.graphics.Bitmap;
-
 public class SimpleImageFilter extends ImageFilter {
 
     private FilterBasicRepresentation mParameters;
@@ -36,11 +34,4 @@ public class SimpleImageFilter extends ImageFilter {
     public FilterBasicRepresentation getParameters() {
         return mParameters;
     }
-
-    @Override
-    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
-        FilterRepresentation representation = getDefaultRepresentation();
-        this.useRepresentation(representation);
-        return apply(bitmap, scaleFactor, quality);
-    }
 }
index 680d1f7..993f5d5 100644 (file)
@@ -52,7 +52,6 @@ public class MasterImage implements RenderingRequestCaller {
     private Bitmap mGeometryOnlyBitmap = null;
     private Bitmap mFiltersOnlyBitmap = null;
     private Bitmap mPartialBitmap = null;
-    private Bitmap mThumbnailBitmap  = null;
 
     private ImageLoader mLoader = null;
     private HistoryAdapter mHistory = null;
@@ -402,59 +401,11 @@ public class MasterImage implements RenderingRequestCaller {
 
     public void hasNewGeometry() {
         updatePresets(true);
-        computeThumbnailBitmap();
         for (GeometryListener listener : mGeometryListeners) {
             listener.geometryChanged();
         }
     }
 
-    private Bitmap createSquareImage(Bitmap dst, Bitmap image, Rect destination) {
-        if (image != null) {
-            Canvas canvas = new Canvas(dst);
-            int iw = image.getWidth();
-            int ih = image.getHeight();
-            int x = 0;
-            int y = 0;
-            int size = 0;
-            Rect source = null;
-            if (iw > ih) {
-                size = ih;
-                x = (int) ((iw - size) / 2.0f);
-                y = 0;
-            } else {
-                size = iw;
-                x = 0;
-                y = (int) ((ih - size) / 2.0f);
-            }
-            source = new Rect(x, y, x + size, y + size);
-            canvas.drawBitmap(image, source, destination, new Paint());
-        }
-        return dst;
-    }
-
-    public void computeThumbnailBitmap() {
-        Bitmap bmap = mLoader.getOriginalBitmapSmall();
-        if (bmap == null) {
-            return;
-        }
-        ImagePreset geoPreset = new ImagePreset(MasterImage.getImage().getGeometryPreset());
-        geoPreset.setupEnvironment();
-        bmap = geoPreset.applyGeometry(bmap);
-        float w = bmap.getWidth();
-        float h = bmap.getHeight();
-        float s = Math.min(w, h);
-        float f = sIconSeedSize / s;
-        w = w * f;
-        h = h * f;
-        s = Math.min(w, h);
-        Bitmap bmap2 = Bitmap.createScaledBitmap(bmap, (int) s, (int) s, true);
-        bmap = createSquareImage(bmap2, bmap, new Rect(0, 0, (int) s, (int) s));
-        if (DEBUG) {
-            Log.v(LOGTAG, "Create thumbnail of size " + bmap.getWidth() + " x " + bmap.getHeight()
-                    + " seed size: " + sIconSeedSize);
-        }
-        mThumbnailBitmap = bmap;
-    }
 
     public float getScaleFactor() {
         return mScaleFactor;
@@ -494,7 +445,7 @@ public class MasterImage implements RenderingRequestCaller {
     }
 
     public Bitmap getThumbnailBitmap() {
-        return mThumbnailBitmap;
+        return mLoader.getOriginalBitmapSmall();
     }
 
     public float getMaxScaleFactor() {
index 3a6fcd2..7d4071d 100644 (file)
@@ -142,7 +142,6 @@ public class FilterIconButton extends IconButton implements View.OnClickListener
         if (dst != null) {
             ImagePreset mPreset = new ImagePreset();
             mPreset.addFilter(mFilterRepresentation);
-            mPreset.setDoApplyGeometry(false);
             RenderingRequest.post(dst.copy(Bitmap.Config.ARGB_8888, true),
                     mPreset, RenderingRequest.ICON_RENDERING, this);
         }