summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java46
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java12
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java6
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java3
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java6
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java6
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/MasterImage.java8
7 files changed, 71 insertions, 16 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
index a3645d6f5..647b101a1 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/GeometryMetadata.java
@@ -23,10 +23,14 @@ import android.graphics.RectF;
import com.android.gallery3d.filtershow.CropExtras;
import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.editors.EditorCrop;
+import com.android.gallery3d.filtershow.editors.EditorFlip;
+import com.android.gallery3d.filtershow.editors.EditorRotate;
+import com.android.gallery3d.filtershow.editors.EditorStraighten;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.ImageFilterGeometry;
-public class GeometryMetadata {
- private static final ImageFilterGeometry mImageFilter = new ImageFilterGeometry();
+public class GeometryMetadata extends FilterRepresentation {
private static final String LOGTAG = "GeometryMetadata";
private float mScaleFactor = 1.0f;
private float mRotation = 0;
@@ -59,9 +63,25 @@ public class GeometryMetadata {
}
public GeometryMetadata() {
+ super("GeometryMetadata");
+ setFilterClass(ImageFilterGeometry.class);
+ setEditorId(EditorCrop.ID);
+ setName("Crop");
+ setTextId(0);
+ }
+
+ @Override
+ public int[] getEditorIds() {
+ return new int[] {
+ EditorCrop.ID,
+ EditorStraighten.ID,
+ EditorRotate.ID,
+ EditorFlip.ID
+ };
}
public GeometryMetadata(GeometryMetadata g) {
+ super("GeometryMetadata");
set(g);
}
@@ -86,15 +106,6 @@ public class GeometryMetadata {
return false;
}
- public Bitmap apply(Bitmap original, float scaleFactor, int quality) {
- if (!hasModifications()) {
- return original;
- }
- mImageFilter.setGeometryMetadata(this);
- Bitmap m = mImageFilter.apply(original, scaleFactor, quality);
- return m;
- }
-
public void set(GeometryMetadata g) {
mScaleFactor = g.mScaleFactor;
mRotation = g.mRotation;
@@ -436,4 +447,17 @@ public class GeometryMetadata {
m.preRotate(-straighten, photo.centerX(), photo.centerY());
return m;
}
+
+ @Override
+ public void useParametersFrom(FilterRepresentation a) {
+ GeometryMetadata data = (GeometryMetadata) a;
+ set(data);
+ }
+
+ @Override
+ public FilterRepresentation clone() throws CloneNotSupportedException {
+ GeometryMetadata representation = (GeometryMetadata) super.clone();
+ representation.useParametersFrom(this);
+ return representation;
+ }
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java b/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java
index 284bfde76..beaa93de4 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageCrop.java
@@ -37,6 +37,8 @@ import android.widget.PopupMenu;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.CropExtras;
+import com.android.gallery3d.filtershow.editors.EditorCrop;
+import com.android.gallery3d.filtershow.filters.FilterCurvesRepresentation;
import com.android.gallery3d.filtershow.ui.FramedTextButton;
public class ImageCrop extends ImageGeometry {
@@ -81,11 +83,13 @@ public class ImageCrop extends ImageGeometry {
private static final String LOGTAG = "ImageCrop";
private String mAspect = "";
- private int mAspectTextSize = 24;
+ private static int mAspectTextSize = 24;
private boolean mFixedAspect = false;
- public void setAspectTextSize(int textSize) {
+ private EditorCrop mEditorCrop;
+
+ public static void setAspectTextSize(int textSize) {
mAspectTextSize = textSize;
}
@@ -779,4 +783,8 @@ public class ImageCrop extends ImageGeometry {
}
}
+ public void setEditor(EditorCrop editorCrop) {
+ mEditorCrop = editorCrop;
+ }
+
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java b/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java
index 6bfba1b2c..70637a30c 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java
@@ -24,6 +24,7 @@ import android.graphics.RectF;
import android.util.AttributeSet;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.editors.EditorFlip;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata.FLIP;
public class ImageFlip extends ImageGeometry {
@@ -32,6 +33,7 @@ public class ImageFlip extends ImageGeometry {
private static final float MIN_FLICK_DIST_FOR_FLIP = 0.1f;
private static final String LOGTAG = "ImageFlip";
private FLIP mNextFlip = FLIP.NONE;
+ private EditorFlip mEditorFlip;
public ImageFlip(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -140,4 +142,8 @@ public class ImageFlip extends ImageGeometry {
drawTransformedCropped(canvas, image, gPaint);
}
+ public void setEditor(EditorFlip editorFlip) {
+ mEditorFlip = editorFlip;
+ }
+
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
index e18f0d034..352329e13 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
@@ -138,7 +138,7 @@ public abstract class ImageGeometry extends ImageShow {
}
// Overwrites local with master
- protected void syncLocalToMasterGeometry() {
+ public void syncLocalToMasterGeometry() {
mLocalGeometry = getGeometry();
calculateLocalScalingFactorAndOffset();
}
@@ -423,6 +423,7 @@ public abstract class ImageGeometry extends ImageShow {
return;
}
mHasDrawn = true;
+
drawShape(canvas, image);
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java b/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java
index 30cc9e2f3..c4b9aa27d 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java
@@ -23,6 +23,7 @@ import android.graphics.Paint;
import android.util.AttributeSet;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.editors.EditorRotate;
public class ImageRotate extends ImageGeometry {
@@ -30,6 +31,7 @@ public class ImageRotate extends ImageGeometry {
private float mAngle = 0;
private final boolean mSnapToNinety = true;
+ private EditorRotate mEditorRotate;
private static final String LOGTAG = "ImageRotate";
public ImageRotate(Context context, AttributeSet attrs) {
@@ -84,4 +86,8 @@ public class ImageRotate extends ImageGeometry {
gPaint.setARGB(255, 255, 255, 255);
drawTransformedCropped(canvas, image, gPaint);
}
+
+ public void setEditor(EditorRotate editorRotate) {
+ mEditorRotate = editorRotate;
+ }
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
index dfd950565..be116bda7 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java
@@ -26,11 +26,13 @@ import android.graphics.RectF;
import android.util.AttributeSet;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.editors.EditorStraighten;
public class ImageStraighten extends ImageGeometry {
private float mBaseAngle = 0;
private float mAngle = 0;
+ private EditorStraighten mEditorStraighten;
private static final String LOGTAG = "ImageStraighten";
private static final Paint gPaint = new Paint();
@@ -134,4 +136,8 @@ public class ImageStraighten extends ImageGeometry {
}
}
+ public void setEditor(EditorStraighten editorStraighten) {
+ mEditorStraighten = editorStraighten;
+ }
+
}
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
index 9eafe2236..4ca74300c 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.filtershow.imageshow;
import android.graphics.*;
+import android.util.Log;
import com.android.gallery3d.filtershow.FilterShowActivity;
import com.android.gallery3d.filtershow.HistoryAdapter;
@@ -208,7 +209,8 @@ public class MasterImage implements RenderingRequestCaller {
if (force || mGeometryOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
newPreset.setDoApplyFilters(false);
- if (mGeometryOnlyPreset == null
+ newPreset.setDoApplyGeometry(true);
+ if (force || mGeometryOnlyPreset == null
|| !newPreset.same(mGeometryOnlyPreset)) {
mGeometryOnlyPreset = newPreset;
RenderingRequest.post(mLoader.getOriginalBitmapLarge(),
@@ -217,8 +219,9 @@ public class MasterImage implements RenderingRequestCaller {
}
if (force || mFiltersOnlyPreset == null) {
ImagePreset newPreset = new ImagePreset(mPreset);
+ newPreset.setDoApplyFilters(true);
newPreset.setDoApplyGeometry(false);
- if (mFiltersOnlyPreset == null
+ if (force || mFiltersOnlyPreset == null
|| !newPreset.same(mFiltersOnlyPreset)) {
mFiltersOnlyPreset = newPreset;
RenderingRequest.post(mLoader.getOriginalBitmapLarge(),
@@ -330,6 +333,7 @@ public class MasterImage implements RenderingRequestCaller {
}
public void notifyGeometryChange() {
+ updatePresets(true);
for (GeometryListener listener : mGeometryListeners) {
listener.geometryChanged();
}