summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java84
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;
}