summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
index 9fa80195a..666186d81 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageGeometry.java
@@ -29,6 +29,8 @@ import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
+import com.android.gallery3d.filtershow.HistoryItem;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata.FLIP;
import com.android.gallery3d.filtershow.presets.ImagePreset;
@@ -314,22 +316,26 @@ public abstract class ImageGeometry extends ImageShow {
mMode = MODES.NONE;
}
- public String getName() {
- return "Geometry";
- }
-
public void saveAndSetPreset() {
- ImagePreset lastHistoryItem = MasterImage.getImage().getHistory().getLast();
- if (lastHistoryItem != null && lastHistoryItem.historyName().equalsIgnoreCase(getName())) {
+ FilterRepresentation lastAction = null;
+ HistoryItem historyItem = MasterImage.getImage().getHistory().getLast();
+ if (historyItem != null) {
+ lastAction = historyItem.getFilterRepresentation();
+ }
+
+ if (lastAction != null
+ && lastAction.getSerializationName().equalsIgnoreCase(
+ GeometryMetadata.SERIALIZATION_NAME)) {
getImagePreset().setGeometry(mLocalGeometry);
resetImageCaches(this);
} else {
if (mLocalGeometry.hasModifications()) {
ImagePreset copy = new ImagePreset(getImagePreset());
copy.setGeometry(mLocalGeometry);
- copy.setHistoryName(getName());
- copy.setIsFx(false);
- MasterImage.getImage().setPreset(copy, true);
+ // TODO: we should have multiple filter representations for each
+ // of the different geometry operations we have, otherwise we cannot
+ // differentiate them in the history/state
+ MasterImage.getImage().setPreset(copy, copy.getGeometry(), true);
}
}
MasterImage.getImage().notifyGeometryChange();