diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java index 4ca74300c..8a505fd4e 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java +++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java @@ -17,6 +17,8 @@ package com.android.gallery3d.filtershow.imageshow; import android.graphics.*; +import android.os.Handler; +import android.os.Message; import android.util.Log; import com.android.gallery3d.filtershow.FilterShowActivity; @@ -64,6 +66,20 @@ public class MasterImage implements RenderingRequestCaller { private Point mImageShowSize = new Point(); + final private static int NEW_GEOMETRY = 1; + + private final Handler mHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case NEW_GEOMETRY: { + hasNewGeometry(); + break; + } + } + } + }; + private MasterImage() { } @@ -183,6 +199,16 @@ public class MasterImage implements RenderingRequestCaller { return mFilteredPreview; } + public void setOriginalGeometry(Bitmap originalBitmapLarge) { + GeometryMetadata geo = getPreset().mGeoData; + float w = originalBitmapLarge.getWidth(); + float h = originalBitmapLarge.getHeight(); + RectF r = new RectF(0, 0, w, h); + geo.setPhotoBounds(r); + geo.setCropBounds(r); + getPreset().setGeometry(geo); + } + public Bitmap getFilteredImage() { return mFilteredPreview.getConsumer(); } @@ -333,6 +359,10 @@ public class MasterImage implements RenderingRequestCaller { } public void notifyGeometryChange() { + mHandler.sendEmptyMessage(NEW_GEOMETRY); + } + + public void hasNewGeometry() { updatePresets(true); for (GeometryListener listener : mGeometryListeners) { listener.geometryChanged(); |