diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | 84 |
1 files changed, 9 insertions, 75 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java index 45ee5d7a4..92e57bfc1 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java +++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java @@ -82,9 +82,6 @@ public class MasterImage implements RenderingRequestCaller { private Vector<ImageShow> mObservers = new Vector<ImageShow>(); private FilterRepresentation mCurrentFilterRepresentation; - private Vector<GeometryListener> mGeometryListeners = new Vector<GeometryListener>(); - - private GeometryMetadata mPreviousGeometry = null; private float mScaleFactor = 1.0f; private float mMaxScaleFactor = 3.0f; // TODO: base this on the current view / image @@ -95,20 +92,6 @@ public class MasterImage implements RenderingRequestCaller { private boolean mShowsOriginal; - 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() { } @@ -243,39 +226,15 @@ public class MasterImage implements RenderingRequestCaller { preset.showFilters(); } mPreset = preset; - setGeometry(); mPreset.fillImageStateAdapter(mState); if (addToHistory) { HistoryItem historyItem = new HistoryItem(mPreset, change); mHistory.addHistoryItem(historyItem); } updatePresets(true); - GeometryMetadata geo = mPreset.getGeometry(); - if (!geo.equals(mPreviousGeometry)) { - notifyGeometryChange(); - } - mPreviousGeometry = new GeometryMetadata(geo); mActivity.updateCategories(); } - private void setGeometry() { - Bitmap image = getOriginalBitmapLarge(); - if (image == null) { - return; - } - float w = image.getWidth(); - float h = image.getHeight(); - GeometryMetadata geo = mPreset.getGeometry(); - RectF pb = geo.getPhotoBounds(); - if (w == pb.width() && h == pb.height()) { - return; - } - RectF r = new RectF(0, 0, w, h); - geo.setPhotoBounds(r); - geo.setCropBounds(r); - mPreset.setGeometry(geo); - } - public void onHistoryItemClick(int position) { HistoryItem historyItem = mHistory.getItem(position); // We need a copy from the history @@ -337,16 +296,6 @@ public class MasterImage implements RenderingRequestCaller { return mPreviewPreset; } - public void setOriginalGeometry(Bitmap originalBitmapLarge) { - GeometryMetadata geo = getPreset().getGeometry(); - 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() { mPreviewBuffer.swapConsumerIfNeeded(); // get latest bitmap Buffer consumer = mPreviewBuffer.getConsumer(); @@ -450,14 +399,16 @@ public class MasterImage implements RenderingRequestCaller { } private Matrix getImageToScreenMatrix(boolean reflectRotation) { - GeometryMetadata geo = mPreset.getGeometry(); - if (geo == null || getOriginalBounds() == null - || mImageShowSize.x == 0) { + if (getOriginalBounds() == null || mImageShowSize.x == 0 || mImageShowSize.y == 0) { return new Matrix(); } - Matrix m = geo.getOriginalToScreen(reflectRotation, - getOriginalBounds().width(), - getOriginalBounds().height(), mImageShowSize.x, mImageShowSize.y); + Matrix m = GeometryMathUtils.getImageToScreenMatrix(mPreset.getGeometryFilters(), + reflectRotation, getOriginalBounds(), mImageShowSize.x, mImageShowSize.y); + if (m == null) { + m = new Matrix(); + m.reset(); + return m; + } Point translate = getTranslation(); float scaleFactor = getScaleFactor(); m.postTranslate(translate.x, translate.y); @@ -516,6 +467,7 @@ public class MasterImage implements RenderingRequestCaller { } if (request.getType() == RenderingRequest.FILTERS_RENDERING) { mFiltersOnlyBitmap = request.getBitmap(); + notifyObservers(); needsCheckModification = true; } if (request.getType() == RenderingRequest.PARTIAL_RENDERING @@ -538,24 +490,6 @@ public class MasterImage implements RenderingRequestCaller { sMasterImage = null; } - public void addGeometryListener(GeometryListener listener) { - mGeometryListeners.add(listener); - } - - public void notifyGeometryChange() { - if (mHandler.hasMessages(NEW_GEOMETRY)) { - return; - } - mHandler.sendEmptyMessage(NEW_GEOMETRY); - } - - public void hasNewGeometry() { - updatePresets(true); - for (GeometryListener listener : mGeometryListeners) { - listener.geometryChanged(); - } - } - public float getScaleFactor() { return mScaleFactor; } |